LINE Webhooks は、LINE 公式アカウントに起きたイベントを自社サーバーへリアルタイムに届ける仕組みだ。LINE Bot を作るうえで「ユーザー側で何が起きたか」を受け取る入口にあたる。

受け取れるイベントの幅

通知されるのはメッセージ受信だけではない。テキスト・画像・スタンプといったメッセージに加え、友だち追加・ブロック・アンフォロー、ボタン押下に対応するポストバック、店舗などに置くビーコンの検知まで届く。これらを組み合わせると、友だち追加直後にウェルカムメッセージを送る、ボタン操作で会話を分岐させる、といった自動応答フローが組める。

実装で外せない署名検証

LINE Webhooks を実装するうえで必須なのが署名検証だ。Webhook の URL は公開エンドポイントになるため、リクエストが本当に LINE から来たものかをチャネルシークレットで検証しないと、第三者が偽イベントを投げ込める。サンプルコードでも署名検証が前提になっており、ここを省略してはいけない。

応答タイムアウトという落とし穴

実装でつまずきやすいのが応答の時間制約だ。LINE は Webhook に対して短時間でのレスポンスを期待しており、重い処理を同期的に実行して返答が遅れると、配信失敗とみなされる。AI 応答や外部 API 呼び出しのような時間のかかる処理は、Webhook を受けたら即座に 200 を返し、実処理はキューに逃がす設計が定石になる。

料金と守備範囲

Webhook の受信自体は無料だ。コストがかかるのは応答としてメッセージを送る側で、LINE Messaging API の送信が月間の無料枠を超えると従量課金になる。受信ではなく送信量が課金トリガーだと理解しておく。プッシュメッセージを多用する設計だと、ユーザー数の増加がそのまま送信数の増加に直結し、コストが伸びやすい。

機能は LINE プラットフォーム内に閉じている。LINE と他のメッセージングを横断する統合基盤が欲しいなら、各プラットフォームの Webhook を個別に受けて自前で抽象化する設計が必要になる。