Facebook Messenger API
# Facebook Messenger API
# 接口声明
在调用接口时必须在 https 请求的 header 中携带 "token" 参数。
Token 是智齿客服接口开放平台全局唯一的接口调用凭据。 开发者在调用各业务接口时都需使用 Token,开发者需要进行妥善保存。 Token 的存储至少要保留 32 个字符空间。Token 的有效期目前为 24 个小时,需定时刷新,或根据接口返回的 Token 失效提示,进行重新获取。请求 Token 接口,无论 Token 是否存在,都会返回新的 Token,并重置 Token 的过期时间(目前 24 小时)。
Token 使用方式说明: 1、开发者需要统一获取和管理 Token,在调用智齿客服各个业务开放接口时都应该使用同一个的 Token,不应该每个业务都刷新获取新的 Token,否则容易导致 Token 失效,影响接口的正常调用; 2、目前 Token 的有效期通过返回的 expire_in 来传达,目前是 86,400 秒之内的值。开发者需要根据这个有效时间提前去刷新新 Token。 3、开发者需要根据接口返回的 Token 失效提示,进行重新获取 Token。
# 接口调用
# ● 获取Token
接口说明:
获取 API 开放接口 Token,此 Token 仅适用于智齿开放平台 5.0 版本全部 API 接口 。API 接口中的参数 appid 、 app_key 请联系智齿售后人员获取。
请求方式:
GET
请求地址:
https://sg.sobot.com/api/get_token
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | String | 是 | 接口凭证 Id,第三方用户接口调用唯一凭证 id |
create_time | String | 是 | 10位数时间戳 |
sign | String | 是 | 签名 md5(appid+create_time+app_key) |
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
item | Object | 否 | 返回对象 |
item 对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
token | String | 是 | token 编码 |
expires_in | String | 是 | 凭证有效时间,单位:秒 |
时间戳转换参考工具:
http://tool.chinaz.com/Tools/unixtime.aspx
sign 签名生成示例:
例如,appid = "1"; create_time="1569397773"; app_key="2"
sign = Md5("115693977732") 为 258eec3118705112b2c53dc8043d4d34。
请求示例:
curl https://sg.sobot.com/api/get_token?appid=1&create_time=1569397773&sign=258eec3118705112b2c53dc8043d4d34
返回示例:
{
"item": {
"token": "4ac37cb2e9c740dba4b75a34d5358802",
"expires_in": "86400"
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
# 发送消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/send
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
messaging_type | String | 否 | RESPONSE(用于回复已收到消息的消息。这包括在 24 小时标准消息时间范围内发送的推广消息和非推广消息。例如,在用户询问预约确认或状态更新情况时,您可以使用此标签回复) UPDATE(主动发出且并非用于回复已收到消息的消息。这包括在 24 小时标准消息时间范围内发送的推广消息和非推广消息) MESSAGE_TAG(属于非推广消息的消息,而且是在 24 小时标准消息时间范围过后使用消息标签发出) |
recipientid | String | 否 | 当发送非营销消息时必填,和recipient_token互斥(接收方) |
recipient_token | String | 否 | 当发送营销消息时必填(接收方) |
pageid | String | 是 | 发送方 |
type | String | 是 | text/image/audio/video/file/template (固定值) |
tag | String | 否 | 当messaging_type为 MESSAGE_TAG 为必填 |
payload | Object | 是 | 消息内容 |
tag参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ACCOUNT_UPDATE | String | 否 | 将您要向客户发送的消息标记为针对其申请或帐户的不定期更新 |
CONFIRMED_EVENT_UPDATE | String | 否 | 将您要向客户发送的消息标记为近期事件的提醒,或客户已报名参加的进行中事件的更新 |
HUMAN_AGENT | String | 否 | 在向客户发送的消息中添加此标签后,人工客服便可回复用户消息 |
POST_PURCHASE_UPDATE | String | 否 | 将您要向客户发送的消息标记为针对客户最近购买行为的更新 |
# 1. payload示例
1.1 type为 text 类型
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"text",
"payload":"What do you want to do next?"
}
2
3
4
5
6
7
1.2 type为 image/audio/video/file 类型
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"image",
"payload": {
"url":"https://sg.sobot.com/console/common/face/admin.png"
}
}
2
3
4
5
6
7
8
9
1.3 messaging_type为 MESSAGE_TAG 类型
{
"messaging_type":"MESSAGE_TAG",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"text",
"tag": "ACCOUNT_UPDATE",
"payload":"What do you want to do next?"
}
2
3
4
5
6
7
8
1.4 type为 template 类型
- 1.4.1 模板类型为button
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
template_type | String | 是 | button(固定值) |
text | String | 是 | 不超过 640 个字符。文本将显示在按钮上方 |
buttons | Array | 是 | 一组按钮(数量为 1 至 3 个) |
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"template",
"payload": {
"template_type":"button",
"text":"What do you want to do next?",
"buttons":[
{
"type":"web_url",
"url":"https://www.messenger.com",
"title":"Visit Messenger"
}]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- 1.4.2 模板类型为generic
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
template_type | String | 是 | generic(固定值) |
elements | Array | 是 | 不超过 640 个字符。文本将显示在按钮上方 |
buttons | Array | 是 | 一组按钮(数量为 1 至 3 个) |
elements对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
title | String | 是 | 模板标题,不超过 80 个字符。 |
subtitle | String | 否 | 模板中显示的副标题。不超过 80 个字符。 |
image_url | String | 否 | 模板中显示图片的网址。 |
default_action | object | 否 | 点击模板时执行的默认操作 |
buttons | Array | 否 | 一组按钮(数量为 1 至 3 个) |
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"template",
"payload": {
"template_type":"generic",
"elements":[
{
"title":"Welcome!",
"image_url":"https://petersfancybrownhats.com/company_image.png",
"subtitle":"We have the right hat for everyone.",
"default_action": {
"type": "web_url",
"url": "https://petersfancybrownhats.com/view?item=103",
"messenger_extensions": false,
"webview_height_ratio": "tall",
"fallback_url": "https://petersfancybrownhats.com/"
},
"buttons":[
{
"type":"web_url",
"url":"https://petersfancybrownhats.com",
"title":"View Website"
},{
"type":"postback",
"title":"Start Chatting",
"payload":"DEVELOPER_DEFINED_PAYLOAD"
}
]
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
- 1.4.3 模板类型为media
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
template_type | String | 是 | media(固定值) |
elements | Array | 是 | 不超过 640 个字符。文本将显示在按钮上方 |
elements对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_type | String | 是 | image/video |
attachment_id | String | 是 | 媒体id |
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"template",
"payload": {
"template_type":"media",
"elements":[
{
"media_type":"image|video",
"attachment_id":"ATTACHMENT_ID"
}]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
使用Facebook网址
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_type | String | 是 | image/video |
url | String | 是 | 仅支持Facebook网址 |
{
"messaging_type":"RESPONSE",
"recipientid":"RECIPIENTID",
"pageid":"PAGEID",
"type":"template",
"payload": {
"template_type":"media",
"elements":[
{
"media_type":"image|video",
"url": "FACEBOOK_URL"
}]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 上传附件
请求方式:
该上传方式为异步上传,返回track_id。上传结果通过webhook返回。
POST
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/upload_async
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
pageid | String | 是 | 主页id |
type | String | 是 | image/audio/video/file (固定值) |
payload | Object | 是 | 附件路径 |
请求示例:
{
"pageid":"PAGEID",
"type":"image",
"payload":{
"url":"URL"
}
}
2
3
4
5
6
7
返回示例:
{
"item": "d13415bb2b704e58aa373bb5e0e11914",
"ret_code": "000000",
"ret_msg": "成功"
}
2
3
4
5
attachment_id通过webhook返回,可根据item作为track_id追踪
{
"track_id": "d13415bb2b704e58aa373bb5e0e11914",
"attachment_id": "1234567890"
}
2
3
4
# 查询订阅主题用户
请求方式:
GET
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/query_sub_users
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | String | 是 | 主页id |
title | String | 是 | 订阅主题名称 |
page_no | Integer | 是 | 当前页数(默认从第一页) |
page_size | Integer | 是 | 每页条数(默认每页100条) |
请求示例:
curl -H 'token:4ac37cb2e9c740dba4b75a34d5358802' https://sg.sobot.com/chat-facebook/api/messenger/query_sub_users?appid=22222222&title=test&page_no=1&page_size=100
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
items | List | 否 | 对象列表 |
page_count | Integer | 是 | 总页数 |
page_no | Integer | 是 | 当前页数 |
page_size | Integer | 是 | 每页条数 |
total_count | Integer | 是 | 总条数 |
items集合:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
companyid | String | 是 | 公司id |
create_time | Long | 是 | 创建时间 |
facebookid | String | 是 | 用户id |
pageid | String | 是 | 公共主页id |
sub_status | Integer | 是 | 订阅状态(1 已订阅 0 已退订) |
sub_title | String | 是 | 订阅主题 |
sub_token | String | 是 | 用户token |
timezone | String | 是 | 时区 |
title_describe | String | 是 | 订阅主题描述 |
update_time | String | 是 | 订阅状态更新时间 |
返回示例:
{
"items": [
{
"companyid": "5f5262b52feb463bbf4e732323sdgfset",
"create_time": 1715079942588,
"facebookid": "5611755588",
"pageid": "1087397686",
"sub_status": 1,
"sub_title": "nice day",
"sub_token": "6956578469XXXXXX",
"timezone": "UTC",
"title_describe": "132",
"update_time": 1715155761777
}
],
"page_count": 1,
"page_no": 1,
"page_size": 15,
"ret_code": "000000",
"ret_msg": "成功",
"total_count": 1
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Webhook消息转发
请求地址:
webhook通知消息返回示例, 在智齿管理中心后台配置
# 1. 文本
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120447751,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "524807506000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120446870,
"message": {
"mid": "m_hAxxtkOsBG8UEtO0RQNcwPgfxWKYaLWowT0Z7iLv",
"text": "11"
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 2. 视频
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120224310,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "5248075068000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120223681,
"message": {
"mid": "m_6RK4gK9eklpa6uPCNFvNEvgfxWKYaLWowT0Z7iLv8BXpnCPA8KDnJOQOD26NINRuF",
"attachments": [{
"type": "video",
"payload": {
"url": "URL"
}
}]
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 3. 图片
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120138060,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "524807506000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120137558,
"message": {
"mid": "m_378ZrH7cpKmUUlmqOi5jQPgfxWKYaLWowT0Z7iLv8BWDeU",
"attachments": [{
"type": "image",
"payload": {
"url": "URL"
}
}]
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 4. 文件
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120108440,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "5248075068000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120107805,
"message": {
"mid": "m_0xp5Sj8GPFoLroU33qbcjPgfxWKYaLWowT0Z7iLv8BWnRj",
"attachments": [{
"type": "file",
"payload": {
"url": "URL"
}
}]
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# ● 消息发送状态通知
状态属性 | 状态含义 |
---|---|
delivery | 已送达 |
read | 已阅读 |
# 1. 已送达
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120251647,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "5248075068000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120251542,
"delivery": {
"mids": ["m_UdMtmDiovEo-vSR_awTk2_gfxWKYaLWowT0Z7iLv8BVMtn2OGld3BIc2naK-pB2hE"],
"watermark": 1714120250796
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 2. 已阅读
返回示例:
{
"object": "page",
"entry": [{
"time": 1714120249177,
"id": "110661988000000",
"messaging": [{
"sender": {
"id": "5248075068000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120248829,
"read": {
"watermark": 1714120247551
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 3. 订阅
返回示例:
{
"object": "page",
"entry": [{
"id": "110661988000000",
"time": 1714119984959,
"messaging": [{
"sender": {
"id": "524807506000000"
},
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714119984091,
"optin": {
"type": "notification_messages",
"payload": "描述",
"notification_messages_token": "863341894114000000",
"token_expiry_timestamp": 2145916800000,
"user_token_status": "NOT_REFRESHED",
"notification_messages_timezone": "UTC",
"title": "订阅主题"
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 4. 取消订阅
返回示例:
{
"object": "page",
"entry": [{
"id": "110661988000000",
"time": 1714120013874,
"messaging": [{
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120013874,
"sender": {
"id": "524807506000000"
},
"optin": {
"type": "notification_messages",
"payload": "描述",
"notification_messages_token": "86334189411000000",
"token_expiry_timestamp": 2145916800000,
"user_token_status": "NOT_REFRESHED",
"notification_messages_status": "STOP_NOTIFICATIONS",
"title": "订阅主题"
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 5. 重新订阅
返回示例:
{
"object": "page",
"entry": [{
"id": "110661988000000",
"time": 1714120082018,
"messaging": [{
"recipient": {
"id": "110661988000000"
},
"timestamp": 1714120082018,
"sender": {
"id": "524807506000000"
},
"optin": {
"type": "notification_messages",
"payload": "描述",
"notification_messages_token": "863341894114000000",
"token_expiry_timestamp": 2145916800000,
"user_token_status": "NOT_REFRESHED",
"notification_messages_status": "RESUME_NOTIFICATIONS",
"title": "订阅主题"
}
}]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 订阅主题管理
# ● 创建或修改订阅主题
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/create_or_update_title
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | String | 是 | 主页Id |
title | String | 是 | 订阅主题 |
describe | String | 是 | 订阅主题描述 |
image_ratio | String | 是 | 见:image_ratio参数: |
button_type | String | 是 | 见:button_type参数: |
image_url | String | 否 | 图片链接 |
timezone | String | 否 | 时区 |
configid | String | 否 | 如果是修改,传入config_id |
image_ratio参数:
参数 | 含义 |
---|---|
SQUARE | 1:1 |
HORIZONTAL | 1.91:1 |
button_type参数:
参数 | 含义 |
---|---|
ALLOW | 允许接收消息 |
GET | 接收消息 |
GET_UPDATES | 接收动态更新 |
OPT_IN | 选择接收消息 |
SIGN_UP | 订阅消息 |
请求示例:
curl https://sg.sobot.com/chat-facebook/api/messenger/create_or_update_title
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"appid": "106474898833640",
"title": "测试",
"describe": "这是一条测试消息",
"image_url": "https://xxx.xx.com/xxx/image.png",
"image_ratio": "SQUARE",
"button_type": "ALLOW",
"timezone": "UTC"
}'
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"item": "4ac37cb2e9c740dba4b75a34d5358802",
"ret_code": "000000",
"ret_msg": "成功"
}
2
3
4
5
# ● 删除订阅主题
请求方式:
GET
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/del_title
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
configid | String | 是 | 主题id |
请求示例:
curl -XGET https://sg.sobot.com/chat-facebook/api/messenger/del_title?configid=482716046a4242e7a5fa42e18d943ae0655810
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
2
返回示例:
{
"ret_code": "000000",
"ret_msg": "成功"
}
2
3
4
# ● 查询订阅主题
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/get_title_list
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
start_time | Long | 否 | 创建开始时间(毫秒级) |
end_time | Long | 否 | 创建结束时间(毫秒级) |
appids | String | 否 | 主页id(多个按到逗号分割) |
title | String | 否 | 订阅主题 |
page_no | Integer | 是 | 查询页数,默认:1 |
page_size | Integer | 是 | 查询条数,默认:15 |
请求示例:
curl https://sg.sobot.com/chat-facebook/api/messenger/get_title_list
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"start_time": 1317698342419,
"end_time": 1573693149125,
"appids": "11,22,33",
"title": "测试",
"page_no": 1,
"page_size": 15
}'
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": [
{
"companyid": "c72d7e67c0f64d38879747c9cfd68e85",
"create_time": 1713871710134,
"timezone": "UTC",
"button_type": "ALLOW",
"image_url": "https://xxx.xx.com/xxx/image.png",
"title": "测试",
"app_name": "爱你一万年",
"update_time": 1713871710134,
"configid": "10d7de1db4884c43b4b88e3fcbbf47d2",
"image_ratio": "SQUARE",
"describe": "这是一条测试消息",
"appid": "106474898833640"
}
],
"page_count": 1,
"page_no": 1,
"page_size": 15,
"ret_code": "000000",
"ret_msg": "成功",
"total_count": 1
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 发送optin消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-facebook/api/messenger/send_opt_in_message
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
appid | String | 是 | 主页id |
title | String | 是 | 订阅主题 |
recipientid | String | 是 | facebook用户ID |
describe | String | 否 | 订阅主题描述 |
image_url | String | 否 | 图片链接 |
image_ratio | String | 否 | 图片比例 |
button_type | String | 否 | 按钮类型 |
timezone | String | 否 | 时区 |
请求示例:
curl https://sg.sobot.com/chat-facebook/api/messenger/send_opt_in_message
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"appid": "106474898833640",
"title": "测试",
"recipient_id": "123456789"
}'
2
3
4
5
6
7
8
9
返回示例:
{
"item": {
"message_id": "m_PWpxCEkBhmD6guuH7FnlVtlnpgH1w6kCmPWZypSP-IHxHmHwJf02vcR2t3tE2HGTtzEm27GCqXLyIhG4WazTDw",
"recipient_id": "123456789"
},
"ret_code": "000000",
"ret_msg": "成功"
}
2
3
4
5
6
7
8
# 查询群发任务数据
接口说明:查询群发任务数据
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-set/api/messenger/query_task_list
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
task_start_time | Long | 否 | 任务开始时间(形如:1714295033250) |
task_end_time | Long | 否 | 任务结束时间(形如:1714295033250) |
sender | String | 否 | sender(公共主页) |
task_name | String | 否 | 任务名称 |
message_topic_or_tag | String | 否 | 订阅主题/消息标签 (消息标签编码参数见:message_tag类型) |
message_type | Integer | 否 | 消息类型(1.营销消息 2.消息标签) |
page_no | Integer | 否 | 开始页 (默认1) |
page_size | Integer | 否 | 查询条数(默认15,最大100) |
返回参数:
参数 | 类型 | 描述 |
---|---|---|
ret_code | String | 返回编码 |
ret_msg | String | 返回信息 |
items | List | 返回对象 |
page_count | Integer | 总页数 |
page_no | Integer | 开始页 |
page_size | Integer | 条数 |
total_count | Integer | 总条数 |
items 对象:
参数 | 类型 | 描述 |
---|---|---|
task_name | String | 任务名称 |
task_source | Integer | 任务来源(1.营销群发) |
taskid | String | 任务ID |
timezone | String | 时区 |
task_start_time | String | 任务开始时间 |
task_end_time | String | 任务结束时间 |
send_time_type | Integer | 发送类型(1.立即发送 2定时发送) |
estimate_send_num | Long | 预计发送数 |
send_success_num | Long | 发送成功数 |
send_error_num | Long | 发送失败数 |
already_send_num | Long | 已送达数 |
already_read_num | Long | 已阅读数 |
reply_data_num | Long | 已回复数 |
请求示例:
curl https://sg.sobot.com/chat-set/api/messenger/query_task_list
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"page_no": 1,
"page_size": 15,
"task_start_time": 1714295033250,
"task_end_time": 1714295033250,
"sender": "123456",
"task_name": "测试",
"message_topic_or_tag":"测试主题",
"message_type":1
}'
2
3
4
5
6
7
8
9
10
11
12
13
14
返回示例:
{
"items": [
{
"task_name": "123",
"estimate_send_num": 3,
"task_source": 1,
"timezone": "GMT+08:00",
"reply_data_num": 0,
"task_start_time": "2024-07-18 20:02:58",
"send_error_num": 2,
"task_end_time": "2024-07-18 20:03:10",
"send_success_num": 1,
"already_send_num": 1,
"send_time_type": 1,
"taskid": "91f9dba1879c4a5ebc778c03665a7a47",
"already_read_num": 0
},
{
"task_name": "excel88_copy热二次 ",
"estimate_send_num": 1,
"task_source": 1,
"timezone": "GMT+08:00",
"reply_data_num": 0,
"task_start_time": "2024-07-18 19:54:03",
"send_error_num": 11,
"task_end_time": "2024-07-18 19:54:10",
"send_success_num": 0,
"already_send_num": 0,
"send_time_type": 1,
"taskid": "5004117ee78c4328b6d5f29faaa17413",
"already_read_num": 0
}
],
"page_count": 12,
"page_no": 1,
"page_size": 2,
"ret_code": "000000",
"ret_msg": "操作成功",
"total_count": 24
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 查询发送记录
接口说明:查询发送记录数据
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-set/api/messenger/send_record_list
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
send_start_time | Long | 否 | 发送开始时间(形如:1714295033250)[默认查询最近一个月] |
send_end_time | Long | 否 | 发送结束时间(形如:1714295033250)[默认查询最近一个月] |
messageid | String | 否 | 消息id |
message_status | String | 否 | 消息状态(见:message_status参数) |
taskid | String | 否 | 任务id |
task_name | String | 否 | 任务名称 |
send_agentid | String | 否 | 发送人 |
sender | String | 否 | sender(公共主页) |
recipient | String | 否 | 接收人 |
message_topic_or_tag | String | 否 | 订阅主题/消息标签 (消息标签编码参数见:message_tag类型) |
page_no | Integer | 否 | 开始页 (默认1) |
page_size | Integer | 否 | 查询条数(默认15,最大100) |
返回参数:
参数 | 类型 | 描述 |
---|---|---|
ret_code | String | 返回编码 |
ret_msg | String | 返回信息 |
items | List | 返回对象 |
page_count | Integer | 总页数 |
page_no | Integer | 开始页 |
page_size | Integer | 条数 |
total_count | Integer | 总条数 |
items 对象:
参数 | 类型 | 描述 |
---|---|---|
task_name | String | 任务名称 |
error_code | String | 错误日志(详情见:error_code错误码 ) |
timezone | String | 时区 |
messageid | String | 消息ID |
taskid | String | 任务ID |
recipient_id | String | 接收人ID |
send_agentid | String | 发送人 |
send_time | Long | 发送时间 |
sender | String | sender(公共主页) |
status_update_time | Long | 状态更新时间 |
message_topic_or_tag | String | 订阅主题/消息标签 |
请求示例:
curl https://sg.sobot.com/chat-set/api/messenger/send_record_list
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"items": [
{
"task_name": "测试一下_copy_copy",
"send_time": 1717051932316,
"message_topic_or_tag": "订阅主题你好了吗",
"sender": "110661988252225",
"timezone": "GMT+08:00",
"messageid": "m_5ya2l01zq7cWZowdCAJ87-bKbz_gk7K-4b2fv6QOA4iY4_a_R44RmPh8Nz4I_oFnwls4matTIkLcD8DUFJLS9g",
"error_code": "000000",
"send_agentid": "3bdc079ab21d4db1847e36ae752e1048",
"taskid": "17fe5afc271d48769f2e4bb24cf6a4f4",
"recipient_id": "7608034689289950",
"status_update_time": 1717051932316
},
{
"task_name": "测试一下_copy_copy",
"send_time": 1717051930714,
"message_topic_or_tag": "订阅主题你好了吗",
"sender": "110661988252225",
"timezone": "GMT+08:00",
"error_code": "1893015",
"send_agentid": "3bdc079ab21d4db1847e36ae752e1048",
"taskid": "17fe5afc271d48769f2e4bb24cf6a4f4",
"recipient_id": "7336944743071365",
"status_update_time": 1717051930714
}
],
"page_count": 1,
"page_no": 1,
"page_size": 100,
"ret_code": "000000",
"ret_msg": "操作成功",
"total_count": 2
}'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
返回示例:
{
"items": [
{
"task_name": "嗯文件啊啊啊",
"send_time": 1715839580345,
"message_topic_or_tag": "ACCOUNT_UPDATE",
"sender": "111756121635281",
"timezone": "GMT+08:00",
"messageid": "m_uR4fzPWk4y22dnJy95ts0FG1RsvrHC5RZ_wqwyIGTcMIwEx-Smscjvw5V3CqquPDLFgXk87RBNXsVEioobBf_g",
"error_code": "000000",
"send_agentid": "8532a283d2df41cc9a212bace7bf1d0b",
"taskid": "0fd27d6f98524995bfa03a5487a23ba7",
"recipient_id": "5194793377264405",
"status_update_time": 1716187640915
}
],
"page_count": 1,
"page_no": 1,
"page_size": 15,
"ret_code": "000000",
"ret_msg": "操作成功",
"total_count": 1
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 错误编码
# ● 操作成功
错误编码 | 错误说明 |
---|---|
000000 | 操作成功(除此编码以外的编码为错误编码) |
# ● 系统异常
错误编码 | 错误说明 |
---|---|
900001 | token 为空 |
900002 | token 已失效,请重新获取 |
999999 | 系统未知异常 |
# ● 业务异常
错误编码 | 错误说明 |
---|---|
210001 | Facebook主页ID不能为空 |
210002 | Facebook主页ID不存在或者输入错误 |
210003 | 订阅主题不能为空 |
210004 | 订阅主题长度不能超过65个字符 |
210005 | 订阅主题描述不能为空 |
210006 | 订阅主题描述不能超过65个字符 |
210007 | 按钮类型不能为空 |
210008 | 当前主页下订阅主题已存在 |
210009 | 用户Facebook ID不能为空 |
210010 | 系统上不存在该主页的订阅主题 |
210011 | 修改订阅主题不支持修改主页ID和订阅主题 |
210012 | 图片比例不能为空 |
210013 | 传入的configID不正确或已删除 |
# ● message_tag类型
编码 | 含义说明 |
---|---|
CONFIRMED_EVENT_UPDATE | 活动更新提醒 |
POST_PURCHASE_UPDATE | 商品购买更新提醒 |
ACCOUNT_UPDATE | 账号更新提醒 |
# ● message_status
参数 | 描述 |
---|---|
0 | 已发送 |
1 | 已送达 |
2 | 已阅读 |
9 | 发送失败 |
# ● error_code
参数 | 描述 |
---|---|
1 | 出现未知错误。 |
1357046 | 收到无效的 JSON 回复。 |
2 | 发生意外的错误。请稍后重试您的请求。 |
2018344 | 服务暂时不可用 |
4 | 速率限制错误:已达到应用程序请求限制。 |
2018354 | 营销消息 – 给定通知的 2 个通知之间必须有最小延迟 |
2018352 | 用户执行过多操作 |
10 | 没有与即时游戏相关的页面的权限。 |
1404170 | 应用程序没有执行此操作的权限 |
1893015 | 该用户当前已停止发送该主题的通知消息 |
2018336 | 用户线程影响 |
2534022 | 此消息在允许的窗口之外发送。 |
2534077 | 无法验证 IG 帐户、登录用户和页面之间的连接。请尝试重新连接或验证用户是否需要双因素身份验证。 |
2018278 | 此消息在允许的窗口之外发送。在此了解有关新政策的更多信息 |
2018065 | 此消息在允许的窗口之外发送。您需要新闻消息权限才能执行此操作。 |
2018108 | 此人无法接收消息:此人现在没有接收来自您的消息。 |
100 | 检查以确保您使用的 ID 或令牌有效。 |
33 | 确保请求中的 ID 存在,并且您的应用具有访问它的适当权限。 |
2018001 | 找不到匹配的用户 |
2018008 | 无法从 url 获取文件。检查 URL 是否有效、SSL 证书是否有效、文件大小是否有效,以及服务器的响应速度是否足够快以避免超时。 |
2018014 | 无法同时发送消息和状态。 |
2018047 | 上传附件失败。触发此错误的常见方法是提供的媒体类型与 URL 中提供的文件类型不匹配。 |
2018074 | ID 可能无效或者您不拥有该附件。 |
2018109 | 附件大小超出允许限制 |
2018164 | 应用程序 ID 不正确。 |
2018294 | 视频上传超时或视频已损坏。请注意,如果无法在 75 秒内获取视频,则会超时。 |
2018320 | 产品 ID 无效 |
2018328 | 版本 8 以下不支持产品模板。请使用 API 版本 8 或更高版本来使用产品模板。 |
2534013 | 该页面未链接到 Instagram 帐户 |
2534014 | 没有匹配的 Instagram 用户 |
2534015 | 消息数据无效 |
2534025 | 该评论对于私人回复无效 |
2534029 | 该企业已被禁止通过 IG Messaging API 发送消息 |
2534037 | 该操作无效,因为它不是线程所有者。 |
190 | 访问令牌错误:OAuth 访问令牌无效。 |
200 | 权限错误:在审核pages_messaging权限并且应用程序上线之前,无法向非应用程序管理员、开发人员或测试人员的用户发送消息。 |
1545041 | 消息未发送:此人现在没空。 |
2018021 | 除非接收用户是应用程序的管理员、开发人员或测试人员,否则需要通过此页面支付电话匹配访问费。 |
2018027 | 在审核pages_messaging_phone_number 权限并且应用程序上线之前,无法向非应用程序管理员、开发人员或测试人员的用户发送消息。 |
2018028 | 在审核 page_messaging 权限并且应用程序上线之前,无法向非应用程序管理员、开发人员或测试人员的用户发送消息。 |
2534041 | 帐户所有者已禁止访问Instagram 私信。 |
551 | 用户阻止错误:此人现在没有收到您的消息。 |
1545041 | 此人现在没空。此人现在没空。 |
1893016 | 超出服务范围:您不得向用户发送多个具有同一主题的选择加入请求。 |
2018338 | 警告!您的行为可能被用户认为是令人烦恼或辱骂的。您必须显着降低使用消息标签向此人发送消息的速率。进一步滥用 API 功能可能会导致您的主页受到消息传递限制 |
2534040 | 对该 api 的调用已超出速率限制。 |
2022 | 发送商业消息的功能已被暂时禁用。这是在违反策略后设置功能限制的结果。 |
10303 | 帐户链接错误:account_linking_token 无效。 |
24001 | 用户取消支付流程 |
24002 | 由于缺少隐私 URL,无法处理付款请求 |
24005 | 获取用户ID失败 |
36103 | 在 Instagram 分阶段推出期间加入创作者帐户 |
2018144 | 目前无法向用户发送即时游戏消息,自上次玩游戏以来的 10 天内只能向用户发送 5 条通知。 |
2018154 | Messenger 扩展意外错误 |
2018163 | 开始共享参数验证错误 |
2018166 | 调用SDK API权限无效 |
2018171 | 仅适用于主要和次要接收者。 |
2018218 | 该用户没有可用的个人资料。 |
2018234 | 拒绝任何辅助接收器对除自身之外的另一个辅助接收器的可见性。 |
2018247 | 没有足够的权限访问用户配置文件。 |
2018300 | 消息发送失败,因为另一个应用程序现在正在控制该线程。 |
2018321 | 当前,当用户处于自动问答流程时,聊天由 Messenger 控制。请等待流程完成,然后再重试。 |
2071010 | 此 Messenger 客户端不支持此 SDK 方法。请升级 |
2071011 | Messenger 扩展未启用 - 可能是 URL 上未设置“messenger_extensions”、域未添加到允许列表中或者这是 Messenger 客户端的过时版本 |
2071014 | 提供给 SDK API 调用的 MessageContent 无效 |
2071015 | 消息内容中提供的标题字符串无效 |
2071016 | 消息内容中提供的字幕字符串无效 |
2071017 | 消息内容中提供的图像 URL 无效 |
2071018 | 消息内容中提供的项目 URL 无效 |
2071019 | 消息内容中提供的按钮数据无效 |
2071020 | 消息内容中缺少 URL 数据。请提供 item_url、button_url 或两者 |
2071021 | beginShareFlow 调用中提供的共享类型无效 |
2071022 | 开始共享流消息内容中的附件无效 |
2071023 | 消息内容中的附件类型必须设置为模板 |
2071024 | 消息内容附件中的负载无效 |
2071025 | 消息内容中提供的打开图 URL 无效 |
9000001 | 该消息已被用户或企业删除。 |
1893022 | 消息涉及实验。 |
000000 | -- |
999997 | 返回数据解析异常 |
999998 | Facebook Id 不存在 |
999999 | 用户未订阅 |