WhatsApp 通知購読

システムウェブフックは WABA や電話番号にイベントが発生した際にトリガーされます。WhatsAppビジネスアカウント設定の変更通知を受け取るために、Webhookを購読することができます。多くの 通知タイプアカウントの更新、メッセージテンプレートの変更、電話番号の更新、顧客からのメッセージの受信など。

これらの通知は、2つの方法のいずれかで受け取ることができる:

  • を通して ウェブフック - カスタムウェブフックURLを通して通知を受け取る
  • 経由 スラック - Slackワークスペース内の指定チャンネルで通知を受け取ります。

サブスクリプションを作成するには、リクエストを サブスクリプション・エンドポイントの作成 チャネル・マネージャAPIの

WebhooksでWhatsApp通知サブスクリプションを作成する

Webhook経由でアップデートを受信するには、まず

POST
リクエストを受け付けるように設定されたカスタムWebhook URLを作成する必要があります。 ウェブフック ガイドを参照してください。次に、サブスクリプションを作成するために、以下のパラメータでサブスクリプションエンドポイントにリクエストを送信できます:

{
    "type": "webhook",
    "whatsapp_subscribe_types": "account_alerts,account_update",
    "vonage_subscribe_types": "vonage_number_onboarded",
    "webhook": {
      "url": "https://example.com/webhook"
    }
}

ここだよ:

  • url にはカスタムウェブフックのURLを記述します。
  • whatsapp_subscribe_types はオプションのパラメータです。 通知タイプ を入力してください。これが含まれていない場合、サブスクリプションにはすべてのサブスクリプションタイプが含まれます。
  • vonage_subscribe_types はオプションのパラメータで、特定のVonage 通知タイプ を入力してください。これが含まれていない場合、サブスクリプションにはすべてのサブスクリプションタイプが含まれます。

完全なコード例は WebhooksでWhatsApp通知サブスクリプションを作成する コード・スニペット

ウェブフックの例

この例では、テンプレートのステータス更新を示している。 event フィールドがない場合、テンプレートは拒否された:

{
    "notification_id": "id",
    "timestamp": "2023-02-21T15:34:39Z",
    "channel": "whatsapp",
    "whatsapp": {
        "waba_info": {
            "waba_id": "<WABA_ID>",
            "solution_id": "<WABA_SOLUTION_ID>", // if present
            "api_key": "<WABA_API_KEY>"
        },
        "notification_type": "message_template_status_update",
        "notification_value": {
            "event": "REJECTED",
            "message_template_id": "<TEMPLATE_ID>",
            "message_template_name": "<TEMPLATE_NAME>",
            "message_template_language": "<LANGUAGE_AND_LOCALE_CODE>",
            "reason": "<REJECTION_REASON>"
        }
    }
}

この例では、Webhookは電話番号が追加されたアカウントの更新を示しています:

{
    "notification_id": "id",
    "timestamp": "2023-02-21T15:34:39Z",
    "channel": "whatsapp",
    "whatsapp": {
        "waba_info": {
            "waba_id": "<WABA_ID>",
            "solution_id": "<WABA_SOLUTION_ID>", // if present
            "api_key": "<WABA_API_KEY>"
        },
        "whatsapp_number_info": {
            "phone_number": "<PHONE_NUMBER>",
            "api_key": "<NUMBER_API_KEY>"
        },
        "notification_type": "account_update",
        "notification_value": {
            "phone_number": "<PHONE_NUMBER>",
            "event": "PHONE_NUMBER_ADDED"
        }
    }
}

について notification_value オブジェクトのパススルーです。 value オブジェクトを作成します。

Slack用WhatsApp通知サブスクリプションの作成

Slack経由で通知を受け取るには、リクエストを subscriptions エンドポイントを以下のパラメータで指定する:

{
    "type": "slack",
    "whatsapp_subscribe_types": "account_alerts,account_update,message_template_status_update",
    "slack": {
      "url": "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
    }
}

ここだよ:

  • について url フィールドには、Slackワークスペース用に作成された受信Webhook URLが含まれている必要があります。以下の Slackウェブフック・ドキュメント このURLの設定方法の詳細については、こちらをご覧ください。
  • whatsapp_subscribe_types はオプションのパラメータで、特定の 通知タイプ を入力してください。これが含まれていない場合、サブスクリプションにはすべてのサブスクリプションタイプが含まれます。

完全なコード例は Slack用WhatsApp通知サブスクリプションの作成 コード・スニペット

通知例

サブスクリプションが作成されると、指定したSlackチャンネルなどでアップデートの受信が開始されます:

An example Slack notification showing a WhatsApp account update

通知の種類

  • には多くの潜在的な価値がある。 whatsapp_subscribe_typesWebhookとSlack通知の両方に表示されます。通知タイプの全リストとその説明は メタWhatsAppドキュメント.
  • 現在のところ vonage_subscribe_typesである。 vonage_number_onboarded.

全購読リスト

既存のサブスクリプションをすべてリストアップするには、次のように

GET
リクエストを送信する。 subscriptions エンドポイント; コードサンプルは 既存の通知サブスクリプションのリスト コード・スニペット

購読の削除

サブスクリプションを削除するには、削除したいサブスクリプションのユニークIDを指定して

DELETE
リクエストを送信してください。コードサンプルは 購読の削除 コード・スニペット

さらに読む