通过第三方服务器上传图片到公众号上

最近,我又对微信公众号的开发感兴趣,最记得一年前帮朋友搭建一个公众号平台,不过实现的效果不如人意,还有一些问题未解决,现在回想起,首先会想到,通过第三方服务器上传图片到公众号上。
我是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']." \/>";    //输出图片

   } 

暂时这样!

点赞