微信的新增永久素材,最重要的是图文素材,基本流程是如下:
获取access_token;
上传封面素材,获取永久素材的media_id,可以是images或者thumb类型都可以
上传图文中的图片,获取图片的腾讯域名的url
上传永久图文素材
第一步就不说了,curl的就可以解决。
第二步获取永久素材跟上篇获取临时id大同小异,等下会吧代码贴出来
第三步获取图文中的图片url,主要也只是curl,和获取素材的流程差不多
第四步就是最重要,不过有了神器就简单了
代码基本就是如下几个封装好的方法,图片地址可以参考上篇的地址,其他都是很简单的
/* * 新增永久图文 */ public function addEver_media($json){ $url = "https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=".$this->get_access_token(); $res = $this->post($url, $json, 'json'); // 异常处理: 获取时网络错误 // 判断是否调用成功 return $res; } /* * 新增永久素材 */ public function addSucai($path,$type,$title="",$dis=""){ $url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$this->get_access_token()."&type=".$type; if($type=="video"){ $b = json_encode(array( 'title'=>$title, 'introduction'=>$dis )); $res = array( 'media' => '@'.$path, 'description'=>$b ); $res = $this->upload($url, $res); }else{ $res = $this->upload($url, array('media' => '@'.$path)); } // 判断是否调用成功 return $res; } /* * 获取永久素材url */ public function getSucaiURL($media){ $url = "https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=" .$this->get_access_token(); $arr = json_encode(array('media_id' => $media)); $res = $this->post($url, $arr, 'json'); // 判断是否调用成功 return $res; } /* * 上传图片获取url */ public function getPicURL($path){ $url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=" .$this->get_access_token() ; $res = $this->upload($url, array('media' => '@'.$path)); // 判断是否调用成功 return $res; } /* * 上传图片。图文专用 */ public static function upload($url, $filedata) { $curl = curl_init (); if (class_exists ( '/CURLFile' )) {//php5.5跟php5.6中的CURLOPT_SAFE_UPLOAD的默认值不同 curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, true ); } else { if (defined ( 'CURLOPT_SAFE_UPLOAD' )) { curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false ); } } curl_setopt ( $curl, CURLOPT_URL, $url ); curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE ); curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE ); if (! empty ( $filedata )) { curl_setopt ( $curl, CURLOPT_POST, 1 ); curl_setopt ( $curl, CURLOPT_POSTFIELDS, $filedata ); } curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); $output = curl_exec ( $curl ); curl_close ( $curl ); return $output; } public function post($url, $fields, $data_type='text') { $cl = curl_init(); if(stripos($url, 'https://') !== FALSE) { curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($cl, CURLOPT_SSLVERSION, 1); } curl_setopt($cl, CURLOPT_URL, $url); curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($cl, CURLOPT_POST, true); curl_setopt($cl, CURLOPT_POSTFIELDS, $fields); $content = curl_exec($cl); $status = curl_getinfo($cl); curl_close($cl); if (isset($status['http_code']) && $status['http_code'] == 200) { if ($data_type == 'json') { $content = json_decode($content); } return $content; } else { return FALSE; } }
相关推荐:
以上就是php微信的新增永久素材的详细介绍(基本流程)的详细内容,更多请关注php中文网其它相关文章!
……