今作っているlinebotのまとめ記事
概要
line公式アカウントの後ろにawsがあり、ホットペッパーやGoogleカレンダーと連携しています。
基本の仕組み
lineにはwebhookという仕組みがあり、メッセージをlineがうけとると、その内容をAPIに送ってくれます。
こんな感じ
基本は、この仕組みで、lineから送られてきたメッセージに対して、リプライをする。
途中でdynamoDBに書き込んだりする。って形で動いています。
おまけの仕組み
ですが、一部、メッセージのやり取りだけでは難しい事があります。
そういう時には、こんな感じで、webページを途中ではさんだりします。
また、私の場合は、メールの受信をする必要があったので、こんな仕組みもあったりします。
この辺の仕組みの詳しいところはこちらをご覧ください!
詳細
こんな感じで動いています。
仕組み
-
webhookからきたメッセージをlinbotWebhookが内容や、ヘッダー情報を確認し、処理対象と判断したら、analysisにメッセージ送信。
-
analysisはメッセージを解析し、GetReplyMessageへ送信。
-
getReplyMessageはdynamoDBとのやり取りなどをして、リプライの必要があった場合は、linebotReplyMessageへ返信内容を送信。
-
linebotReplyMessageはもらったメッセージをそのまま送信する
って感じになってます。
やっぱり役割分担すると、テストも設計も楽ちんですね!
経緯
この作りに至るまでは、こんな経緯をたどっています。
最初はこんな感じで
SQSだらけになって…詳細
SQSをSNSに変えて…詳細
ログ収集用のSQSを追加した。
で、ログ収集のためにログ用SQSを作った経緯は今執筆中ww
完成品の紹介
下記、全て同じ↑のプログラムで動いています。
設定ファイルが違うだけ。
ゆいちゃん
最近はなかなかいう事を聞いてくれません…ww
ちょっと詰め込みすぎたかなww
一応かろうじて動くようになったので、お友達追加はこらちからー
バグ報告大歓迎!
ぶるーでぃちぇっかー
商品ページはこちら
友達追加はこちらからどなたでもどうそー
生理予測とかをしてくれるbot。無料サービスです。
唯一まだバグ報告がされてないww
治療院予約くん
商品ページはこちら
構成とか、作ることになった流れなんかは、こちらのLT資料を見て頂ければと思います!
唯一の有料サービスww
CD/CI
ちょっと一部追いついていないのだけれど、jenkinsで、cloudFormationを使っての自動デプロイ。postmanを使っての自動テストをしています。
そのうちまとめます。
jenkinsサーバーを立てる話は書きかけだけどこちら