在上一讲的主要讲解了上传临时素材(传送门:《微信公众平台开发【素材管理】上传临时素材》),下面就讲讲如何获取此临时素材。此处的获取临时素材指公众号能够使用素材管理接口下载临时的多媒体文件,下面如下载图片为例。php
接口开放权限:素材管理接口对全部认证的订阅号和服务号开放json
调用格式及参数说明
http请求方式:GET,https调用(请注意,视频文件不支持https下载,调用该接口需http协议)api
请求格式:https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID浏览器
参数说明:服务器
参数是否必须说明
access_token是 调用接口凭证
media_id 是 媒体文件ID
基于SAE实现的源代码
本教程使用的是SAE服务器,因为SAE不能实现本地文件上传和下载,而须要经过Storage来实现,全部代码中会使用一些SAE官方给出的相关函数。微信
saeImage.phpapp
/**
* 做者:smalle
* 网址:http://blog.csdn.net/oldinaction
* 微信公众号:smallelife
*/
define("AppID","你的AppID");
define("AppSecret", "你的AppSecret");
$media_id = '1wrAlWQg02Wc2-z5imqt9K4wzyrugukmMQFCh0tXmixRWKCOIe3Gh9YQa7WjJpeB';//上一讲中上传临时素材后返回的media_id
$domain = 'smalle';//SAE的Storage domain名称
$filename = 'newSmallelife.jpg';//设置保存在domain中的文件名
$ch = curl_init('https://api.weixin.qq.com/cgi-bin/media/get?access_token='.get_token().'&media_id='.$media_id) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; //curl_exec执行成功则返回执行结果
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; //在启用CURLOPT_RETURNTRANSFER的时候,返回原生的(Raw)输出。
$output = curl_exec($ch) ;
curl_close($ch);
//将数据写入Storage
$saes = new SaeStorage();//建立SaeStorage对象
$fileurl = $saes->write( $domain , $filename , $output );//将数据写入到Storage domain并返回存储在domain中此文件的url
echo $fileurl;//输出文件地址
echo "";//显示此图片
//获取access_token
function get_token(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret;
$data = json_decode(file_get_contents($url),true);
if($data['access_token']){
return $data['access_token'];
}else{
echo "Error";
exit();
}
}
?>
效果预览:微信公众平台
在浏览器运行以后,你会在你的SAE管理后台的Storage相应的domain中查看到此文件,由此则对应的media_id素材被下载到了本地。由下图能够看出是上一讲中上传的临时素材,不信能够扫的试试哦。dom
//获取access_token
function get_token(){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret;
$data = json_decode(file_get_contents($url),true);
if($data['access_token']){
return $data['access_token'];
}else{
echo "Error";
exit();
}
}
//curl 获取文件数据
function curl_file($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);//只取body头
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//curl_exec执行成功后返回执行的结果;不设置的话,curl_exec执行成功则返回true
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
//保存文件到本地
function saveFile($filename, $filecontent){
$local_file = fopen($filename, 'w');
if (false !== $local_file){//不恒等于(恒等于=== 就是false只能等于false,而不等于0)
if (false !== fwrite($local_file, $filecontent)) {
fclose($local_file);
}
}
}
?>
===================================
===================================
关注【Smalle】【微信公众号:smallelife】
捐赠【Smalle】【微信公众号:smallelife】
关注就有豪礼相送哦,
源码、
工具、
文档应有尽有
你的扫码即是我前进的动力,
扫码、
扫码、
扫码
===================================
===================================