LINE Bot を使った自動返信フローを開発していると、
「Webhook は成功になっているのに、GAS のコードがまったく動いていない」
という相談をよくいただきます。
特に多いパターンが、
ユーザーがメッセージを送ると
「Thanks for your message! Unfortunately, this account isn’t set up to reply…」
のような LINE公式アカウントのデフォルト文面だけが返ってくる
というものです。
実際の案件でも、まさにこの症状が発生しました。
■ 結論:GAS の問題ではなく、LINE 側の設定が Bot の処理を止めていた
今回のケースも、スクリプト自体は完全に正常に動作するにも関わらず、
LINE 側の初期設定が原因で、GAS が一切メッセージを受け取れていませんでした。
つまり、
Webhook = 成功でも、GAS が動いているとは限らない
という点がポイントです。
■ よくある原因トップ3
実際のトラブルで最も多いのは以下の設定漏れです。
①「Webhook を利用する」が OFF
Messaging API → Webhook を利用する
が OFF だと、GAS にイベントは届きません。
OFF のままでも Webhook URL の検証は成功するため、見落としやすい項目です。
②「Bot モード」が “チャット” になっている
Bot モードが “Bot” ではなく “チャット” だと、
ユーザーと普通の公式アカウントのように会話してしまい、
GAS の doPost が発火しません。
その結果、LINE の固定メッセージ
Thanks for your message!
が返ってきます。
③ 応答メッセージ(自動応答)が ON のまま
応答メッセージが ON だと、
- GAS ではなく、LINE のデフォルト自動返信が動く
- 結果として Bot が動いていないように見える
という状態になります。
■ 実際のトラブルではこう見える
今回の案件では、ユーザー側では
- Webhook → “Success”
- GAS → エラーなし
- しかし Bot からは固定メッセージだけ
という状況でした。
つまり LINE の設定だけが原因で、
GAS のコードが一度も呼ばれていなかったのです。
■ 解決方法:まず LINE Developers をチェックする
トラブル時に最優先で確認すべきは以下の4点です。
✔ チェックリスト
- Webhook を利用する:ON
- Bot モード:Bot
- 応答メッセージ:OFF
- Webhook URL が正しい(コピーした環境で差し替え漏れがない)
これらを修正しただけで、今回の案件もすぐに正常動作しました。
■ 補足:Script Properties の状態が原因になるケースもある
ユーザーの会話状態を Script Properties に保存している場合、
- 以前のテストの state が “finished” のまま残っている
- replyToken の重複防止キーが残っている
などで、新しいメッセージが処理されないことがあります。
その場合は、
対象ユーザーのプロパティのみ削除することで改善します。
■ まとめ
LINE Bot 開発では、GAS のコードよりも
LINE Developers 側の設定ミスが原因で動かない
というケースが圧倒的に多いです。
今回の匿名化した事例が、同じ問題で悩む方の助けになれば幸いです。