Sign inGet Started

企业专属用户 ID

通过企业专属用户 ID(BSUID),您无需知道电话号码就能向 WhatsApp 用户发送消息。它用于在您的 Meta 业务资产组合内识别用户。

WhatsApp 用户名

设置了用户名的 WhatsApp 用户可以在不分享电话号码的情况下给您发消息。消息中会包含 from.bsuid,但可能没有 from.phone_number。未设置用户名的用户也可以有 BSUID。

如果用户在您的 Meta 通讯录中,或在过去 30 天内与您的企业号码互发过消息或通话,Meta 就会提供其电话号码。30 天规则分别适用于每个企业号码。

from.username 和 from.display_name 都是可选字段。您不能以这两个值为收件人发送消息。

BSUID 格式

BSUID 由大写的 ISO 3166 alpha-2 国家代码、一个句点和最多 128 个字母或数字组成。例如:US.13491208655302741918。

存储和发送时请保留完整原值。使用同一业务资产组合中的发送号码。Meta 会拒绝从其他资产组合发送的消息。

用户更换电话号码后,BSUID 也会改变,因此应将它保存在您自己的客户 ID 下。

父级 BSUID 可用于受管理企业注册的多个业务资产组合。它在国家代码后添加 ENT.:US.ENT.11815799212886844830。128 个字符的上限适用于 ENT. 后的部分。Bird 接受这两种格式。

请求电话号码

以下消息 API 示例只展示此次对话所需的字段。

1. 用户给您发消息

这条消息包含用户的 BSUID,但没有电话号码。

您有 24 小时可以不使用模板进行回复。

代码示例
{
  "direction": "inbound",
  "from": {
    "bsuid": "US.13491208655302741918"
  },
  "to": {
    "phone_number": "+14155550100"
  },
  "text": {
    "body": "Can I book a repair?"
  }
}

2. 请求用户分享号码

向 BSUID 发送联系信息请求。WhatsApp 会显示一个用于分享电话号码的按钮。

超过 24 小时时限后,请发送带有 request_contact_info 按钮的模板。

代码示例
{
  "direction": "outbound",
  "from": {
    "phone_number": "+14155550100"
  },
  "to": {
    "bsuid": "US.13491208655302741918"
  },
  "interactive": {
    "type": "request_contact_info",
    "body_text": "Share your number."
  }
}

3. 用户点击按钮

您会收到一张联系人卡片,其中包含 origin: "contact_request",分享的号码位于 phone_numbers。

在这条回复中,from 也包含用户的电话号码。

代码示例
{
  "direction": "inbound",
  "from": {
    "bsuid": "US.13491208655302741918",
    "phone_number": "+14155550101"
  },
  "contact_cards": [
    {
      "origin": "contact_request",
      "phone_numbers": [
        {
          "phone_number": "+14155550101"
        }
      ]
    }
  ]
}

如果用户关闭请求,您不会收到消息或 webhook。设置超时时间,以便应用在没有号码的情况下继续运行。

发送消息

将 to 设为 BSUID,将 from 设为您的 WhatsApp 企业号码:

代码示例
{
  "to": "US.13491208655302741918",
  "from": "+14155550100",
  "text": { "body": "Your repair is booked." }
}

如果收到的消息只有 BSUID,请使用同一企业号码回复该 BSUID。您自己记录的电话号码可能没有开启服务窗口,因此会返回 422 E15044。

  • 身份验证模板需要使用电话号码。
  • 无效的电话号码或 BSUID 会返回 422 E15001。
  • 消息价格取决于 BSUID 中的国家代码。

客户服务窗口同样适用于 BSUID。202 响应表示 API 已接受您的请求。请检查消息状态以确认送达。

查找消息

在消息和 webhook 中,from 标识发送方,to 标识接收方。两者均可包含 phone_number、bsuid,或同时包含这两个字段。

列出消息时,可以使用以下筛选条件:

  • from 或 to:使用电话号码或 BSUID 筛选发送方或接收方。
  • bsuid:查找发送给同一 WhatsApp 用户或从该用户收到的消息。

phone_number 筛选条件已弃用。请改用 from 或 to。

相关指南