首頁 >後端開發 >php教程 >php微信的新增永久素材的詳細介紹(基本流程)

php微信的新增永久素材的詳細介紹(基本流程)

不言
不言原創
2018-08-20 15:45:153353瀏覽

這篇文章帶給大家的內容是關於php微信的新增永久素材的詳細介紹(基本流程),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

微信的新增永久素材,最重要的是圖文素材,基本流程是如下:

  1. 取得access_token;

  2. 上傳封面素材,取得永久素材的media_id,可以是images或thumb型別都可以

  3. 上傳圖文中的圖片,取得圖片的騰訊網域的url

  4. 上傳永久圖文素材

第一步就不說了,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微信的新增永久素材的詳細介紹(基本流程)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn