公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。

接口开放权限:素材管理接口对所有认证的订阅号和服务号开放。

接口调用说明

1、http请求方式

POST/FORM,需使用https

2、参数说明

参数 是否必须 说明access_token 是 调用接口凭证type 是 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)media 是 form-data中媒体文件标识,有filename、filelength、content-type等信息

3、返回数据说明

参数 描述type 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)media_id 媒体文件上传后,获取时的唯一标识created_at 媒体文件上传时间戳

正确情况下的返回JSON数据包结果如:{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

错误情况下的返回JSON数据包示例如:{"errcode":40004,"errmsg":"invalid media type"}(此错误指无效媒体类型错误)

完整示例代码

1、上传图片“smallelife.jpg”到服务器根目录

2、将以下代码写入到index.php文件中,并将此文件上传到服务器根目录(记得修改AppID和AppSecret),具体如下:(完整代码下载)

[php] view plain copy

  1. <?php
  2. /**
  3. * 作者:smalle
  4. * 网址:http://blog.csdn.net/oldinaction
  5. * 公众号:smallelife
  6. */
  7. define("AppID","你的AppID");
  8. define("AppSecret", "你的AppSecret");
  9. /* 新增一个临时素材 */
  10. //url 里面的需要2个参数一个 access_token 一个是 type(值可为image、voice、video和缩略图thumb)
  11. $url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=".get_token()."&type=image";
  12. if (class_exists('\CURLFile')) {
  13. $josn = array('media' => new \CURLFile(realpath("smallelife.jpg")));
  14. } else {
  15. $josn = array('media' => '@' . realpath("smallelife.jpg"));
  16. }
  17. $ret = curl_post($url,$josn);
  18. $row = json_decode($ret);//对JSON格式的字符串进行编码
  19. echo '此素材的唯一标识符media_id为:'.$row->media_id;//得到上传素材后,此素材的唯一标识符media_id
  20. //获取access_token
  21. function get_token(){
  22. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret;
  23. $data = json_decode(file_get_contents($url),true);
  24. if($data['access_token']){
  25. return $data['access_token'];
  26. }else{
  27. echo "Error";
  28. exit();
  29. }
  30. }
  31. //curl实现post请求
  32. function curl_post($url, $data = null)
  33. {
  34. //创建一个新cURL资源
  35. $curl = curl_init();
  36. //设置URL和相应的选项
  37. curl_setopt($curl, CURLOPT_URL, $url);
  38. if (!empty($data)){
  39. curl_setopt($curl, CURLOPT_POST, 1);
  40. curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  41. }
  42. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  43. //执行curl,抓取URL并把它传递给浏览器
  44. $output = curl_exec($curl);
  45. //关闭cURL资源,并且释放系统资源
  46. curl_close($curl);
  47. return $output;
  48. }
  49. ?>

微信公众平台开发【素材管理】上传临时素材相关推荐

  1. PHP实现微信公众平台开发---提升篇(上传素材并回复)

    一.HTTP接收事件订阅与恢复响应消息 i. 接收事件推送 并回复 1. 无连接:当用户关注微信公众账号的时候  微信公众平台会向我们推送post请求  关注推送的并不是数组  而是XML 2. 接收 ...

  2. java微信公众平台开发四(上传素材)

    最近公司要做微信方面的开发,今天说下,如何使用微信的素材管理的接口,这里主要讲下素材的上传接口,下载之类的比较简单(就是解析json而已),今天会把所有的素材上传写道一个方法里供大家参考,关于上传的接 ...

  3. 微信公众平台开发-消息管理-发送模板消息

    一.模板说明 模板消息是在特定服务场景中向粉丝发送的消息,例如:信用卡刷卡通知,商品购买成功通知.不同的模板有不同的风格,某些字段可以由你来填充自己的内容(同时设定颜色),从而形成自己的消息.微信公众 ...

  4. 微信公众号(四)——上传永久素材(图片)

    微信公众号在使用的接口的时候是通过media_id来进行的,所以在使用的接口的时候我们往往需要先上传素材,支持上传素材的格式和限制如下 图片(image): 2M,支持PNG\JPEG\JPG\GIF ...

  5. 微信公众平台开发-消息管理-发送客服消息

    一.简介 当用户主动发消息给公众号的时候(包括发送信息.点击自定义菜单.订阅事件.扫描二维码事件.支付成功事件.用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以 ...

  6. ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

    前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较多 思维导 ...

  7. C#-微信公众平台接口-上传临时素材

    最烦做微信公众平台的东西..文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体ID,用于其他操作,代码如下 :(自己导入相应的 ...

  8. Java微信公众平台开发_03_消息管理之被动回复消息

    GitHub源码:https://github.com/shirayner/weixin_gz 一.本节要点 1.回调url 上一节,我们启用服务器配置的时候,填写了一个服务器地址(url),如下图, ...

  9. 微信公众平台开发——新增素材

    微信公众平台开发--新增永久素材 请求接口 接口使用(以图片上传为例) 使用Layui写一个前台上传图片的页面 js 使用HttpRequestPostMedia方法 UploadMedia方法 效果 ...

  10. 微信公众平台开发(二)——自定义菜单、模板消息微信素材

    目录 获取AccessToken 1. 新建一个AccessToken对象 2. 新建一个TokenUtil工具类 自定义菜单 自定义菜单功能介绍 代码实现如下 效果如下 发送模板消息 1. 设置⾏业 ...

最新文章

  1. 2021-2027全球与中国跨临界二氧化碳系统市场现状及未来发展趋势报告
  2. Python爬虫项目--爬取某宝男装信息 附带源码
  3. 百度快照被劫持跳转的解决办法
  4. android 图片处理过程中添加进度条,『Android自定义View实战』给我一个图标,还你一个水波纹进度球...
  5. php生成静态页面并预览
  6. java中那些类是线程安全的?
  7. 窗体 局部变量转换为全局_从嵌入式编程中感悟「栈」为何方神圣?
  8. Bash脚本教程之set命令
  9. java8循环_Java8里请不要再使用循环语句
  10. pgp 私钥需要什么样的保护措施_参与以太坊 2.0 存款合约前需要了解的相应风险...
  11. 解决 sql server 2005 2000 导出 script 脚本 附近有语法错误
  12. 拓端tecdat|R语言 RevoScaleR的大规模数据集决策树模型应用案例
  13. matlab第四章答案,matlab第四章课后
  14. rufus安装win10
  15. 区块链资产证券化调研整理
  16. Angular学习笔记之慕课大漠穷秋塞主讲
  17. jq操作数组的常用方法
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java天气预报系统97z40
  19. word饼图如何画引导线_excle怎么画立体饼图/如何在饼形图中添加引导线(Excel)...
  20. 浙大PTA-Python题库 编程题第五章(5-1~5-11)题解

热门文章

  1. 电脑网线水晶头接法图解
  2. java8 匿名内部类的前生今世
  3. Tibco Designer -- 构建EAR文件
  4. 提取频散曲线matlab程序,2.2 PCDISP圆柱杆频散曲线求解
  5. ITIL 4 Foundation-指导原则
  6. 街头篮球服务器ip地域位置图,浅谈《街头篮球》韩服与国服六个位置的不同之处...
  7. 计算机设计媒体专业排名,2020USNEWS媒体与数字媒体专业综合排名
  8. 如何在Apple Watch上查看实时照片
  9. Blue Coat推移动设备安全(MDS)服务
  10. Blue Coat让企业在降低风险的同时利用网络应用程序