如何通过WhatsApp API下载用户发送的媒体文件?
WhatsApp Business API 下载用户上传媒体的实现方法
你需要通过两步请求完成图片下载:
- 调用媒体信息查询接口获取临时下载地址
你从webhook日志中拿到图片对应的media id(即你示例中image对象下的id字段:ffd23134-2dae-4fed-b5f8-0ce7867b6ddd),向你360dialog分配的专属API实例地址发起GET请求,路径为/v1/media/{媒体ID},请求时需要携带对接API使用的Authorization: Bearer <你的访问令牌>请求头。
请求示例:
curl --location 'https://<你的360dialog专属API域名>/v1/media/ffd23134-2dae-4fed-b5f8-0ce7867b6ddd' \ --header 'Authorization: Bearer <你的API访问令牌>'
接口会返回包含临时下载地址的结果:
{ "media_url": "https://<WhatsApp官方媒体存储临时地址>", "mime_type": "image/jpeg", "sha256": "bd02100d961b5a1dbaae1dd645485ebbfeda77b44e82c015f1cf29b05654ccb9", "id": "ffd23134-2dae-4fed-b5f8-0ce7867b6ddd" }
- 请求临时地址获取媒体二进制内容
拿到返回的media_url后,再次发起GET请求,同样携带Authorization认证头,即可获取图片的二进制流,你可以直接将该二进制流上传到你的自有存储服务。
注意事项
- 临时下载地址有效期仅5分钟,超时后需要重新调用
/v1/media/{媒体ID}接口获取新的地址 - 该逻辑同样适用于用户发送的语音、视频、文档等所有类型的媒体资源,仅需要替换对应媒体类型的ID即可
- 所有请求必须携带360dialog平台分配的有效访问令牌,否则会鉴权失败
内容的提问来源于stack exchange,提问作者Nurzhan Nogerbek
相关产品推荐
相关产品推荐

