一次性通知(公测版)

摘要

Messenger 开放平台的一次性通知 API(公测版)允许公共主页请求用户在 24 小时消息时间范围结束后发送一条跟进消息。用户也可选择接收未来的通知。用户选择接收通知后,该公共主页会收到一个口令,这等效于向用户发送一条消息的权限。该口令仅能使用一次,并将在创建后的一年内过期。




权限

如果有意向使用此 API,则公共主页需在公共主页设置的“高级消息”版块申请“一次性通知”权限。该公共主页还需接受公测版条款,并将会在符合我们规定的条件后获得相关权限。




使用方法

发送一次性通知请求

利用“发送 API”,公共主页能够以模板的形式发送通知请求消息。模板类型应为 one_time_notif_req。请求正文应采用适合所有模板类型的标准格式,其中 message.attachment.payload 属性包含特定于每个模板类型的类型和内容详情。您只能自定义请求的标题和负载。title 字段限制为 65 个字符。

{
  "recipient": {
    "id":"

将会显示一次性通知请求模板,并且当用户点击“通知我”按钮后,系统会将 message_optins Webhooks 发送至您的后端,而 one_time_notif_token 可用于在 24 小时的时段外向用户发送一次性跟进消息。

发送跟进消息

要发送跟进消息,请向发送 API 提交 POST 请求,请求正文中应设置通过 Webhooks 获取的 one_time_notif_token 以及 message.text

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient": {
    "one_time_notif_token":"<ONE_TIME_TOKEN>"
  },
  "message": {
    "text":"<MESSAGE_CONTENT>"
  }
}' "https://graph.facebook.com/v21.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

要发送富消息,请使用富内容替换文本。请参考发送 API 参考文档,了解受支持消息类型的完整列表。one_time_notif_token 仅可使用一次,并将在消息成功发送后失效。

Webhooks 事件

当用户同意接收关于特定更新的通知后,您将收到带有 payloadone_time_notif_token 的 Webhooks 事件。您需要存储负载和口令,以便在有相关信息时发送跟进消息。请注意,没有单独用于查询 one_time_notif_token 列表的 API,因此请务必在收到 Webhooks 信息后对其进行处理和存储。每个口令仅能使用一次,并将在创建后的一年内过期。

{
   "sender": {
     "id":"<PSID>"
   },
   "recipient": {
     "id":"<PAGE_ID>"
   },
   "timestamp":1458692752478,
   "optin": {
     "type": "one_time_notif_req",
     "payload": "<USER_DEFINED_PAYLOAD>",
     "one_time_notif_token":"<ONE_TIME_TOKEN>",
   }
}

限制

  • 请勿使用负载字段发送密码、用户凭证、可识别用户身份的信息(即,姓名或邮箱等可单独用于联系用户或识别其身份的信息)或其他敏感信息(如健康状况、财务、支付或持卡人数据,或根据适用法律定义为敏感信息的其他类别的信息)。
  • 一次性通知请求的数量受流量限制制约,以避免造成不良的用户体验。

常见问题

如需了解更多信息,请参阅常见问题页面

开发者支持