如何在WhatsApp模板消息中动态发送PDF?参数配置求助
在WhatsApp模板消息中动态发送PDF文件的参数定义
核心前提
要通过模板消息发送PDF,必须先在Meta Business Platform后台将你的sales_offer模板配置为**Header组件(文档类型)+ Body组件(文本参数)**的结构,且模板需通过审核。
修正后的代码示例
你的代码中Header组件的类型定义错误,以下是正确的参数配置:
var messagePayload = new { messaging_product = "whatsapp", to = phone, // 循环中的目标电话号码 type = "template", template = new { name = "sales_offer", // 已审核通过的模板名称 language = new { code = "en_US" }, // 需与后台模板配置的语言完全一致 components = new object[] { // Header部分:传递PDF文档 new { type = "header", // 此处必须指定为header,而非document parameters = new object[] { new { type = "document", document = new { id = mediaId, // 提前上传PDF到Meta获取的有效media_id filename = "Teklif.pdf" // 展示给用户的PDF文件名 } } } }, // Body部分:动态文本参数 new { type = "body", parameters = new object[] { new { type = "text", text = "报价编号: 123, 日期: 2025.04.01" } } } } } };
关键注意事项
- MediaID获取:PDF文件必须先调用Meta的Media Upload API上传到其服务器,拿到有效的
media_id才能使用,不能直接用本地文件或外部链接。 - 模板参数匹配:Body的参数数组顺序要和模板后台设置的占位符(如
{{1}})顺序完全对应,否则会出现参数错位。 - 语言一致性:
language.code必须和模板后台配置的语言代码完全一致(比如用en_US而非en),否则会触发模板不匹配错误。
内容的提问来源于stack exchange,提问作者Furkan Yeğen
相关产品推荐
相关产品推荐

