最近,我又对微信公众号的开发感兴趣,最记得一年前帮朋友搭建一个公众号平台,不过实现的效果不如人意,还有一些问题未解决,现在回想起,首先会想到,通过第三方服务器上传图片到公众号上。
我是PHP进行开发的,因此以下实现的方法和语句都是PHP里面的内容。将他们组织起来,再配合公众平台开发者文档就可以实现和其他公众号一样有的功能。
公众平台开发者文档: http://mp.weixin.qq.com/wiki/home/index.html
以下实现的功能之前也提及到,通过第三方服务器上传图片到公众号上。
http://mp.weixin.qq.com/wiki/10/10ea5a44870f53d79449290dfd43d006.html
我并不能完整介绍这个功能,因为我只是想实现最核心的功能,可能还需要扩展。 这里用到PHP CURL,这是一个实现抓取网页内容,表单上传(POST和GET)的有用的功能。
$AccessToken = getWxAccessToken();//获取AccessToken
putImageToWx($AccessToken);//上传永久素材到微信公众号,这里是是上传图片
function getWxAccessToken(){
require_once 'wx.php';
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".
$wx['APPID']."&secret=".$wx['APPSECRET'];
//初始化curl
$ch = curl_init($url);
//配置一些参数
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$AccessToken = curl_exec($ch);
if(curl_error($ch)){
echo curl_errno($ch); //当出现问题,输入错误代码
}
$result = json_decode(curl_exec($ch),true); //将得到的结果转成数组输出,json_decode()解码
curl_close($ch);
return $result['access_token'];
}
function putImageToWx($AccessToken){
$url="https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=".$AccessToken;
$path="@D:\\Apache2.2\\htdocs\\abc.jpg"; //需要上传的图片地址
$post_data= array('media' => $path);
//初始化curl
$ch = curl_init($url);
//配置一些参数
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST,0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data); //这里的操作是上传文件,因此按照公众号开发者文档提到的,POST参数为 'media'
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$PicUrl = json_decode(curl_exec($ch),true); //将得到的结果转成数组输出,json_decode()解码
if(curl_error($ch)){
echo curl_errno($ch);
}
echo "<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original=".$PicUrl['url']." \/>"; //输出图片
}
暂时这样!