WhatsApp Business API 聊天中无法展示公共图片URL问题求助
WhatsApp Business API自定义图片无法加载问题排查及解决方案
故障原因
- 文件元数据不匹配:你使用的图片实际为PNG格式,但
filename字段填写的是Sample.jpeg,后缀不一致会导致WhatsApp服务器解析媒体文件失败。 - 跨域/访问规则限制:S3存储桶、Shopify CDN、谷歌图片默认没有配置允许WhatsApp媒体服务器的访问规则,部分服务还会开启防盗链拦截,无白名单的服务器拉取请求会直接被拒绝,平台提供的示例图片提前完成了规则配置所以可以正常加载。
- 媒体规格不符合要求:WhatsApp对图片的硬限制为:JPG/PNG格式文件大小≤5MB,分辨率≤4096×4096,不支持渐进式JPG、动态PNG格式,超出规格的文件会被过滤。
- 请求头配置不匹配:你当前配置的
Content-Type为application/x-www-form-urlencoded,如果对接的WABA服务商要求传输JSON结构的消息体,格式不匹配会导致媒体字段解析异常。
解决方案
- 修正字段匹配规则:保证
filename后缀和实际图片格式完全一致,示例中的PNG图片需要把filename改为Sample.png。 - 调整存储访问规则:
- 给S3存储桶配置CORS规则,允许WhatsApp官方IP段的GET请求,关闭防盗链限制或者把WhatsApp服务器IP加入白名单
- 不要直接使用谷歌图片、公共CDN的外链,把图片转存到自己配置过访问规则的存储桶后再调用
- 提前校验媒体规格:将图片压缩到5MB以内,分辨率调整到4096px以下,导出为标准基线JPG或者非动态PNG格式。
- 修正请求头配置:如果是JSON格式传参,将请求头的
Content-Type改为application/json。 - 预验证资源可用性:用curl命令模拟WhatsApp服务器拉取资源,确认返回200状态码和正确的二进制内容:
curl -I 你的图片URL,如果返回403/404即可确认是资源访问限制问题。
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

