• 技术文章 >后端开发 >php教程

    php微信的新增永久素材的详细介绍(基本流程)

    不言不言2018-08-20 15:45:15原创2048
    本篇文章给大家带来的内容是关于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核实处理。
    专题推荐:php
    上一篇:php微信获取临时素材的方法(附代码) 下一篇:php使用GD库将正方形图片变成圆形图片的方法(代码)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 关于微信上传永久素材接口报错(empty news data)• asp.net微信开发中永久素材管理介绍• 详解使用php调用微信接口上传永久素材• 对永久素材的相关推荐
    1/1

    PHP中文网