WhatsApp Business Cloud API发送图片后如何获取有效图片URL
WhatsApp Business Cloud API 已发送图片取回URL失效问题解决
核心原因
你遇到的URL无效问题,90%以上是请求流程不符合平台规则导致,并非返回的imageId或sha256凭证本身错误。
正确操作步骤
- 第一步:构造合法的媒体信息查询请求
- 请求方法固定为
GET,请求地址格式为https://graph.facebook.com/对应API版本号/{image节点下返回的id值},注意API版本不要使用v14.0及更早的废弃版本,废弃版本返回的资源链接存在兼容问题 - 请求头必须携带有效鉴权信息:
Authorization: Bearer <你的WhatsApp Business平台有效访问令牌>,不要使用已过期的短期测试令牌,令牌权限不足/过期时返回的链接无法正常使用 - 该请求不要携带任何额外Query参数,手动拼接参数会导致返回的资源链接异常
- 请求方法固定为
- 第二步:在有效期内完成资源下载
- 上述请求正常返回的JSON中包含的
url字段,默认有效期只有5分钟,拿到后需要立刻发起下载请求,超时后链接会自动作废,属于平台正常的安全机制 - 发起下载请求时,请求头必须携带和上一步完全一致的鉴权信息,直接在浏览器打开链接、不带鉴权请求下载地址100%会返回403/资源不存在,这是最常见的踩坑点
- 上述请求正常返回的JSON中包含的
- 第三步:用返回的
sha256值做完整性校验- 回调里返回的base64格式sha256值不是接口请求参数,是下载完成后的校验凭证:将下载到的本地图片文件计算sha256值并转成base64编码,和接口返回值比对一致即可确认文件完整、未被篡改
常见错误排查点
- 不要混淆两类ID:消息外层
wamid.开头的id是消息ID,不是媒体ID,传错ID拿到的链接自然无效,必须使用image节点下的id字段值查询媒体信息 - 测试环境下的媒体文件仅留存30天,超过留存周期的媒体ID会直接失效,无法通过接口取回
- 如果你的账号存在违规发送记录,平台会封禁对应媒体资源的访问权限,此时返回的链接也会无法访问
内容的提问来源于stack exchange,提问作者Mohammed Hafiz
相关产品推荐
相关产品推荐

