此API提供了发送Meetbot后台中预定义的消息模板,但是对每个用户可以以自定义变量替换消息中占位符,以达到定制化的效果。 例如,我们在Meetbot后台定义如下文本消息: "您的目前积分为" 而我们在发送信息时可以为每个用户指定参数为他的实际积分数。这样我们就实现了发送用户积分数量的功能。如果我们希望更改文字,或是使用除纯文字之外的模板,直接在Meetbot后台修改模板即可,完全不需要任何代码级的修改。
发送请求
您可以用任意一个已经启用的API Key向Meetbot发起请求,向一个手机号或一个官网账号发送一条消息。
这个请求的说明如下:
请求属性 | 属性名 | 说明 |
---|---|---|
地址 | https://api.meetbot.biz/api | |
请求方式 | POST | |
Header | APIKEY | 您的API KEY |
Form Data | request.method | 需要调用的api。此处设置为send_block |
Form Data | request.id | 用来唯一标识此发送请求的id。由调用方生成 |
Form Data | request.sync | 为true或false。若为true,Meetbot会等待发送完所有消息后再返回请求。若为false,则会立即返回,等到发送完消息后再发一个请求给api调用方 |
Form Data | request.meta | 预留字段 |
Form Data | recipient | 要发送消息的用户信息,只能指定一个用户 |
Form Data | message | 要发送的消息。形式会在下方详述。 |
Form Data | params | 要替换的参数。形式会在下方详述。 |
Form Data | messaging_type | 消息类别,枚举值包括RESPONSE UPDATEMESSAGE_TAG , 根据facebook政策,2018.5.7之后必须带messaging_type 才能发送消息,详见https://developers.facebook.com/docs/messenger-platform/send-messages |
Form Data | message_tag | 消息标签,,枚举值包括POST_PURCHASE_UPDATE CONFIRMED_EVENT_UPDATE ACCOUNT_UPDATE , 当messaging_type 为MESSAGE_TAG 时必填, 标记消息使用场景, 详见https://developers.facebook.com/docs/messenger-platform/send-messages/message-tags |
请求样例
{
"recipient": {
"id": "7819201"
},
"message": {
"block_name": "points_info",
"params": [
{
"key": "points",
"value": "20000"
},
{
"key": "prize",
"value": "Gold Medal"
}
]
},
"request": {
"method": "send_block",
"id" : "F4js0Za1",
"sync": true,
"meta": ""
},
"messaging_type": "MESSAGE_TAG",
"message_tag": "POST_PURCHASE_UPDATE"
}
同步方式请求返回值以及异步式调用回调内容
请详见下方【请求返回值】
错误码列表
返回值 | 内容 |
---|---|
10000 | 内部错误 |
10001 | 未指定API KEY |
10002 | 无效的API KEY |
10003 | 未指定Request id |
10004 | 未指定调用API的种类 |
10005 | 无效的API种类 |
10006 | Bot不存在或者已经被删除 |
10007 | 未指定recipient字段 |
10008 | recipient结构不正确 |
10009 | 无效的用户指定方式 |
10010 | 用户不存在 |
10011 | Request id与之前的重复 |
10100 | 参数无效 |
18000 | 内部错误 |
19000 | 回调超时 |
20001 | 未定义Message字段 |
20002 | 未定义交易通知地址 |
20003 | 无法将手机号匹配为Messenger用户 |
20004 | Message字段结构错误 |
- 如果指定的用户是手机号,并且发送成功了,那么会返回用户信息,包含用户id,姓名。以后指定该用户就可以使用id。
- 如果选择的是异步方式,那么返回值会作为参数发送到商户指定的回调地址处。
用户指定
请参见 下方【用户指定】
消息格式
样例格式如下
"message": {
"block_name": "points_info",
}
如上图中的“view_details"
参数指定
params是message的属性之一,用于指定模板参数用什么值加以替换。 样例格式如下:
"message": {
"block_name": "points_info",
"params": [
{
"key": "points",
"value": "20000"
},
{
"key": "prize",
"value": "Gold Medal"
}
]
},
例如,这条消息发送时,points_info这个block中的所有卡片的文本,只要含有模板,就会被替换为20000,则会被替换为Gold Medal.
- 对于文本消息而言,文字中的模板会被替换
- 对于菜单,橱窗等消息而言,title,subtitle,按钮的title中若含有模板,都会被替换。
- 当此API种设置的参数和设置参数API设置过的参数同名时,以此API指定的参数为准。但此API种定义的参数并不会作为用户的参数被保存下来。因此本API的参数适合被定义为一次性使用的参数。
模板编写
模板编写方式为
- template_name由大小写字母,数字和下划线组成。不含其它字符和空格。
- template_name不能为first_name和last_name.这两个是用于用户姓名的替换。
- template_name区分大小写。此api仅当template和params的key属性完全相等时,才会以params的value属性替换模板。
用户姓名
有时,我们希望在消息中包含用户的个人姓名。例如:我们希望名叫Mike Smith的用户收到如下文本信息: Hello Mike Smith, here is your order receipt. 此时可以以模板来指代用户的个人信息。例如上面那条信息可以写为: Hello , here is your order receipt.
- 将被转化为用户的名 {{first_name}}
- 将被转化为用户的姓 {{last_name}}