経緯
コロナウイルス感染者数が増幅していく世界で、不安におびえつつ感染者数をチェックする自分に呆れながらも、いちいちサイトを見に行く手間にうんざりしたので、都道府県名を入力すれば情報を教えてくれるLINE BOTを作ってみた。
Demo
※画像は4/14日時点の情報です。
Architecture
LINE Devlopersに登録
- 登録してプロバイダーを作成、チャネル作成を行う。
- [Messaging API設定タブ] でチャネルアクセストークンを発行する。
Lambdaを作成する
コロナウイルス情報が公開されているのでそれを取得するLambdaと、
LINE BOT用のLambdaを作成する。Githubで拙いコードを公開しているのでこちらを参考にしてください。
※注意点
- [LINE_CHANNEL_ACCESS_TOKEN] と [LINE_CHANNEL_SECRET] の環境変数を作成したLambdaで必ずセットしてください。
- 多くの記事で [LINE_CHANNEL_ACCESS_TOKEN] の頭に [Bearer ] を付けるとありましたが、逆にこれがあったせいでできなかったので、シンプルにアクセストークンのみを環境変数にセットしてください。
★参考にしたデータ
東洋経済オンラインさんのサイトで公開されているものを今回利用しました。
とても助かりました。
API Gatewayの設定
- REST APIを作成
- リソース作成
- メソッド作成(Lambdaを関連付ける)
- デプロイ後、ステージで発行されたURLをコピーする
- LINE Devlopersの [Messaging API設定タブ] > [Webhook URL] に先ほどコピーしたURLを張り付ける。このとき、必ず**[amazon.com:443/test]**のようにポート番号を付けてあげる。
ちなみにWebhook URLの検証は失敗しても大丈夫です。問題なく動きます。
以下のようなエラーが私の場合出ました。
感想
LINEのMessaging APIはめんどくさい。
Thanks.