发送消息API
快捷发送定制化的消息
发送消息API,快捷发送定制化的消息
利用bothub,您可以便捷的推送Messenger消息或者应答。但有时您可能有一些更灵活的需求,比如在消息中包含用户的一些过往订单的信息,或者是姓名等信息,抑或是在过往和用户的沟通中获取了用户的手机号,但此用户并没有在Messenger上和您的fans page沟通过,现在需要此用户推送消息等等。
为此我们推出发送消息API,为用户提供这些灵活性。
发送请求
您可以用任意一个已经启用的API Key(怎样申请APIKey) 向Bothub发起请求,向一个手机号或一个官网账号发送一条消息。这个请求的说明如下:
请求属性
属性名
说明
请求方式
POST
Header
APIKEY
您的API KEY
Header
Content-Type
application/json
Form Data
request.method
需要调用的api。此处设置为send_message
Form Data
request.id
用来唯一标识此发送请求的id。由调用方生成
Form Data
request.sync
为true或false。若为true,Bothub会等待发送完所有消息后再返回请求。若为false,则会立即返回,等到发送完消息后再发一个请求给api调用方
Form Data
request.recipient
要发送消息的用户信息,只能指定一个用户
Form Data
message
要发送的消息。形式会在下方详述。
Form Data
request.meta
预留字段
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
消息标签, 枚举值包括COMMUNITY_ALERTCONFIRMED_EVENT_REMINDERNON_PROMOTIONAL_SUBSCRIPTION
PAIRING_UPDATEAPPLICATION_UPDATE
ACCOUNT_UPDATEPAYMENT_UPDATE
PERSONAL_FINANCE_UPDATESHIPPING_UPDATE
RESERVATION_UPDATEISSUE_RESOLUTION
APPOINTMENT_UPDATE
GAME_EVENTTRANSPORTATION_UPDATEFEATURE_FUNCTIONALITY_UPDATE
TICKET_UPDATE
, 当messaging_type
为MESSAGE_TAG
时必填, 标记消息使用场景, 详见https://developers.facebook.com/docs/messenger-platform/send-messages/message-tags
请求样例
同步方式请求返回值以及异步式调用回调内容
返回值
内容
request_id
调用者在请求中设置的同名字段
recipient_id
若调用成功,返回用户的Facebook账号
error.code
错误码
error.message
错误信息
error.error_subcode
子错误码
请注意 使用phone_number方式进行调用,返回的recipient_id不是立刻生效的,而是要等到用户回复了这条消息(或者点击了和Page开始对话)才可以。目前对于phone_number方式指定的用户,若需要发后续消息,请暂时还是使用phone_number方式指定。
成功返回值样例
失败返回值样例
注意点
如果指定的用户是手机号,并且发送成功了,那么会返回用户信息,包含用户id,姓名。
如果选择的是异步方式,那么返回值会作为参数发送到商户指定的回调地址处。
错误码列表
返回值
内容
10000
内部错误
10001
未指定API KEY
10002
无效的API KEY
10003
未指定Request id
10004
未指定调用API的种类
10005
无效的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。
如果选择的是异步方式,那么返回值会作为参数发送到商户指定的回调地址处。
用户指定
在一个请求中可以指定1个用户,用户可以手机号的方式指定。如果是已经做过账号绑定的账号(在Messenger内登录 或者 通过接口关联), user 为一个json对象,示例如下
示例
手机号支持的格式为:不含区号的纯数字电话号码,例如
18611112222 //中国号码
6267800000 //美国号码
country是指定的方式为code(2位ISO码,例如CN,US)和phone_code(区号,纯数字不带加号,例如86,1等),两者择一即可
对于已绑定的账号,请保持账号和之前账号绑定时给定的值完全一致.
若通过手机号指定,必须带上加号和区号。
消息格式
目前Bothub支持的消息格式包括文本消息,橱窗消息,订单回执。
文本消息
文本信息是一条独立的文字信息。表现形式如下:
消息格式如下(直接作为请求中Form Data的值即可):
橱窗信息
橱窗信息是一组说明文字,图片和选项的集合,并且可以一次性发送多个橱窗。表现形式如:
消息格式如下(带//的字样为说明部分,实际使用中请去掉)
订单回执
订单回执是用户在Messenger上付款之后的回执。提供了用戶付款的信息和購買的商品信息。
消息格式如下(带//的字样为说明部分,实际使用中请去掉)
通过按钮链接到别的内容 有时,我们希望展现给用户一些消息的集合,用户可以通过点击按钮查看更详细的信息。如下图 当用户点击了“完全开放”后,系统自动返回另一个卡片。
消息格式如下(带//的字样为说明部分,实际使用中请去掉)
块的名字(上面代码中block_name属性需要使用bothub.ai后台中存在的块内容的名字,如下图上方黑色的“view_details”。注意空格和大小写需要完全一致。
特殊的内容,包括欢迎设置,问候消息,系统菜单,默认回答不能在这里被引用
用户个人信息
有时,我们希望在消息中包含用户的个人信息。例如:我们希望名叫Mike Smith的用户收到如下文本信息: Hello Mike Smith, here is your order receipt. 此时可以以模板来指代用户的个人信息。例如上面那条信息可以写为: Hello , here is your order receipt.
: 用户的名(first name)
: 用户的姓 (last name)
: 用户的facebook user id
: 用户的位置信息(形式如en-US, zh-CN)
: 用户性别(male/female)
请注意!! 请勿在使用电话号码进行发送时使用用户姓名!因为仅凭手机号,我们是不知道用户的任何信息的。当用户回复了使用手机号发送的消息后(即使点击了开始对话就可以),用户姓名的宏才会生效。
Last updated