LINE Developer Meetup in Kyoto#26 ( https://line.connpass.com/event/75147/ ) での発表資料
LINE Developer Meetup in Kyoto#26Messaging API活用最前線白木 翔也 @morugu
View Slide
白木 翔也株式会社REACT-ミッション人と人とのコミュニケーションコストをゼロにする-事業ボット作成サービス 「Engagebot」SNSTwitter: @moruguBlog: blog.morugu.com
EngagebotLINE/Facebookのボット作成/運用サービス
Engagebot- TVドラマ-ゲーム- ECサイトand more!
今日話すこと(ボットの)可能性を広げる(ボットを)安定して運用する
本題に入る前に
ボットを作ったことある方?✋
ボット開発オウム返しで終わりがち機能実装こそエンジニアの力の見せどころ実戦投入してこそボットが活きる
作ったボットの機能採用面接スタンプラリーカウンセリング画像加工実況中継リアルタイムリッチメニューand more!
採用面接
LINE選考に合格したら即最終面接スピード感のある採用試験
カウンセリング
遠隔漢方相談サービスLINE BOTで質問に回答->薬剤師がチャットでカウンセリング->漢方薬を自宅に配送
今日話すこと☑(ボットの)可能性を広げる(ボットを)安定して運用する
LINEボットユーザーの傾向?
1分だけ(アクセスが)すごい来る
X軸: LINE Webhookからのリクエスト数Y軸:時間
高負荷対策1.高負荷な時間を確認&予測2.キャッシュ戦略3. Reply APIとPush APIの使い分け
1.高負荷な時間を確認&予測
Auto Scalingでは間に合わない最短でも1~3分ぐらいかかる最初の1分が勝負高負荷になりがちなタイミングドラマ放送10分前(一斉に配信するため)広告配信SNSで拡散された時(Instagram, Twitter等)プレスリリース配信
2.キャッシュ戦略
ものすごいメッセージ量
応答に必要なワードのみキャッシュしておくそれ以外は非同期でログデータとして処理
3. Reply APIとPush APIの使い分け
Reply APIユーザーからのメッセージ受信がトリガー短時間有効なトークンを使用して送信トークンの使用は1回のみPush APIユーザー or配信側がトリガーユーザーへ任意のタイミングで送信
API制限Messaging APIを経由して送れるメッセージはAPIごとに最大10,000req/1min
一斉に配信する場合(Push API)10,000req/1minを超過しないように配信数を制限Ex.対象ユーザーが、100,000件の場合- 9,000req/1minぐらい-約12分かかる
ユーザーが送ったメッセージに応答する場合(Reply API & Push API)超過すると429 Too Many Requestsが来る->リトライする仕組みを予め用意しておくReply APIが制限数に達したら,Push APIを併用して使う策もあり-> 20,000req/1minまで上限を伸ばせる
今日話すこと☑(ボットの)可能性を広げる☑(ボットを)安定して運用するComplete❗
Enjoy Bot Life