LINE BOT の制作中、よくわからない問題が起こりました。
死んだ牛肉しか届かないのです。
状態
- HTTPS 接続可能な公開サーバーに BOT 本体をアップロード済み。
- BOT は受け取ったメッセージをログファイルに書き出す機能を有している。
- Webhook URL は正常に登録されている。
- LINE developers → Webhook URL → VERIFY で確認。
- BOT のログファイルに記録あり。
- サーバーのホワイトリストにも、公開サーバーの IP アドレスを登録済み。
- LINE developers → Server IP Whitelist
- LINE 上で BOT を友達登録し、メッセージを送っても無反応。
- BOT のログファイルに記録なし。
ログファイルの記録
Webhook URL によって送られたメッセージです。
{"events":[{"replyToken":"00000000000000000000000000000000","type":"message","timestamp":1451617200000,"source":{"type":"user","userId":"Udeadbeefdeadbeefdeadbeefdeadbeef"},"message":{"id":"100001","type":"text","text":"Hello,world"}},{"replyToken":"ffffffffffffffffffffffffffffffff","type":"message","timestamp":1451617210000,"source":{"type":"user","userId":"Udeadbeefdeadbeefdeadbeefdeadbeef"},"message":{"id":"100002","type":"sticker","packageId":"1","stickerId":"1"}}]}
userId の部分が deadbeafdeadbeaf ... 死んだ牛肉。
"userId":"Udeadbeefdeadbeefdeadbeefdeadbeef"
何やら不吉ですが 16 進数で作れるおもしろ単語ということで、一部の界隈では好まれているらしいです。
原因
Webhook の機能自体が有効化されていませんでした。
LINE @ MANAGER → アカウント一覧の中から BOT を選択 → アカウント設定 → BOT 設定 → リクエスト設定 → Webhook 送信 を「利用する」に設定。
無事 deadbeef 以外のメッセージも届くようになりました。
単純。
しかし設定が LINE @ MANAGER にあると気付かず LINE developers ばかり見ていて相当な時間を浪費してしまいました。
また忘れそうなので、備忘録として投稿。