微信素材管理

微信中新增素材管理分为临时素材和永久素材。在新增素材时,会有新增图片和新增图文。

临时素材的api接口:

$api=https://api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE;

永久素材的api接口:

$api=https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN;

在新增图片和图文上传公众号服务时,首先需获取当前使用的公众号,代码如下:

private $mp;

    public function _initialize(){
      $mp=getCurrentMp();
      if(empty($mp)){
        $this->error('无使用的公众号',U('mp/index'));
        exit;
       }else{
        $this->mp=$mp;
       }
    }
新增图片上传公众号服务(图片上传有临时素材和永久素材)代码如下:
public function image_submit(){
    	$url=I('post.url');//图片在本地服务器上的路径
    	// 相对路径->绝对路径
    	$file=realpath('.'.$url);
        // echo $file;
        // exit;
    	$staus_type=I('post.staus_type');
    	$accessToken=getAccess_token();
    	include APP_PATH.'LaneWeChat/lanewechat.php';
    	if($staus_type==0){
    		// 临时素材
    		$api="https://api.weixin.qq.com/cgi-bin/media/upload?access_token=$accessToken&type=image";
    	}else{
            // 永久素材
            $api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
    	}
    	$data['media']=Curl::addFile($file);
    	$ret=Curl::callWebServer($api,$data,'post',true,false);
        //存入数据库
        if(isset($ret['media_id'])){
            $mp=$this->mp;
            $data['mp_id']=$mp['id'];
            $data['type']='image';
            $data['url']=$url;
            $data['media_id']=$ret['media_id'];
            $data['create_time']=time();
            M('material')->add($data);
            $this->ajaxReturn(array('msg'=>'上传成功'));
        }else{
            $this->ajaxReturn(array('msg'=>$ret));
        }

    }
新增图文上传公众号服务代码如下:
public function news_submit(){
        $url=I('post.url');
        $file=realpath('.'.$url);

        $title=I('post.title');//标题
        $content=I('post.content');//内容
        $link=I('post.link');//链接

        $accessToken=getAccess_token();
        include APP_PATH.'LaneWeChat/lanewechat.php';
        //上传永久图片api
        $api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";

        $data['media']=Curl::addFile($file);
        $ret=Curl::callWebServer($api,$data,'post',true,false);

        if(isset($ret['media_id'])){
            $arr=array(
              'title'=>$title,
              'thumb_media_id'=>$ret['media_id'],
              'author'=>'ff',
              'digest'=>'aaa',
              'show_cover_pic'=>1,
              'content'=>$content,
              'content_source_url'=>$link

            );
            $data['articles'][]=$arr;

            $data=json_encode($data,JSON_UNESCAPED_UNICODE);
            // echo $data;
            // exit;

            $api="https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=$accessToken";
             $ret=Curl::callWebServer($api,$data,'post',true,false);
             if(isset($ret['media_id'])){
                $mp=$this->mp;
                $arr['mp_id']=$mp['id'];
                $arr['title']=$title;
                $arr['url']=$url;
                $arr['link']=$link;
                $arr['content']=$content;
                $arr['create_time']=time();
                M('material')->add($arr);
                $this->ajaxReturn(array('msg'=>'上传成功'));
            }else{
            $this->ajaxReturn(array('msg'=>$ret));
        }

      }
   }
上传文件时,需有upload方法,用来上传文件,代码如下:
public function upload(){
		$upload = new \Think\Upload();// 实例化上传类
		$upload->maxSize = 3145728 ;// 设置附件上传大小
		$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
		$upload->rootPath = './Uploads/'; // 设置附件上传根目录
		$upload->savePath = ''; // 设置附件上传(子)目录
		// 上传文件
		$info = $upload->uploadOne($_FILES['file']);
		if(!$info) {// 上传错误提示错误信息
		   $this->ajaxReturn(array('code'=>1,'msg'=>$upload->getError()));
		}else{// 上传成功
		   $file='/Uploads/'.$info['savepath'].$info['savename'];
		   $this->ajaxReturn(array('code'=>0,'msg'=>"上传成功",'url'=>$file));
		}
    }







猜你喜欢

转载自blog.csdn.net/f__theone/article/details/79993532
今日推荐