WhatsApp

GetMyBot は WhatsApp Cloud API(Meta Graph API)を通じて WhatsApp を接続します。接続後、ボットは WhatsApp からの入力メッセージを受け取ってリアクションを適用し、オペレーターはダイアログでやり取りを続けられます。マルチチャネルの概要は チャネル のページをご覧ください。

WhatsApp チャネルの接続

接続には、Meta アプリ(WhatsApp Cloud API)から取得する5つの認証情報が必要です。すべて 必須 です:

  • Phone number ID — WhatsApp Business の番号の識別子。
  • WABA ID — WhatsApp Business Account の識別子。
  • Access token — Meta アプリのアクセストークン。
  • Verify token — 自分で決める任意の文字列。Meta での Webhook 検証時に使用します(下記参照)。
  • App secret — Meta アプリのシークレット。入力 Webhook の HMAC 署名(ヘッダー X-Hub-Signature-256)の検証に必要です。

インターフェースでの手順:

  1. ボット → 「チャネルを追加」→ WhatsApp を開きます。
  2. 上記5つの項目を入力し、必要に応じてチャネル名を入力します(任意)。
  3. 「検証」 をクリックします — GetMyBot が Meta 経由で認証情報を検証します。
  4. 「接続」 をクリックします。

Meta での Webhook 設定

接続後、チャネルには {アドレス}/ch/{channelID} 形式の Callback URL(インターフェースでは Webhook アイコン 🔗)が表示されます。これを Verify token とともに Meta アプリに指定します: WhatsApp → Configuration → Webhook

仕組み:

  1. Meta が Callback URL に 検証リクエスト を送り、渡された verify_token をあなたの Verify token と照合します。一致すれば Webhook は確認済みとみなされます。
  2. 以降、Meta はこのアドレスにイベント(入力メッセージ、配信ステータス、テンプレートのモデレーション結果)を送信します。
  3. 各入力リクエストにはヘッダー X-Hub-Signature-256 で署名が付きます。GetMyBot は App secret で署名を検証します — このため接続時にこの認証情報が必要です。

24時間セッションウィンドウ

WhatsApp は能動的なやり取りを制限します: 自由メッセージ は、ユーザーの最後の入力メッセージから 24時間 以内にのみ送信できます。ユーザーからの新しい入力メッセージが届くたびに、このウィンドウは更新されます。

24時間ウィンドウを過ぎると自由メッセージは送信できません。ユーザーに再び連絡(re-engage)する唯一の方法は 承認済みのメッセージテンプレート です。そのため、テンプレートは WhatsApp での一斉配信やリマインダーの要となる機能です。

メッセージテンプレート

テンプレート(message template)とは、Meta と事前に取り決めたメッセージで、セッションウィンドウ外でも送信できます。テンプレートの管理は GetMyBot のインターフェースで行います。

テンプレートの管理場所

ボット → WhatsApp チャネルの 「メッセージテンプレート」 アイコン(📄)→ ダイアログ 「WhatsApp チャネルのテンプレート」。ダイアログには次のボタンがあります:

  • 「テンプレートを作成」 — 新しいテンプレートを組み立てます。
  • 「同期」 — Meta からテンプレートのカタログを取り込みます(ステータスと一覧を最新化)。

テンプレートのカテゴリ

  • MARKETING(マーケティング) — キャンペーン、告知、一斉配信。
  • UTILITY(サービス) — ユーザー操作に関する通知(注文ステータス、リマインダー)。
  • AUTHENTICATION(認証) — 確認コード。

テンプレートの項目

  • 名前 — 小文字のラテン文字、数字、_、最大512文字。
  • 言語 — Meta のロケール。
  • カテゴリ — 上記3つのいずれか。

マーケティングサービス カテゴリでは、さらに次を設定します:

  • ヘッダー — なし / テキスト / 画像 / 動画 / ドキュメント。メディアヘッダーの場合はサンプルファイルをアップロードします。
  • 本文 — 必須、最大1024文字。変数は {{1}}{{2}}、… と、1 から N まで順番どおりに、抜けなく指定します。
  • フッター — 最大60文字。
  • ボタン — 最大10個: クイック返信、リンク(最大2)、電話(1)、コードコピー(1)。
  • 各変数 {{n}} には サンプル値 を設定する必要があります — これはモデレーションのための Meta の要件です。

認証 カテゴリでは、本文は Meta 側で固定されており、設定できるのは: コードの有効期間(1〜90分)、セキュリティ推奨事項、コードコピーボタンのテキストです。

モデレーション

「作成」 ボタンを押すと、テンプレートはただちに Meta のモデレーションへ送られます — 「審査に送る」という別の手順はありません。結果は非同期に(Webhook 経由で)届き、テンプレート一覧は自動更新されます。ステータス:

  • PENDING(審査中)
  • APPROVED(承認済み)
  • REJECTED(却下) — 理由付き
  • さらに PAUSEDDISABLEDIN_APPEALPENDING_DELETION

編集できるのは APPROVEDREJECTEDPAUSED ステータスのテンプレートです。名前と言語は変更できません。承認済みテンプレートではカテゴリもロックされます。

リアクションでのテンプレート利用

テンプレートの送信はリアクションのアクションです:

  1. リアクションのコンストラクターで 「アクション」→「アクションを追加」→「WhatsApp テンプレートを送信」 を開きます。
  2. このアクションは、ボットにテンプレート対応の WhatsApp チャネルが接続されている場合にのみ利用できます。
  3. 選べるのは 承認済み(APPROVED) のテンプレートのみです。
  4. パラメータを入力します: 本文の変数 {{n}} の値、テキストヘッダー、リンクによるメディアヘッダー、URL ボタンのパラメータ。パラメータには置換変数を使えます。

実際の送信チャネルはイベントのチャネルによって決まります。イベントが WhatsApp から来た場合、テンプレートは WhatsApp へ送られます。

ダイアログと添付ファイル

オペレーターは WhatsApp のダイアログで返信し、添付ファイル(画像、動画、ドキュメント)を送信できます。ただし24時間ウィンドウの制約を受けます(ウィンドウ外では自由なやり取りはできません)。購読者からの入力メディアはプロキシ経由で取得され、ダイアログに表示されます。

課金

GetMyBot は WhatsApp の会話(conversations)をカテゴリ別 — marketing / utility / authentication / service — に集計します。現バージョンでは、これは 観測のための記録のみ(record-only)です: 会話に対する残高の消費はありません。

次のステップ