SNS Webhookバイパス(LINEなど外部SNSのWebhook転送)

Webhook SNS LINE バイパス 転送 イベント連携
この記事の対象
LINEなど外部SNSのWebhook(メッセージ受信、フォロー、ポストバックなど)を、レシートローラー経由で自社アプリでも受け取りたい開発者向けです。「SNS Webhookバイパス」機能の仕組みと設定方法を説明します。

レシートローラーは、店舗が連携した外部SNS(LINE公式アカウント、Meta、X など)から送られてくるWebhookを受信して、自動応答やキャンペーン処理に利用しています。これらの生イベントを、店舗側の明示的な許可があれば、開発者が登録したエンドポイントへそのまま転送できます。これが「SNS Webhookバイパス」です。

こんなときに使います

  • LINE公式アカウントのメッセージを自社CRMに取り込みたい
  • フォローイベントから独自のオンボーディング処理を起動したい
  • ポストバックを使った独自のリッチメニュー連携を作りたい
  • SNSのメンション・リプライを社内ツールに通知したい

レシートローラー側の自動応答機能で実現できる範囲を超える、独自の業務ロジックが必要な場合の選択肢です。

仕組み

[LINE / Meta / X 等]
        │ Webhook(プラットフォーム署名付き)
        ▼
[レシートローラー受信エンドポイント]
        │ ① プラットフォーム署名を検証
        │ ② 自社の業務処理(自動応答・集計など)
        │ ③ バイパス設定がONなら開発者エンドポイントへ転送
        ▼
[開発者アプリ]
        ・X-RR-Source-Platform で送信元SNSが分かる
        ・X-RR-Original-Signature で元の署名が確認できる
        ・X-RR-Signature でレシートローラーの署名も付与

レシートローラーは「中継するだけ」で、転送するペイロードの中身はSNS側の生形式そのままです。LINEのWebhookならLINEのJSON、MetaならMetaのJSONがそのまま届きます。これにより、開発者は各SNSの公式SDKやドキュメントをそのまま流用できます。

設定方法(店舗管理者が実施)

バイパスは店舗側で明示的に有効化する必要があります。開発者は、店舗管理者にこのページの手順を案内してください。

  1. レシートローラー管理画面にログイン
  2. 左メニュー「組織」→「SNSアカウント」
  3. 該当のSNSアカウント(例:LINE公式アカウント)の「編集」を開く
  4. 「Webhookバイパス」セクションを開く
  5. 「バイパスを有効化」をONに切り替え
  6. 転送先となる開発者アプリを選択(あらかじめアプリ登録が必要)
  7. 転送するイベント種別を選択(例:messagefollowpostback
  8. 「保存」をクリック
重要:バイパスは個人情報を含む生イベントを外部に渡す機能です。店舗側の責任において、適切な利用目的・契約・プライバシーポリシーを整えたうえで有効化してください。

転送時のヘッダー

ヘッダー名 内容
X-RR-Source-Platform 送信元プラットフォーム(line / meta / x / tiktok など)
X-RR-Source-Account-Id レシートローラー内部のSNSアカウントID
X-RR-Original-Signature SNS側の元の署名(例:LINEなら x-line-signature の値)
X-RR-Signature レシートローラーが付与するHMAC-SHA256署名
X-RR-Timestamp 転送時刻(Unix秒)
X-RR-Event-Id レシートローラーが付与する一意のイベントID(冪等性キー)
本文 SNS側の生ペイロード(無加工)

署名の検証

受信側では、用途に応じて2種類の署名を検証できます。

方法A:レシートローラーの署名を検証(推奨)

通常のレシートローラーWebhookと同じ方式で X-RR-Signature を検証します。検証ロジックを1つに統一できるため、運用がシンプルになります。詳細は署名検証とセキュリティを参照してください。

方法B:元のSNS署名を検証

本文がSNS側の生形式そのままなので、各SNSのSDKを使って元の署名(X-RR-Original-Signature)を検証することもできます。LINE公式SDKのサンプルコードをそのまま流用したい場合などに便利です。ただしこの場合、SNS側のチャネルシークレットを開発者が保持する必要があります。

受信例(LINE)

POST /your/endpoint HTTP/1.1
Content-Type: application/json
X-RR-Source-Platform: line
X-RR-Source-Account-Id: sns_a1b2c3
X-RR-Original-Signature: aXyZ...(LINE発行の署名)
X-RR-Signature: 9f8e7d...(RR発行のHMAC)
X-RR-Timestamp: 1745740000
X-RR-Event-Id: evt_01HV6N...

{
  "destination": "U1234567890...",
  "events": [
    {
      "type": "message",
      "message": { "type": "text", "id": "...", "text": "こんにちは" },
      "timestamp": 1745739999000,
      "source": { "type": "user", "userId": "U..." },
      "replyToken": "..."
    }
  ]
}

本文部分はLINEから受け取ったものそのままなので、LINE Messaging API SDK の WebhookParser 等にそのまま渡せます。

応答に関する注意

バイパスでは、開発者エンドポイントは 2xx を返すだけでよく、リプライメッセージ等は開発者側から直接SNS APIを呼び出して送信してください。レシートローラーは応答を中継しません。

  • LINEの replyToken を使う場合は、開発者が LINE Messaging API に直接POSTする
  • そのためには、店舗の LINE チャネルアクセストークンを別途扱う必要あり
  • 取得方法は店舗ごとに調整(プラットフォーム認可フロー、または店舗から手動共有)

再送・冪等性

転送イベントも通常のWebhookと同じく、2xx 以外なら最大7回再送されます。event_id による冪等性チェックを必ず実装してください。詳細は再送・順序・冪等性の設計を参照。

注意点として、SNS側の元のWebhookが先に他のチャネル(自動応答処理など)で処理済みの場合でも、バイパスは独立して転送されます。両方を別々に設計してください。

制限事項

  • 対応プラットフォーム:LINE、Meta(Facebook/Instagram)、X、TikTok、YouTube、Pinterest、LinkedIn、GBP(順次拡大中)
  • 1つのSNSアカウントにつき、転送先アプリは1つまで
  • 転送するイベント種別はSNS側で発生するもののみ。レシートローラー独自イベントは含まれません
  • バイパスはスタータープラン以上で利用可能
  • 転送遅延の目安は通常1秒以内(プラットフォーム受信後)

セキュリティとプライバシー上の注意

  • 転送される本文には、LINE ユーザーID やメッセージ本文などの個人情報が含まれます
  • 店舗側のプライバシーポリシーに、外部開発者への転送を明記する必要があります
  • 開発者側も、受信データの保管・利用範囲を店舗との契約で明確化してください
  • テスト時は専用のテスト用SNSアカウントを使い、実顧客データの取り扱いを避けることを推奨

関連ガイド

公開日: 2026-04-27 更新日: 2026-04-27
タグ
API (8) Webhook (8) api (6) oauth (5) トラブル (5) OAuth (4) getting-started (4) アプリ登録 (4) app-registration (3) webhook (3)