发送消息
通过业务电话发送消息。
请求参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
Action | string | 动作名称 | 是 |
AccountId | int | 账户 ID | 是 |
To | string | 目标电话号码 | 是 |
Type | string | 消息类型 | 是 |
Content | string | 消息内容,根据类型不同而变化(以文本中的 JSON 形式) | 是 |
BusinessPhone | string | 业务电话号码 | 是 |
请求示例
{
"Action": "SendMessage",
"accountId": 8899,
"companyId": 8899,
"BusinessPhone": "8615000579987",
"To": "447731688264",
"Type": "text",
"Purpose": 1,
"Content": "{\"body\":\"text-message-content\",\"preview_url\":false}"
}
文本消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
body | string | 文本消息的正文内容,可以包含 URL 或格式化元素。格式化元素描述如下:粗体:粗体文本,例如,您的总额为 $10.50。斜体:需要斜体的文本,例如,您的总额是 $10.50。下划线:需要下划线的文本,例如,您的总额是 | 是 |
preview_url | Boolean | 是否启用 URL 预览。如果设置为 true,则启用 URL 预览;如果设置为 false,则禁用 URL 预览。URL 必须以 http:// 或 https:// 开头,后跟域名中表达的链接地址信息(以 IP 地址表达的链接地址不被识别)。URL 预览是 WhatsApp 客户端支持的消息渲染功能。 | 否 |
文本消息类型,示例 JSON
{
"body": "text-message-content",
"preview_url": false
}
图片消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
link | string | (id 或链接)图片的 URL 链接。必须是 HTTP/HTTPS 格式的 URL。 | 否 |
id | string | (id 或链接)图片存储 ID,在通过媒体接口上传文件后获得。 | 否 |
caption | string | 图片描述 | 否 |
图片消息类型,示例 JSON
{
"id": "5867096a-a9be-4a56-94d6-89377623b4ac",
"caption": "image test"
}
视频消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
link | string | (id 或链接)视频的 URL 链接。必须是 HTTP/HTTPS 格式的 URL。 | 否 |
id | string | (id 或链接)视频存储 ID,在通过媒体接口上传文件后获得。 | 否 |
caption | string | 视频描述 | 否 |
视频消息类型,示例 JSON
{
"id": "5867096a-a9be-4a56-94d6-89377623b4ac",
"caption": "视频测试"
}
音频消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
link | string | (id 或链接)音频的 URL 链接。必须是 HTTP/HTTPS 格式的 URL。 | 否 |
id | string | (id 或链接)音频存储 ID,在通过媒体接口上传文件后获得。 | 否 |
音频消息类型,示例 JSON
{
"id": "5867096a-a9be-4a56-94d6-89377623b4ac"
}
文档消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
link | string | (id 或链接)文档的 URL 链接。必须是 HTTP/HTTPS 格式的 URL。 | 否 |
id | string | (id 或链接)文档存储 ID,在通过媒体接口上传文件后获得。 | 否 |
filename | string | 文档名称 | 否 |
文档消息类型,示例 JSON
{
"id": "5867096a-a9be-4a56-94d6-89377623b4ac",
"filename": "文档"
}
位置消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
latitude | float64 | 纬度信息 | 是 |
longitude | float64 | 经度信息 | 是 |
name | string | 文件名 | 否 |
address | string | 文件名 | 否 |
位置消息类型,示例 JSON
{
"latitude": 22.550802897696343,
"longitude": 113.93844723701477,
"name": "洛杉矶, 加州",
"address": "Westwood Blvd"
}
贴纸消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
link | string | (id 或链接)贴纸的 URL 链接。必须是 HTTP/HTTPS 格式的 URL。 | 否 |
id | string | (id 或链接)贴纸存储 ID,在通过媒体接口上传文件后获得。 | 否 |
贴纸消息类型,示例 JSON
{
"id": "5867096a-a9be-4a56-94d6-89377623b4ac"
}
模板消息参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
name | string | 模板名称 | 是 |
language | Language | 模板语言设置 | 是 |
components | []Component | 模板内组件的变量设置序列 | 否 |
语言参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
code | string | 语言代码 | 是 |
policy | string | 固定值为确定性 | 是 |
组件参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
type | string | 组件类型。可以是 header、body、button 1)当 type = header 时,在模板头部设置变量信息; 2)当 type = body 时,在模板内容设置变量信息; 3)当 type = button 时,在模板按钮设置变量信息。 | 是 |
sub_type | string | 创建的按钮类型。仅在 type = button 时需要,可以是 url、quick_reply。如果类型为其他类型,则此参数不可用。 | 否 |
index | string | 按钮的位置索引。仅在 type = button 时需要。按钮的序号为 0 到 2。 | 否 |
parameters | []Parameter | 组件参数列表 | 否 |
参数
名称 | 类型 | 描述 | 必填 |
---|---|---|---|
type | string | 1)当组件对象的类型为 header 时,可以是 text、image、video、document; 2)当组件对象的类型为 body 时,值为 text; 3)当组件对象的类型为 button 且 sub_type = url 时,值为 text; 4)当组件对象的类型为 button 且 sub_type = quick_reply 时,值为 payload。 | 是 |
text | string | 设置相应参数的文本内容。仅当 type = text 时需要。如果类型为其他类型,则此参数不可用。 | 否 |
payload | string | 设置相应参数的 payload 内容。根据视频消息定义 payload 对象。仅当 type = payload 时需要。如果类型为其他类型,则此参数不可用。 | 否 |
image | Image | 设置相应参数的图像内容。图像对象根据图像消息 |
定义。仅当 type = image 时需要。如果类型为其他类型,则此参数不可用。 | 否 | | video | Video | 设置相应参数的视频内容。视频对象根据视频消息定义。仅当 type = video 时需要。如果类型为其他类型,则此参数不可用。 | 否 | | document | Document | 设置相应参数的文档内容。文档对象根据文档消息定义。仅当 type = document 时需要。如果类型为其他类型,则此参数不可用。 | 否 |
验证码消息类型示例 JSON
{
"name": "otp_test_02",
"language": {
"policy": "deterministic",
"code": "zh_CN"
},
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "123456"
}
]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [
{
"type": "text",
"text": "123456"
}
]
}
]
}
变量模板消息类型示例 JSON
{
"name": "text_template",
"language": {
"code": "en_US",
"policy": "deterministic"
},
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "David"
},
{
"type": "text",
"text": "B520"
}
]
}
]
}
快速回复模板消息类型示例 JSON
{
"name": "xy_button_tempalte",
"language": {
"code": "en_US",
"policy": "deterministic"
},
"components": [
{
"type": "header",
"parameters": [
{
"type": "text",
"text": "header"
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "0",
"parameters": [
{
"type": "payload",
"payload": "text1"
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "1",
"parameters": [
{
"type": "payload",
"payload": "text2"
}
]
},
{
"type": "button",
"sub_type": "quick_reply",
"index": "2",
"parameters": [
{
"type": "payload",
"payload": "text3"
}
]
}
]
}
响应参数
名称 | 类型 | 描述 |
---|---|---|
Action | string | SendMessageResponse |
RetCode | int | 成功为0 错误代码 |
Message | string | 消息 |
RequestId | string | 请求 ID |
Data | object | 返回数据 |
数据参数
名称 | 类型 | 描述 |
---|---|---|
MessageId | string | 消息 ID |
响应示例
{
"Action": "SendMessageResponse",
"Data": {
"MessageId": "xxx"
},
"Message": "",
"RequestId": "8ea6c8f2-e23f-4816-9a48-243a40d66bfb",
"RetCode": 0
}