微信公众后台开发之素材管理
来源:互联网 发布:mac os 10.12.6 降级 编辑:程序博客网 时间:2024/06/05 18:14
微信公众后台开发之素材管理
最近应公司要求,对公司的微信公众号后台走升级,添加部分功能,其中就是需要在后台上传图片,而公众号回根据用户的按钮点击事件返回后台上传的图片。看着就是简单的需求,但是还是要先了解下微信开发文档,在来做开发微信开发文档。
看过文档后发现不是想象中的那么简单,这里涉及到三个系统的交互,一个是用户的收集,一个是自己的后台服务器,一个是微信服务器,做公众号的图片回复的时候,需要将图片上传到微信服务器,获取素材的media_id,然后使用media_id组装成微信规定的XML信息模板,当用户点击按钮的时候,返回给用户上传的图片。
微信对上传的素材做了区分,分别为:临时素材和永久素材,他们上传的方式也不一样,同时也会有要求。对于永久素材,需要做删除操作。我使用PHP做开发,首先看看上传临时素材,文档给了我们URL和请求的方法。然后做编程。编程先把请求的方法包装下:
protected static function https_request($url, $data = null){ //创建一个新cURL资源 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output;}上包装了对请求的操作,接下来就是做上传素材了,微信不接受网络素材,只好是自己的本地图片做上传,这里写了一个方法来做上传临时素材:
//获取上传图片的medioId 添加临时素材public function get_media_id($imgUrl){ $TOKEN="idtbxhOnI4YZ8gFRHeUEU-MYk4T3XxVndEZKvx2jlx3dGteEWEyG6Twck9MTgsyXRl_MqyBhgYa4w73mjGnvXH17Nguhqs7Z2QCpCu7SvzUYIWjAHALVJ"; $URL ='http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token='.$TOKEN.'&type=image'; $filedata = array("media" => "@".$imgUrl); $result =$this->https_request($URL,$filedata); echo var_dump($result).'<br>'; $res = json_decode($result,true); return $res;}上面的TOKEN是微信自己公众号的accessToken,可以通过文档网页测试来获取做测试,也可以自己写方法获取,这里就不写了,通过给参数$imageUrl就可以获得media_id,在使用media_id就可以在公众号显示了,上传永久素材和上传临时素材是一样的,只是链接不一样:
//添加永久素材 public function uploadImg($imgUrl){ $TOKEN="7ZT1cX_zIh0PFJnINPPaVew5yIDAU9N0umuwt5kmyuMwGVW2LCCTmokixxt99Rix0NixyKiQP-kB-T8KxYNllkRz7pZ7znWfIKOkK8bYUmsCFIgAFAFIL"; $url = 'https://api.weixin.qq.com/cgi-bin/material/add_material?access_token='.$TOKEN.'&type=image';// $URL ='http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token='.$TOKEN.'&type=image'; $data = array('media'=>'@'.$imgUrl); $result = $this->https_request($url,$data); $data = @json_decode($result,true); return $data['media_id'];// return $data; }
这是不是很简单,现在看看如何删永久素材,删除素材,首先要获取素材的media_id,在通过media_id来删除素材,这就需要我们自己先保存上传后的素材media_id,方便我们做删除操作。这里直接给出代码:
public function del_media($media_id){ $TOKEN="7ZT1cX_zIh0PFJnINPPaVew5yIDAU9N0umuwt5kmyuMwGVW2LCCTmokixxt99Rix0NixyKiQP-kB-T8KxYNllkRz7pZ7znWfIKOkK8bYUmsCFIgAFAFIL"; $media_id = 'b6geinBHCE6Z3WrilwK0NEeVU4JZDlcdebGYQrYOy-k';// $media_id = 'b6geinBHCE6Z3WrilwK0NBO88W4Q5nNrhWQOiUKQouA'; $url = 'https://api.weixin.qq.com/cgi-bin/material/del_material?access_token='.$TOKEN; $data = '{"media_id":"%s"}'; $data = sprintf($data,$media_id); $result = $this->https_request($url,$data); $res = json_decode($result,true); return $res; }
这里要注意下请求的参数的格式一定要多注意,否则会报错。
1 0
- 微信公众后台开发之素材管理
- 微信公众号开发素材管理,后台文件汇总
- Java微信公众平台开发之素材管理
- 微信公众平台开发【素材管理】上传临时素材
- 微信公众平台开发【素材管理】获取临时素材
- 微信公众平台开发【素材管理】上传临时素材
- 微信公众平台开发【素材管理】上传临时素材
- 公众号开发素材管理,php删除微信素材
- 微信公众号开发---微信接口素材管理
- 微信公众号开发教程[012]-素材管理
- 飞哥教你微信公众号开发-5-素材管理
- 微信公众号开发(六)素材管理
- 公众号开发素材管理效果演示-微信开发素材管理1
- 公众号上传视频语音素材,公众平台临时素材开发,微信开发素材管理7
- php上传公众号临时素材-微信开发素材管理6
- 微信公众平台开发 上传素材
- 公众号后台开发,管理临时素材功能
- bootstrap开发公众号后台,管理永久素材页面
- php接收和转json文件
- Hadoop02-MapReduce
- [leetcode]: 387. First Unique Character in a String
- 5.Flume实时监控读取日志数据,存储hdfs文件系统
- LeetCode109—Convert Sorted List to Binary Search Tree
- 微信公众后台开发之素材管理
- NSWindowController 和 NSWindow 的关系
- vivado sdk工具的bsp包源文件路劲
- 如何检查 Android 应用的内存使用情况
- C#三层架构详细解析
- Android Support Library
- ue4遇到一个问题 冲突
- java后台接收文件java.net.SocketTimeoutException: Read timed out
- Nginx的正反向代理和配置文件详解