消息推送API
开发人员可以调用Joinchat发送消息API, 向messenger用户发送消息, 是客户自助解决问题的高效方案
请求URL
请求示例和接口安全性验证
JoinChat会为每个机器人生成独一无二的私钥。在调取Joinchat发送API时,开发人员需要用此密钥对整个请求参数提进行sha256、base64加密,并将签名加在请求Header头的x-joinchat-signature
字段里。JoinChat会根据请求体和签名验证接口安全性, 注意不要泄露自己的私钥。开发者可以随时在后台设置--API管理页面
更改自己的私钥
下面是调用JoinChat发送API向用户发送消息的简单示例 :
请求参数解释
参数示例
参数含义
字段 | 类型 | 说明 |
page_id | 字符串 | 机器人绑定的facebook主页id, 可在设置-API中查看 |
recipient | 对象 | 对消息接收人的说明。所有请求都必须包含下列任一属性: |
message | 对象 | 消息对象, 有五种, 包括 文本消息, 菜单消息, 画册消息, 列表消息, 回执消息, 参考各类型消息文档 |
tag | 字符串 | 消息标签, 可以不受24小时发送时间窗限制, 参考消息标签文档 |
delay | int | 消息延时, 单位s, 连续发送消息时, 先后顺序不好控制, 可加入适当延时, 最大10 |
发送者对象recipient
开发者可以通过四种方式给用户发送messenger消息, 四者只能选一个
字段 | 类型 | 说明 |
id | 字符串 | 消息接收人的facebook_id, 可在用户管理中查看 |
phone | 字符串 | 消息接收人的phone, 可在用户管理中查看, 需用户绑定phone |
字符串 | 消息接收人的email, 可在用户管理中查看, 需用户绑定email | |
uuid | 字符串 | 见uuid介绍 |
recipient.uuid
介绍
uuid是JoinChat为开发者提供了一种非常灵活的消息发送方式, 开发者可以将自己网站的用户和uuid做关联, 当开发者随时想向自己网站用户发送 messenger 消息, 既可通过和用户关联的uuid请求JoinChat发送API, 从而将消息送达到facebook用户, 使用场景如下:
用户注册后, 给用户messenger推送积分信息, 并且发送优惠券
用户购物车弃购后, 给用户messenger推送召回消息, 提高转化率
用户下单后, 给用户推送订单回执
配置方法
如何将自己网站的用户和uuid做关联呢? 三步即可
创建插件
登录JoinChat后台, 点击推广插件, 创建Send to Messenger插件或者优惠券插件;
配置SDK并安装代码
创建推广插件后, 点击SDK管理, 选择刚创建的插件, 启用后, 然后复制链接插码到自己的网站
开发者打开自己网站, 即可看到send to messenger插件
编写Javascript回调函数
当用户点击Send to Messenger
插件, JoinChat会执行开发者设置的Javascript回调函数, 在回调函数中开发者可以将uuid和自己网站的用户id关联起来, 回调函数设置方式如下
开发者自己网站用户和uuid做了关联, 即可以随时向用户发送messenger消息
消息类型
joinchat支持用户发送文本消息, 菜单消息, 画册消息, 列表消息和回执消息,
其中文本消息为普通消息, 其他消息都被模板消息.
模板消息可以增加按钮, 首先先介绍支持的按钮类型, 然后介绍支持的各种消息类型
开发者想了解messenger消息类型, 可参阅facebook messenger 官方文档
按钮类型
网址按钮
格式
参数解释
type: 值必须为web_url
url: 点击按钮要打开的网址,
title: 按钮标题。请勿超过 20 个字符。
属性 | 类型 | 说明 |
| 字符串 | 按钮的类型。必须是 |
| 字符串 | 按钮标题。请勿超过 20 个字符。 |
| 字符串 | 用户轻触按钮后,此网址将在移动浏览器中打开。需要在Joinchat管理端将该网址域名添加到白名单中 |
| 字符串 | 可选。 WebView 的高度。有效值: |
回传按钮
格式
参数解释
字段 | 类型 | 说明 |
| 字符串 | 按钮的类型。必须为 |
| 字符串 | 按钮标题。请勿超过 20 个字符。 |
| 字符串 |
|
文本消息
请求参数示例:
参数解释
template_type: 值必须为text
text: UTF-8 编码文本,最多 640 个字符。
菜单消息
请求参数示例:
参数解释
message
message
属性 | 类型 | 说明 |
| 字符串 | 值必须为 |
| 字符串 | UTF-8 编码文本,最多 640 个字符。文本显示在按钮上方。 |
| 阵列<按钮> | 显示为行动号召的一组按钮,包括 1-3 个按钮。 |
| Boolean | 可选。 设置为 |
画册消息
请求参数示例:
参数解释
message
message
属性 | 类型 | 说明 |
| 字符串 | 值必须为 |
| Boolean | 可选。 设置为 |
| 字符串 | 可选。 呈现 |
| 数组< |
|
message.elements
message.elements
对于每一条消息,常规模板最多支持 10 个元素。除 title
之外,还必须至少设置一种属性。
属性名称 | 类型 | 说明 |
| 字符串 | 显示在模板中的标题。不超过 80 个字符。 |
| 字符串 | 可选。 显示在模板中的副标题。不超过 80 个字符。 |
| 字符串 | 可选。 显示在模板中的图片网址。 |
| 对象 | 可选。 用户轻触模板时执行的默认操作。接受与网址按钮相同的属性, |
| 数组< | 可选。 要添加到模板中的按钮数组。每个元素最多支持 3 个按钮。 |
列表消息
请求参数示例:
参数解释
message
message
属性 | 类型 | 说明 |
| 字符串 | 值必须为 |
| 字符串 | 可选。 设置第一个列表项的格式。Messenger 网页客户端目前仅呈现
|
| 一组<按钮> | 可选。 显示在列表底部的按钮。最多支持 1 个按钮。 |
| 一组<元素> | 描述列表中各项目的一组元素。 要求最少 2 个元素。最多支持 4 个元素。 |
| Boolean | 可选。 设置为 |
message.elements
message.elements
属性 | 类型 | 说明 |
| 字符串 | 显示为列表项标题的字符串。 不超过 80 个字符。如果标题跨越太多行,则可能会被截断。 元素也必须至少设置 |
| 字符串 | 可选。 显示为列表项副标题的字符串。不超过 80 个字符。如果副标题跨越太多行,则可能会被截断。 元素必须至少设置 |
| 字符串 | 可选。 要显示在列表项中的图片网址。 元素必须至少设置 |
| 对象 | 可选。网址按钮,指定用户轻触列表项时要执行的默认操作。 仅当 |
| 一组<按钮> | 可选。 要显示在列表项中的按钮。最多支持 1 个按钮。 |
回执消息
请求参数示例:
参数解释
message
message
Property | Type | Description |
| String | Value must be |
| Boolean | Optional. Set to |
| String | The recipient's name. |
| String | The order number. Must be unique. |
| String | The currency of the payment. |
| String | The payment method used. Providing enough information for the customer to decipher which payment method and account they used is recommended. This can be a custom string, such as, "Visa 1234". |
| String | Optional. Timestamp of the order in seconds. |
| Array<element> | Optional. Array of a maximum of 100 |
|
| Optional. The shipping address of the order. |
| Object | The payment summary. See |
| Array< | Optional. An array of paymentobjects that describe payment adjustments, such as discounts. |
message.address
message.address
Property | Type | Description |
| String | The street address, line 1. |
| String | Optional. The street address, line 2. |
| String | The city name of the address. |
| String | The postal code of the address. |
| String | The state abbreviation for U.S. addresses, or the region/province for non-U.S. addresses. |
| String | The two-letter country abbreviation of the address. |
message.summary
message.summary
The property values of the summary
object should be valid, well-formatted decimal numbers, using '.
' (dot) as the decimal separator. Please note that most currencies only accept up to 2 decimal places.
Property | Type | Description |
| Number | Optional. The sub-total of the order. |
| Number | Optional. The shipping cost of the order. |
| Number | Optional. The tax of the order. |
| Number | The total cost of the order, including sub-total, shipping, and tax. |
message.adjustments
message.adjustments
Property | Type | Description |
| String | Required if the |
| Number | Required if the |
message.elements
message.elements
Property | Type | Description |
| String | The name to display for the item. |
| String | Optional. The subtitle for the item, usually a brief item description. |
| Number | Optional. The quantity of the item purchased. |
| Number | The price of the item. For free items, '0' is allowed. |
| String | Optional. The currency of the item price. |
| String | Optional. The URL of an image to be displayed with the item. |
消息标签
借助消息标签,您可以在需要持续发送通知或最新消息的一些有限情况下,不受 24 小时时间窗的限制向用户发送消息。这样一来,您的智能助手就可以更灵活地与用户互动,您也可以在 Messenger 平台为用户打造更丰富的体验。
允许的用途 — 无推广内容
请注意,消息标签仅用于发送非推广内容。
使用消息标签发送推广内容(例如,每日特惠、优惠券、折扣或促销公告)是违反 Messenger 平台政策的行为。
标签 | 允许的用途 | 示例 |
| 发送非推广消息来帮助用户管理业务或相关活动的效率。 |
|
| 向消息接收人通知紧急事件或公用设施问题,或在您的社群内询问平安状况。 |
|
| 向消息接收人发送参加排期活动的提醒消息。 |
|
| 发送 Messenger 平台订阅消息政策中规定的几个类别的非推广消息:新闻资讯、工作效率和个人追踪。您可在主页的“设置”>“Messenger 平台”版块申请此标签的使用权限。 | |
| 通知消息接收人,已根据之前的请求找到匹配项。 |
|
| 通知消息接收人其申请状态的更新。 |
|
| 通知消息接收人其帐户设置的更改。 |
|
| 通知消息接收人现有交易的支付状态更新。 |
|
| 确认消息接收人的财务活动。 |
|
| 通知消息接收人某件已购买商品的配送状态更改。 |
|
| 通知消息接收人现有预订的更新。 |
|
| 通知消息接收人在 Messenger 对话中发起的客户服务问题有何更新。 |
|
| 通知消息接收人现有预约的更改。 |
|
| 通知消息接收人,游戏内用户进度、全局活动或直播体育赛事的更改。 |
|
| 通知消息接收人现有交通运输服务预订的更新。 |
|
| 通知消息接收人,智能助手推出了新特性或新功能。 |
|
| 向消息接收人发送已购票活动的更新或提醒。 |
|
Last updated