一. 对接前准备
发送带参模板消息前,需要进入FB BM申请WhatsApp 模板,请参考文档WhatsApp模板消息
模板申请通过后,需将模板添加到多轮内容中,请参考文档WhatsApp模板消息添加
二. 调用说明
2.1 创建生成API Key;

2.2 调用如下接口时需要在请求Headers头中增加参数APIKEY = {您创建生成的API Key},请求接口地址:https://jservice-api.meetbot.biz;
2.3 响应格式
示例:
{
"code": 0,
"message": "",
"result": {{Object}},
"traceId": "",
"success": true
}
2.4 错误码列表
错误码 | 错误信息 | 错误原因 |
---|---|---|
0 | 成功 | |
70001 | Api Key invalid! | 未在Headers头中传入正确的ApiKey |
71001 | content block id invalid! | blockId非法 |
71002 | content block analysis exception! | 内容块解析异常(注:联系相关运营) |
71003 | whatsapp content do not allow send message! | 不允许进行发送消息(原因:1.没有绑定共享支付;2.账户余额不足) |
71004 | whatsapp bind exception! | 用户系统中whatsapp绑定异常(注:联系相关运营) |
71005 | whatsapp send block required parameter missing! | 发送block消息动态参数缺失 |
71006 | whatsapp send account should number | whatsapp发送账号必须为纯数字 |
71007 | whatsapp send account not exist | 发送账号不存在 |
71008 | 由于xxx存在异常,为避免继续发送带来严重影响,Meetbot已拦截推送 | 由于Meta对WhatsApp模板或账号相关进行了风控管控,为避免影响账号进行消息发送拦截 |
三. 获取Block内容中动态参数
3.1 请求接口
请求方式:GET
接口地址:/api/v2/whatsapp/message/block/param
3.2 参数
字段 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
blockId | 内容ID | int | - | 是 | 多轮内容的ID |
内容ID(blockId)如何获取?保存模板内容后,重新进入编辑页面

点击内容编辑

收集blockId
3.3 响应
字段 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
blockId | 子内容ID | int | - | 是 | 多轮内容里子内容的ID |
blockName | 子内容名称 | string | - | 是 | 多轮内容里子内容的名称 |
paramList | 参数 | list | - | 是 | - |
paramList对应对象参数
字段 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
type | 类型 | string | - | 是 | 值:header、body、button |
key | 参数名 | string | - | 是 | - |
value | 子内容名称 | string | - | 是 | 为空,后续发送消息需要传值 |
成功:
{
"code": 0,
"message": "",
"result": [
{
"blockId": 1087954,//子内容ID
"blockName": "模板block",//子内容名称
"paramList": [
{
"type": "header",
"key": "user_name",
"value": ""
//若模板页眉不是文字而是素材,如图片、视频、文件,则请请参考下面的代码
//"type": "header_file",
//"key": "image",
//"value": ""
//"type": "header_file",
//"key": "video",
//"value": ""
//"type": "header_file",
//"key": "document",
//"value": ""
},
{
"type": "body",
"key": "user_id",
"value": ""
},
{
"type": "button",
"key": "user_id",
"value": ""
}
]
}
],
"success": true
}
失败:详见错误码列表
四. 发送Block消息
4.1 请求接口
请求方式:POST
接口地址:/api/v2/whatsapp/message/send/block
4.2 请求Body参数
字段 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
blockId | 内容ID | int | - | 是 | |
toList | 接收者 | list | - | 是 | 接收者手机号list,号码前需添加区号,且号码需为纯数字。单次任务的list号码数不能超过1000,一次任务对应一个eventTaskId |
blockParamList | 内容参数 | list | - | 否 | 该参数根据具体内容传入正确的值,不同block参数依据【三. 获取Block内容中动态参数】接口返回值result获取 |
sentAccount | 发送消息账号(纯数字) | string | - | 否 | 发送账号为系统店铺绑定的Whatsapp账号,并且账号必须为纯数字,不填该字段则默认使用店铺最早绑定Whatsapp账号进行发送。【注:发送blockId必须是发送账号下绑定的内容】 |
请求示例:
{
"blockId": 1087953,//内容ID
"toList": [
"8615888886666,8615888886666"
//接收者手机号list,号码前需添加区号,且号码需为纯数字;若list内传入多个号码,则这些号码收到的消息里的参数均一致;若想实现参数与号码一一对应的需求,则需调用多次,且每次调用的list内只有一个号码
],
"sentAccount" : "8615888889999", //Whatsapp发送账号,非必填
"blockParamList": [
{
"blockId": 1087954,//子内容ID,在【3.3响应】里回传出来
"blockName": "模板block",//子内容名称,在【3.3响应】里回传出来
"paramList": [
{
"type": "header",
"key": "user_name",
"value": "参数值"
//若模板页眉不是文字而是素材,如图片、视频、文件,则请请参考下面的代码
//"type": "header_file",
//"key": "image",//页眉是图片时,key值不可变
//"value": "参数值"//若图片是静态,则value值为空;若图片是动态,则填写value值
//"type": "header_file",
//"key": "video",//页眉是视频时,key值不可变
//"value": "参数值"//若视频是静态,则value值为空;若视频是动态,则填写value值
//"type": "header_file",
//"key": "document",//页眉是文件时,key值不可变
//"value": "参数值"//若文件是静态,则value值为空;若文件是动态,则填写value值
},
{
"type": "body",
"key": "user_id",
"value": "参数值"
},
{
"type": "button",
"key": "user_id",
"value": "参数值"
}
]
}
]
}
4.3 响应报文
字段 | 名称 | 类型 | 长度 | 必填 | 说明 |
---|---|---|---|---|---|
eventTaskId | 事件任务ID | int | - | 是 | - |
成功:
{
"code": 0,
"message": "",
"result": {
"eventTaskId": 1514
},
"success": true
}
注意:
消息发送为异步发送eventTaskId为调用发送任务ID,可结合后续【WhatsApp消息发送数据回传】结果中taskId进行分析发送效果。