Webhooks 测试的回调网址示例

您可以使用 Glitch 克隆我们的回调应用示例,然后在 Glitch 的服务器上创建一个公共回调网址,用来测试 Webhooks。创建 Glitch 项目目的在于将 Webhooks 有效负载写入日志文件,以便在 Webhooks 被触发时实时查看。

在为云端 API 的 Webhooks 测试设置端点之前

本指南属于一个多步骤流程的一部分,您必须先完成该流程中的多个步骤,才能开始使用 Glitch 配置应用端点示例。您必须先完成以下步骤:

  1. 设置开发者资产和开放平台访问权限
  2. 发送测试消息
  3. 配置 Webhooks

请参阅 WhatsApp Business 云端 API 入门指南,获取开始使用 WhatsApp Business 云端 API 的完整说明,以便您能发送第一条测试消息。

设置和配置 Glitch

  1. 前往 glitch.com,创建一个账户。通过创建账户,您可以使用本指南中介绍的所有功能,还可确保我们介绍的用户界面与您看到的用户界面一致。如未创建账户,大多数用户界面功能不仅会缺失,而且外观将有所不同。
  2. 创建 Glitch 账户后,请使用以下链接打开我们的入门 Glitch 项目模板:WhatsApp 开放平台 Webhooks 项目模板
  3. 点击 Glitch 网页右上角的整合编辑按钮,克隆我们的应用示例。
    点击“整合编辑”,创建您自己的 Gitch 项目
    系统将为您的账户创建项目副本。
  4. .env 文件中,将 WEBHOOK_VERIFY_TOKEN 的值更新为您选择的任意字符串。然后可根据需要前往应用面板中的 WhatsApp > API 设置,复制您的短期或长期访问口令值,并粘贴至 GRAPH_API_TOKEN
    为项目更新 Glitch 环境变量
  5. 点击右上角的分享,获取已发布站点的网址。在网址末尾添加 /webhook,获取您的完整回调网址。该回调网址类似于 https://<project-name>.glitch.me/webhook

现在您已完成端点创建,需要返回应用面板。

使用 Glitch 端点和验证口令配置应用面板

  1. 在应用面板中,找到所需的 WhatsApp 产品并点击配置
  2. 然后,找到 Webhooks 部分并点击编辑。在点击之后,系统会在屏幕上显示一个对话框,要求您输入回调网址验证口令。您需要使用之前在设置和配置 Glitch 部分配置 Glitch 项目时使用的值。例如:对回调网址验证口令分别使用 (https://<project-name>.glitch.me/webhook) 和 ("HAPPY") 两个值。
  3. 回到“配置”页面,点击管理弹出应用面板的“Webhooks 字段”对话框。
    管理“Webhooks 字段”对话框
  4. 在字段列表中,点击表格右边栏的订阅,订阅您需要的所有 Webhooks 事件(建议全部订阅)。
  5. 然后在 messages 一行中,点击测试,向您的端点发送通知。

    要确认触发了 Webhooks 通知,请返回 Glitch,选择 LOGS,输出的结果应如下图所示。

    完整的 Webhooks 通知有效负载应如以下所示:
    {
      "object": "whatsapp_business_account",
      "entry": [
        {
          "id": "0",
          "changes": [
            {
              "field": "messages",
              "value": {
                "messaging_product": "whatsapp",
                "metadata": {
                  "display_phone_number": "16505551111",
                  "phone_number_id": "123456123"
                },
                "contacts": [
                  {
                    "profile": {
                      "name": "test user name"
                    },
                    "wa_id": "16315551181"
                  }
                ],
                "messages": [
                  {
                    "from": "16315551181",
                    "id": "ABGGFlA5Fpa",
                    "timestamp": "1504902988",
                    "type": "text",
                    "text": {
                      "body": "this is a text message"
                    }
                  }
                ]
              }
            }
          ]
        }
      ]
    }

WhatsApp Business 开放平台 On-Premises API

  1. 前往我们在 Glitch 上的 Webhooks 入门项目: 在 Glitch 上整合
  2. 在左侧导航面板中,点击 server.js,查看 Webhooks 端点的实现代码。
  3. 点击右上角的分享,获取已发布站点的网址。这将是您的回调网址。该回调网址类似于 https://<project-name.glitch.me/webhook
  4. 在左侧导航面板中点击 Status(状态)按钮。您会看到应用正在侦听特定端口。
  5. 发送一条消息或给自己发送一条测试消息,以查看通知。以下日志示例显示收到一条正文为“Hi”的文本消息,同时还显示一条状态依次更新为已发送、已送达和已读的已发送消息。
    Incoming webhook: {"messages":[{"from":"1234567890","id":"ABGGhSkIc2B_Ago-sDy5BNm-1gI5","text":{"body":"Hi"},"timestamp":"1529381066","type":"text"}]}
    Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"sent","timestamp":"1529381072"}]}
    Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"delivered","timestamp":"1529381072"}]}
    Incoming webhook: {"statuses":[{"id":"gBGGhSkIc2B_AgkXDygfSDwgG5s","recipient_id":"1234567890","status":"read","timestamp":"1529381076"}]}