So-net無料ブログ作成

【AWS】AWSとDoCoMoでLINEのbot [クラウドを個人が使う]

※注 DoCoMo自然対話APIは2018/11/1で提供中止‥雑談対話サービス「かたらい」に変えろとのこと。
追記2019/1/4 新:【AWS】AWSとDoCoMoでLINEのbot https://okiba.blog.so-net.ne.jp/2019-01-04-1
↑が更新版。

◆Docomo 雑談対話API対応
なるほどそういうのもあるのか。これも書かれたとおりにやってみる。
・DoCoMo「新規API利用申請へ」はやたら意識が高い。こっちはただ適当にLINEボットを作りたいだけなのに。仕方がないのでいろいろでっち上げる。大きな声で言うことでもないが、住所や名前や電話番号など、まじめに書きますかそうですか。
で、いろいろうるさいわりにAPI keyは一瞬で発行される。
・DynamoDBテーブルも書かれている通り。キャパシティセットは5もいらないはず(多分)。
・改めて別のFunctionを作る。
コードはコピペ。だが注意。もちろんそのままでは動かない。
「DoCoMoのAPI keyをセットする」ところ。そこをセットする。
「DynamoDB TableNameをセットする」ところ。そこをセットする。
「LINEのChannel Access Tokenをセットする」ところ。そこをセットする。
あと、LINE developersでは、別のビジネスの登録を行って、それを使うほうがいいと思う。今のはせっかく動いているんだから壊すことはない。バージョン変えればできるっぽいけど。
「Lambda の IAMロールに DynamoDB へのアクセスを許可するポリシーを追加」
これがわりと難物。IAMのサービスに飛んで、設定する。どれをセットしたらいいのかよくわからないからLambdaとDynamoDBから適当に選ぶ。なんでもいいので動けばOK。
◆難所
「コードはzipファイルでアップロード」「requestモジュールを同梱」これがまた難物。
windows10環境でもnode.jsはinstallできる。npmも同時にinstallされる。
https://nodejs.org/ja/
コマンドプロンプトからnodejsと叩いて、npm install request でrequestモジュールが落ちてくる。但し今回の場合C:\直下にが出来たのは本来の動きなのか?
出来たnode_modulesのフォルダーと、作ったコード(index.jsという名前にしておく)をまとめてzipかけて、画面からアップする。
その後コードを画面から直したら動かない。必ずzipアップロードの手順を踏む。
慣れればたいした手間ではない。
◆でも動かない
動かない。DOCOMOまでは行っている。DynamoDBもどうやら書き込んでいるがreceive_idがおかしい。
原因はここ↓
if (!event_data.events[0].source.groupId){
receive_id = event_data.events[0].source.userId;
} else {
receive_id = event_data.events[0].source.groupId;
}
roomIdで来た場合、receive_idがセットできない。
if文並べて、
event_data.events[0].source.roomId を判断に付け加えればOK。
これで動いた。やれやれ。
なお、botはわりと中途半端な返答をする。
1.jpg
nice!(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

トラックバック 0