SNS Webhookバイパス(LINEなど外部SNSのWebhook転送)
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やドキュメントをそのまま流用できます。
設定方法(店舗管理者が実施)
バイパスは店舗側で明示的に有効化する必要があります。開発者は、店舗管理者にこのページの手順を案内してください。
- レシートローラー管理画面にログイン
- 左メニュー「組織」→「SNSアカウント」
- 該当のSNSアカウント(例:LINE公式アカウント)の「編集」を開く
- 「Webhookバイパス」セクションを開く
- 「バイパスを有効化」をONに切り替え
- 転送先となる開発者アプリを選択(あらかじめアプリ登録が必要)
- 転送するイベント種別を選択(例:
message、follow、postback) - 「保存」をクリック
転送時のヘッダー
| ヘッダー名 | 内容 |
|---|---|
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アカウントを使い、実顧客データの取り扱いを避けることを推奨
関連ガイド
-
Webhookの登録方法レシートローラーの開発者ポータルでWebhookエンドポイントを登録する手順、購読イベントの選び方、テスト配信、複数エンドポイントの使い分け、削除と一時停止の方法を解説します。
-
監視と失敗時の対応レシートローラーWebhookの配信履歴の見方、監視すべき指標とアラート設計、デッドレターの再配信、よくある障害パターンと復旧手順を解説します。
-
Webhookが届かないWebhookが受信エンドポイントに届かないときの原因切り分け。エンドポイント設定・購読イベント・到達性・署名検証失敗・ファイアウォールなどを順に確認する手順を解説します。
-
開発者向けヘルプ目次レシートローラー開発者向けヘルプ目次です。開発者申請、アプリケーション登録、OAuth認証とスコープ、実装ガイド(ウォレットアプリ・店舗向けWebhook・Survey API)、データ領域別ガイド、運用とセキュリティ、コミュニティ、トラブルシューティングまでをまとめています。
-
再送・順序・冪等性の設計レシートローラーWebhookの再送ポリシー、配信順序が保証されない理由、event_idを使った冪等性の実装、デッドレターの扱い、よくあるアンチパターンを解説します。