WhatsApp API(新版)
# WhatsApp 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
# ● 获取 WhatsApp phone number id
登录智齿客服系统后台,打开【在线客服->对接渠道设置->WhatsApp】,获取 WhatsApp 号码对应 phone number id
# 发送消息
# ● 发送模板消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | template (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
template | Object | 是 | 模板内容 |
template参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
name | String | 是 | 模板名称 |
language | Object | 是 | 模板语言 |
components | List | 是 | 模板创建变量 |
language参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
code | String | 是 | 模板语言编码 |
components参数:
注:
如果在whatsApp后台没有创建变量, 则components为空数组
如果存在变量,变量内容不能为空内容或者空字符串
# 1. Header示例
1.1 Header变量为文本
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "header",
"parameters": [{
"text": "CONTENT",
"type": "text"
}]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE_NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1.2 Header变量为媒体
image = 图片 | video = 视频 | document = 文档 (可传filename参数,与link同级)
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "header",
"parameters": [{
"image": {
"link": "https://img.sobot.com/console/common/face/robot.png"
},
"type": "image"
}]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE_NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
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
1.3 Header变量为位置
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "header",
"parameters": [{
"location": {
"address": "your address",
"latitude": "-12.283171",
"name": "your location name",
"longitude": "130.501951"
},
"type": "LOCATION"
}]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
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
# 2. Body变量示例
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "body",
"parameters": [
{
"text": "CONTENT1",
"type": "text"
},
{
"text": "CONTENT2",
"type": "text"
}
]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE NAME"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}
}'
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
# 3. Button变量示例
如果当前按钮变量在模板中第一个,index=0,第二个,index=1
如果当前按钮变量有中文,需要将中文进行encode转换
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"sub_type": "URL",
"index": 0,
"type": "button",
"parameters": [
{
"payload": "BUTTON CONTENT",
"type": "payload"
}
]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE_NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
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
# 4. 完整的请求示例(非OTP)
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "header",
"parameters": [
{
"document": {
"filename": "xxx.txt",
"link": "https://example/xxx.txt"
},
"type": "document"
}
]
},
{
"type": "body",
"parameters": [
{
"text": "CONTENT",
"type": "text"
}
]
},
{
"sub_type": "URL",
"index": 0,
"type": "button",
"parameters": [
{
"payload": "BUTTON CONTENT",
"type": "payload"
}
]
}],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE_NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
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
41
42
43
44
45
46
47
48
49
# 5. OTP模板消息
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"template": {
"components": [{
"type": "body",
"parameters": [{
"type": "text",
"text": "<ONE-TIME PASSWORD>"
}]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [{
"type": "text",
"text": "<ONE-TIME PASSWORD>"
}]
}
],
"language": {
"code": "TEMPLATE_LANGUAGE_CODE"
},
"name": "TEMPLATE NAME"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}'
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
# 6. 带Flow的模板消息
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '
{
"content": {
"messaging_product": "whatsapp",
"recipient_type": "individual",
"template": {
"language": {
"code": "LANGUAGE_AND_LOCALE_CODE"
},
"name": "TEMPLATE_NAME",
"components": [
{
"type": "button",
"sub_type": "flow",
"index": "0",
"parameters": [
{
"type": "action",
"action": {
"flow_token": "FLOW_TOKEN", //optional, default is "unused"
"flow_action_data": {
...
} // optional, json object with the data payload for the first screen
}
}
]
}
]
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "template"
}
'
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
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# ● 群发模板消息
接口说明:批量发送模板消息API,消息状态会通过后台配置的推送地址推送到客户服务器(依次点击 WhatsApp 菜单 -号码管理-消息接收设置,开启【使用企业服务器接收】和【企业消息状态按钮】,并配置了服务器推送地址)
请求方式:
post
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/batchSendTmpMsg
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
name | String | 是 | 模板名称 |
language | String | 是 | 模板语言 |
from | String | 是 | WhatsApp phone number id |
sender_list | Array | 是 | 消息内容集合 |
sender_list对象:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
to | String | 是 | 消息接收方 |
header_url | String | 否 | 页眉参数url (图片,视频,文件) |
header_variable | Array | 否 | 页眉变量集合(如果是位置模板,参数依次放进这个集合中) |
body_variable | Array | 否 | 正文变量集合 |
button_variable | Array | 否 | 按钮变量集合 |
businessId | String | 否 | 业务id,消息回传会带有此参数 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/batchSendTmpMsg
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
2
# 1. Header示例
1.1 Header变量为文本
{
"name":"test",
"language": "en_US",
"from": "11111111",
"sender_list":[
{
"to": "8612345678900",
"header_variable":["北京"]
},{
"to": "8612345678901",
"header_variable":["上海"]
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
1.2 Header变量为媒体
{
"name": "template_test",
"language": "en_US",
"from": "11111111",
"sender_list": [
{
"to": "8612345678900",
"header_url": "link1"
},
{
"to": "8612345678901",
"header_url": "link2"
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.3 Header变量为位置(header_variable 依次添加,经度,纬度,地点,位置)
{
"name":"test",
"language": "en_US",
"from": "11111111",
"sender_list":[
{
"to": "8612345678900",
"header_variable":["116.397128","116.397128","北京","智齿科技"]
},{
"to": "8612345678901",
"header_variable":["116.397128","116.397128","北京","智齿科技"]
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2. Body变量示例
{
"name":"test",
"language": "en_US",
"from": "11111111",
"sender_list":[
{
"to": "8612345678900",
"body_variable":["变量1","变量2"]
},
{
"to": "8612345678901",
"body_variable":["变量1","变量2"]
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 3. Button变量示例
{
"name":"test",
"language": "en_US",
"from": "11111111",
"sender_list":[
{
"to": "8612345678900",
"button_variable":["变量1","变量2"]
},
{
"to": "8612345678901",
"button_variable":["变量1","变量2"]
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 4. OTP模板消息
{
"name":"test",
"language": "en_US",
"from": "11111111",
"sender_list": [
{
"to": "8612345678901",
"body_variable": ["参数1"],
"button_variable":["变量1"]
},{
"to": "8612345678902",
"body_variable": ["参数2"],
"button_variable":["变量1"]
}]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
API返回示例:
{
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
推送消息示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"businessId":"11111111",
"templateId":"11111111",
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
item | Array | 否 | 返回对象 |
item 对象:
参数 | 类型 | 描述 |
---|---|---|
obj | Object | whatsApp 返回参数 |
# ● 发送自由格式消息
# 1. 发送文本类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | text (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
text | String | 是 | 内容 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"text": "this is text"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "text"
} '
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2. 发送图片类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | image (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_url | String | 是 | 资源链接 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"media_url": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "image"
} '
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 3. 发送文件类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | document (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_url | String | 是 | 资源链接 |
file_name | String | 否 | 文件名称 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"media_url": "https://img.sobot.com/console/common/face/robot.png",
"file_name": "example.txt"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "document"
} '
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 4. 发送视频类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | video (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_url | String | 是 | 资源链接 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"media_url": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "video"
} '
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 5. 发送音频类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | audio(固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_url | String | 是 | 资源链接 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"media_url": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "audio"
} '
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 6. 发送贴图类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | sticker (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
media_url | String | 是 | 资源链接 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"media_url": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "sticker"
} '
2
3
4
5
6
7
8
9
10
11
12
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 7. 发送位置类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | location (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
latitude | String | 是 | 纬度 |
longitude | String | 是 | 经度 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"latitude": "LAT_NUMBER",
"longitude": "LONG_NUMBER"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "location"
} '
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 8. 发送联系人类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | contacts (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
contacts | List | 是 | 联系人 |
contacts参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
name | Object | 是 | 联系人姓名 |
phones | List | 否 | 联系电话号码 |
name参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
formatted_name | String | 是 | 显示的全名 |
first_name | String | 否 | 姓名 |
phones参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
phone | String | 否 | 电话号码 |
type | String | 否 | 可选CELL、MAIN、IPHONE、HOME和WORK |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d ' {
"content": {
"contacts": [{
"name": {
"formatted_name": "NAME",
"first_name": "NAME"
},
"phones": [{
"phone": "PHONE_NUMBER",
"type": "CELL"
}]
}]
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "contacts"
}'
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 9. 发送按钮类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | interactive (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
interactive | Object | 是 | 按钮内容 |
interactive参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
type | String | 是 | (button)类型 |
body | Object | 是 | 按钮内容 |
action | Object | 是 | 回复按钮 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"interactive": {
"type": "button",
"body": {
"text": "BUTTON_TEXT"
},
"action": {
"buttons": [{
"type": "reply",
"reply": {
"id": "UNIQUE_BUTTON_ID_1",
"title": "BUTTON_TITLE_1"
}
},
{
"type": "reply",
"reply": {
"id": "UNIQUE_BUTTON_ID_2",
"title": "BUTTON_TITLE_2"
}
}
]
}
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "interactive"
}'
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
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 10. 发送列表类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | interactive (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
interactive | Object | 是 | 列表内容 |
interactive参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
type | String | 是 | 类型(list) |
header | Object | 否 | 页眉内容 |
body | Object | 是 | 正文内容 |
footer | Object | 否 | 页脚内容 |
action | Object | 是 | 列表内容 |
action参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
button | String | 是 | 按钮内容 |
sections | Array | 是 | 价格 |
sections参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
title | String | 是 | 标题 |
rows | Array | 是 | 选择内容 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"interactive": {
"type": "list",
"header": {
"type": "text",
"text": "HEADER_TEXT"
},
"body": {
"text": "BODY_TEXT"
},
"footer": {
"text": "FOOTER_TEXT"
},
"action": {
"button": "BUTTON_TEXT",
"sections": [{
"title": "SECTION_1_TITLE",
"rows": [{
"id": "SECTION_1_ROW_1_ID",
"title": "SECTION_1_ROW_1_TITLE",
"description": "SECTION_1_ROW_1_DESCRIPTION"
},
{
"id": "SECTION_1_ROW_2_ID",
"title": "SECTION_1_ROW_2_TITLE",
"description": "SECTION_1_ROW_2_DESCRIPTION"
}
]
},
{
"title": "SECTION_2_TITLE",
"rows": [{
"id": "SECTION_2_ROW_1_ID",
"title": "SECTION_2_ROW_1_TITLE",
"description": "SECTION_2_ROW_1_DESCRIPTION"
},
{
"id": "SECTION_2_ROW_2_ID",
"title": "SECTION_2_ROW_2_TITLE",
"description": "SECTION_2_ROW_2_DESCRIPTION"
}
]
}
]
}
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "interactive"
}'
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 11. 发送FLOW类型消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | interactive (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
interactive | Object | 是 | 列表内容 |
interactive参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
type | String | 是 | flow |
header | Object | 否 | 页眉内容 |
body | Object | 是 | 正文内容 |
footer | Object | 否 | 页脚内容 |
action | Object | 是 | 列表内容 |
header参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
type | String | 是 | text |
text | String | 是 | 文本内容 |
body参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
text | String | 是 | 文本内容 |
footer参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
text | String | 是 | 文本内容 |
action参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
name | String | 是 | flow |
parameters | Object | 是 | 参数 |
parameters参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
flow_message_version | String | 是 | 固定是3 |
flow_token | String | 是 | 选择内容 |
flow_id | String | 是 | WhatsApp 提供的流程的唯一 ID |
flow_cta | String | 是 | CTA 按钮上的文本。例如:“注册” |
flow_action | String | 是 | navigate或者data_exchange。(默认值:navigate) |
flow_action_payload | Object | 否 | 仅当 flow_action 为 navigate 时,此对象为必要项 |
flow_action_payload参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
screen | String | 是 | 流程的第一个画面的 id |
data | String | 否 | 流程第一个画面的输入数据。必须为非空白对象 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"interactive": {
"type": "flow",
"header": {
"type": "text",
"text": "HEADER_TEXT"
},
"body": {
"text": "BODY_TEXT"
},
"footer": {
"text": "FOOTER_TEXT"
},
"action": {
"name": "flow",
"parameters": {
"flow_message_version": "3",
"flow_token": "AQAAAAACS5FpgQ_cAAAAAD0QI3s.",
"flow_id": "1",
"flow_cta": "Book!",
"flow_action": "navigate",
"flow_action_payload": {
"screen": "<SCREEN_NAME>",
"data": {
"product_name": "name",
"product_description": "description",
"product_price": 100
}
}
}
}
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "interactive"
}'
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
41
42
返回示例:
{
"item": {
"contacts": [{
"Input": "+447385911146",
"wa_id": "447385911146"
}],
"messages": [{
"id": "gHTRETHRTHTRTH-av4Y"
}],
"meta": {
"api_status": "stable",
"version": "2.44.0.27"
}
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 12. 发送回复消息
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
from | String | 是 | 发送方 |
to | String | 是 | 接收方 |
type | String | 是 | replyText (固定值) |
content | Object | 是 | 消息内容 |
content参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
text | String | 是 | 回复内容 |
replyText | String | 是 | 需要回复的消息Id |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/forword
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"content": {
"text": "this is replyText",
"replyText": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "replyText"
}'
2
3
4
5
6
7
8
9
10
11
12
13
返回示例:
{
"item": {
"messaging_product": "whatsapp",
"messages": [{
"id": "wamid.HBgNODYxODIxMDMzNTIzNBUCABEYEkQ4RTJGRUI0QTA3MDFEMDY4RAA="
}],
"contacts": [{
"input": "11111111",
"wa_id": "11111111"
}]
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 接收用户消息
请求地址:
webhook通知消息返回示例, 在智齿管理中心后台配置
# ● 文本类型消息
返回示例:
{
"content": {
"text": "this is text"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "text",
"name": "NAME"
}
2
3
4
5
6
7
8
9
# ● 图片类型消息
返回示例:
{
"content": {
"mediaUrl": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "image",
"name": "NAME"
}
2
3
4
5
6
7
8
9
# ● 文件类型消息
返回示例:
{
"content": {
"mediaUrl": "https://img.sobot.com/console/common/face/robot.png",
"filename": "example.txt"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "document",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
# ● 视频类型消息
返回示例:
{
"content": {
"mediaUrl": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "video",
"name": "NAME"
}
2
3
4
5
6
7
8
9
# ● 音频类型消息
返回示例:
{
"content": {
"mediaUrl": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "audio",
"name": "NAME"
}
2
3
4
5
6
7
8
9
# ● 贴图类型消息
返回示例:
{
"content": {
"mediaUrl": "https://img.sobot.com/console/common/face/robot.png"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "sticker",
"name": "NAME"
}
2
3
4
5
6
7
8
9
# ● 位置类型消息
返回示例:
{
"content": {
"latitude": "LAT_NUMBER",
"longitude": "LONG_NUMBER"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "location",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
# ● 联系人类型消息
返回示例:
{
"content": {
"contacts": [
{
"name": {
"formatted_name": "NAME",
"first_name": "NAME"
},
"phones": [
{
"phone": "PHONE_NUMBER",
"wa_id": "8617343038250",
"type": "CELL"
}
]
}
]
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "contacts",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ● 按钮类型消息
返回示例:
{
"content": {
"button": {
"payload": "No-Button-Payload",
"text": "No"
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "button",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
11
12
# ● 订单类型消息
返回示例:
{
"content": {
"order": {
"catalog_id": "the-catalog_id",
"text": "text-message-sent-along-with-the-order",
"product_items": [
{
"quantity": "number-of-item",
"product_retailer_id": "the-product-SKU-identifier",
"item_price": "unitary-price-of-item",
"currency": "price-currency"
}
]
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "order",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ● 互动类型消息
返回示例:
{
"content": {
"interactive": {
"type": "button_reply",
"button_reply": {
"id": "unique-button-identifier-here",
"title": "button-text"
}
}
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "interactive",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# ● 包含广告的消息
返回示例:
{
"content": {
"referral": {
"media_type": "image or video",
"video_url": "RAW_VIDEO_URL",
"image_url": "https://img.sobot.com/console/common/face/robot.png",
"source_type": "ad or post",
"source_id": "ADID",
"body": "AD_DESCRIPTION",
"headline": "AD_TITLE",
"source_url": "AD_OR POST_FB URL",
"thumbnail url": "RAW_THUMBNAIL URL"
},
"text": "body"
},
"from": "FROM_PHONE_NUMBER_ID",
"to": "PHONE_NUMBER",
"type": "text",
"name": "NAME"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 消息模板管理
# ● 获取消息模板
接口说明:检索当前wabaId下所有的模板
请求方式:
GET
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/templateList
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
wabaid | String | 是 | WhatsApp商业账户唯一标识 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/templateList?wabaid=12345
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
2
返回示例:
{
"item": {
"data": [
{
"components": [
{
"format": "DOCUMENT",
"type": "HEADER",
"example": {
"header_handle": [
"https://scontent.whatsapp.net/v/t61.29466-34/224083690_601486205046207_3953929358019518287_n.pdf?ccb=1-7&_nc_sid=57045b&_nc_ohc=ANcodTypUrsAX_c3ME8&_nc_ht=scontent.whatsapp.net&edm=AH51TzQEAAAA&oh=01_AdRen_9v352EcZ7FFjoA6bVf0fUODwqoIfRjDa1PE0Uicw&oe=63931F4C"
]
}
},
{
"text": "This is {{1}} content, and also have {{2}} params.",
"type": "BODY",
"example": {
"body_text": [
[
"rick",
"2"
]
]
}
},
{
"text": "这里是页脚",
"type": "FOOTER"
},
{
"buttons": [
{
"phone_number": "+86184xxxx7413",
"text": "call me",
"type": "PHONE_NUMBER"
},
{
"text": "访问聊天页面",
"type": "URL",
"url": "https//xxx.html?name=text&partnerid={{1}}",
"example": [
"https//xxx.html?name=text&partnerid=1234"
]
}
],
"type": "BUTTONS"
}
],
"name": "templates_test",
"language": "zh_CN",
"id": "601486201712874",
"category": "TRANSACTIONAL",
"status": "APPROVED"
}
],
"namespace": "9eb0ceda_9fc9_42ad_ad5a_5dd9d905a15a"
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
item | Object | 否 | 返回对象 |
item 对象:
参数 | 类型 | 描述 |
---|---|---|
namespace | String | 模板命名空间 |
id | String | 模板编码 |
name | String | 模板名称 |
language | String | 模板语言 |
status | String | 模板状态 |
category | String | 模板类别 |
components | List | 模板内容 |
# ● 创建消息模板
接口说明:创建消息模板
请求方式:
POST
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/createTemplateInfo
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
wabaid | String | 是 | WhatsApp商业账户唯一标识 |
name | String | 是 | 模板名称 |
category | String | 是 | 模板类别(选项:UTILITY, MARKETING, AUTHENTICATION) |
language | String | 是 | 模板语言编码 |
components | List | 是 | 模板内容 |
更多模板参数信息,您可以在这里查看 WhatsApp Business API (opens new window)
模板支持的语言,您可以在这里查询 支持的语言-WhatsApp Business API (opens new window)
1.请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/createTemplateInfo
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '{
"wabaid": "123456789",
"name": "template_name",
"category": "OTP",
"language": "en_US",
"components": [
{
"type": "BODY",
"text": "hello word"
},
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": [
"https://example.media.file"
]
}
},
{
"type": "FOOTER",
"text": "your-footer-text"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "PHONE_NUMBER",
"text": "your-phone-button-text",
"phone_number": "+1(650) 555-1111"
},
{
"type": "URL",
"text": "your-url-button-text",
"url": "https://www.xxx.com/{{1}}",
"example": [
"https://www.xxx.com/example"
]
}
]
}
]
}'
}
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
41
42
43
44
45
46
47
2.创建带Flow的消息模板请求示例
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/createTemplateInfo
-X POST
-H 'content-type:application/json'
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
-d '
{
"wabaid": "123456789",
"name": "template_name",
"language": "LANGUAGE_AND_LOCALE_CODE",
"category": "MARKETING",
"components": [
{
"type": "body",
"text": "This is a flows as template demo"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "FLOW",
"text": "Open flow!",
"flow_id": "<flow-id>",
"navigate_screen": "Flows Json screen name",
"flow_action": "navigate"
}
]
}
]
}'
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
返回示例:
{
"item": {
"id": "431829025804988"
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
# ● 删除消息模板
接口说明:如果此名称的消息模板有多种语言版本,则所有语言的版本均会被删除。
请求方式:
GET
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/deleteTemplate
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
wabaid | String | 是 | WhatsApp商业账户唯一标识 |
template_name | String | 是 | 模板名称 |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/deleteTemplate?wabaid=12345&template_name=test
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
2
返回示例:
{
"item": {
"success": true
},
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
item | Object | 否 | 返回对象 |
item 对象:
参数 | 类型 | 描述 |
---|---|---|
success | boolean | true 代表删除成功 |
# Webhook状态通知
请求地址:
webhook通知消息返回示例, 在智齿管理中心后台配置
# ● 消息发送状态通知
状态属性 | 状态含义 |
---|---|
sent | 已发送 |
delivered | 已送达 |
read | 已阅读 |
failed | 发送失败 |
返回示例:
{
"errorCode": "",
"errorTitle": "",
"from": "FROM_PHONE_NUMBER_ID",
"messageId": "wamid.HBgNNTIxNjE0MjEwNjE1MhUCABEYEjhDQzc2RjNENjIwMjVGODA3RQA=",
"status": "sent",
"timestamp": "1667453467",
"to": "PHONE_NUMBER",
"type": "status"
}
2
3
4
5
6
7
8
9
10
# ● 模板消息状态通知
# 1. 审核状态变更
返回示例:
{
"entry": [{
"id": "100564172792081",
"time": 1689846344,
"changes": [{
"field": "message_template_status_update",
"value": {
"event": "APPROVED",
"message_template_id": 12345678,
"message_template_name": "my_message_template",
"message_template_language": "pt-BR",
"reason": "NONE"
}
}]
}],
"object": "whatsapp_business_account"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2. 质量变更
返回示例:
{
"entry": [{
"id": "100564172792081",
"time": 1689847615,
"changes": [{
"field": "message_template_quality_update",
"value": {
"previous_quality_score": "GREEN",
"new_quality_score": "YELLOW",
"message_template_id": 12345678,
"message_template_name": "my_message_template",
"message_template_language": "pt-BR"
}
}]
}],
"object": "whatsapp_business_account"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# ● 帐号状态
# 1. 帐号质量更新
返回示例:
{
"entry": [{
"id": "1111111111111",
"time": 1689927355,
"changes": [{
"field": "phone_number_quality_update",
"value": {
"display_phone_number": "1234567890",
"event": "FLAGGED",
"current_limit": "TIER_10K"
}
}]
}],
"object": "whatsapp_business_account"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 2. 帐号状态更新
返回示例:
{
"entry": [{
"id": "1111111111",
"time": 1690179982,
"changes": [{
"field": "account_update",
"value": {
"phone_number": "111111111",
"event": "VERIFIED_ACCOUNT"
}
}]
}],
"object": "whatsapp_business_account"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 3. Flow 回调消息
返回示例:
{
"content": {
"interactive": {
"nfm_reply": {
"name": "flow",
"response_json": "{\"flow_token\":\"unused\",\"screen_0_firstName_0\":\"王\",\"screen_1_TextInput_1\":\"123\",\"screen_1_TextInput_0\":\"11\",\"screen_0_lastName_1\":\"TESTNAME\"}",
"body": "Sent"
},
"type": "nfm_reply"
}
},
"from": "8618210323232",
"name": "TESTNAME",
"to": "110243462020762",
"type": "interactive"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 4. Welcome Message 回调消息
返回示例:
{
"content": {
"contacts": [{
"profile": {
"name": "666"
},
"wa_id": "8618518444333"
}]
},
"from": "8618210323232",
"name": "TESTNAME",
"to": "110243462020762",
"type": "request_welcome"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 账单费用
# ● 获取账单费用详情
请求方式:
GET
请求地址:
https://sg.sobot.com/chat-whatsapp/api/whatsapp/billDetailList
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
month | String | 是 | 查询月份 (yyyy-MM) |
query_type | String | 是 | 查询对话类型 (user:代表用户,business:代表企业) |
sender | String | 否 | sender号码 |
language | String | 否 | 语言类型(zh:中文,en:英文) |
请求示例:
curl https://sg.sobot.com/chat-whatsapp/api/whatsapp/billDetailList?month=2022-10&query_type=user
-H 'token: 4ac37cb2e9c740dba4b75a34d5358802'
2
返回示例:
{
"items": [
{
"area_code": "971",
"total_price": 0.1440,
"country_code": "AE",
"country_name": "United Arab Emirates",
"conversation": 6
},
{
"area_code": "880",
"total_price": 0.0274,
"country_code": "BD",
"country_name": "Bangladesh",
"conversation": 1
}
],
"ret_code": "000000",
"ret_msg": "操作成功"
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
返回参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
ret_code | String | 是 | 返回编码 |
ret_msg | String | 是 | 返回信息 |
items | Object | 否 | 返回对象 |
items 对象:
参数 | 类型 | 描述 |
---|---|---|
area_code | String | 地区代码 |
total_price | double | 计费金额(美元) |
country_code | String | 地区编码 |
country_name | String | 地区名称 |
conversation | int | 对话数量 |