Corredor

ウェブ、プログラミングの勉強メモ。

LINE の企業アカウントだと Webhook サーバのレスポンスを1秒以内に返さないといけないみたい

LINE Webhook サーバのレスポンス速度について。

Developer Trial プランの個人アカウントで Webhook サーバと戯れていた時は、LINE サーバからのリクエストに対し、60秒以内にレスポンスしないとエラーになっていたと思う (うろ覚え)。

しかし、本番稼動する企業アカウントでは、LINE サーバからのリクエストに対し、1秒以内にレスポンスしないと、リクエストタイムアウトエラーとしてアラートメールが飛んでしまった。

メールの件名は

[LINE developers] BusinessConnect: Error detected

こういうヤツで、request_timeout - (Request timeout) が発生した、というアラートメールだ。

LINE サーバにレスポンスするまでに1秒ちょっとかかっただけで、Reply API のコールとかは正しくできている。動作に問題はないが、イチイチアラートメールが飛ぶのは嫌だ。


コチラの記事では、LINE サーバへの応答は10秒以内に、となっているが、それよりもシビアみたい。仕様が変わったかしら。

LINE Serverは10秒以内にBOT Serverから返事が来なければTimeoutとして切断します。

もう少し探すと、以下の記事ではハッキリ1秒以内と明記されていた。

FAQ:LINE developersから送られてくるRequest timeoutはどのようなものですか?

LINE developersから、件名:「[LINE developers] BusinessConnect: Error detected」で送られていくる request_timeout - (Request timeout) は、ボットアプリのサーバからレスポンスが1秒以内に返されなかった場合に通知されます。


ということだったので、Webhook サーバはリクエストを受信したらまず 200 をレスポンスして、それからリクエストを処理し始めるようにした。実際、LINE サーバからのリクエストに何を応答したところで、実際にユーザに返信するメッセージの処理には全く関係してこないので、コレでいいみたい。

LINE BOTを作ろう!  Messaging APIを使ったチャットボットの基礎と利用例

LINE BOTを作ろう! Messaging APIを使ったチャットボットの基礎と利用例