WhatsApp API添加图片变量发模板消息报参数缺失如何解决
问题描述
我尝试通过WhatsApp API发送带图片的消息,配置的消息模板如下:
Hola *{{1}}* 🦸♀️🦸♂️ Hemos cargado una nueva noticia en la intranet, si quieres visualizar la misma haz click en el siguiente enlace: {{2}} 🚗 *Jis Parking*
编写的接口请求代码如下:
{ "to": "xxxxx", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "noticia", "language": { "code": "es" }, "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "Richard" }, { "type": "image", "image": { "link": "image_url" } } ] } ] } }
已将代码中的image_url替换为实际图片链接,检查配置无明显问题,但接口返回如下错误:
{ "error": { "message": "(#100) The parameter messaging_product is required.", "type": "OAuthException", "code": 100, "fbtrace_id": "AxtiGLSBvAZltlMkJAw-GIk" } }
问题解答
你的配置存在两处问题:
- 直接触发当前报错的原因:WhatsApp Business API所有请求的顶层结构强制要求携带
messaging_product字段,取值固定为whatsapp,你的请求体完全缺失这个必填参数,因此返回100参数缺失错误。 - 隐藏的配置错误:你模板正文里的
{{2}}是文本类型的链接占位符,但你给该位置传入的是image类型参数,就算补全必填字段,这里也会触发参数类型不匹配的报错。如果要在模板消息中插入图片,必须先在WhatsApp管理后台修改对应模板,为模板添加图片类型的Header区域,图片参数需要放在type为header的组件节点下,不能放在body(正文)的参数列表中。
修正后可正常调用的基础请求示例如下(对应你当前不带图片头部、正文放链接的模板):
{ "messaging_product": "whatsapp", "to": "xxxxx", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "noticia", "language": { "code": "es" }, "components": [ { "type": "body", "parameters": [ { "type": "text", "text": "Richard" }, { "type": "text", "text": "替换为实际的新闻访问链接" } ] } ] } }
如果需要在消息中附带图片,先修改模板添加图片类型的Header,之后在components数组中新增Header类型的参数节点传入图片链接即可。
内容的提问来源于stack exchange,提问作者Junior Developer
相关产品推荐
相关产品推荐

