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
仅可使用一次,并将在消息成功发送后失效。
当用户同意接收关于特定更新的通知后,您将收到带有 payload
和 one_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>", } }
如需了解更多信息,请参阅常见问题页面。