用POSTMAN上传,微信公众号响应脚本回复图片用的media_id
微信公众号开发中有会遇到使用多媒体素材的问题,例如语音、视频、图片等。不知道该说微信素材管理的设计是恶心还是谨慎,公众号后台明明有同样的功能,但是后台的图文和媒体文件素材和公众号的调用的资源是相互不互通的。如果要公众号响应脚本给用户回一个图片或视频,就必须自己实现多媒体文件的上传,换领media_id 而不能从公众号后台上传获得。
不去深究这样设计的原因,只谈解决办法。为每个管理的项目额外开发一个上传管理的程序有大费周章。今天试了下用postman直接调用接口,可行! 备忘步骤如下。
1 设置调用接口的IP白名单
公众号后台 -> 开发 -> 基本配置 -> IP白名单
把自己的IP加进去
2 GET请求获得 access_token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
两参数从公众号后台上一步的基本配置
页面获得
结果如图
3 POST请求获得media_id
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=ACCESS_TOKEN&type=TYPE
复制出上一步骤的access_token 替换进参数内,本次需求上传的是图片,所以type为 image
https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=38_gW19v-VusU3SHhVP4w_JvHvNSfR_XC-DazL1IYpb18SUZ3myrHM_exn1NocgtOFV8xOiLFFZL39J3YkrDMHRuCUbg2gYDlo3r5pIXKIxV-8kSJQjhVKa8LFzkDv8y7jp1bZ9Gp2xUUEddjNCZEZhCBANSN&type=image
保险起见,我在get和post参数都保留了 access_token 和 type, 并且在 post参数按API文档要求增加一个media
的参数,修改类型为file,点value栏选择要上传的文件。然后提交。 成功获得 media_id 如下图
参考文:
https://www.jianshu.com/p/8602d75b58ba
https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Adding_Permanent_Assets.html
