SSブログ

【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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。