怎样获取access_token?素材图片图文上传?

大家都知道微信开发都需要有自己的一个后台界面,用来发布内容,管理内容,其中素材管理是不可缺少的,那么怎样来进行素材管理图片和图文呢,其中非常关键的就是获取access_token,接下来给大家具体分享一下。

首先我们在公共模板common下新建一个function.php文件,

where("is_use = 1")->find();
	return $mp;
}

//获取access_token
function getAccess_token(){
	$mp = M('mp')->where("is_use = 1")->find();
	if (empty($mp)) return false;

	$id = $mp['id'];

	if (empty($mp['access_token']) || $mp['expire_time']where("id=$id")->save($data);
			return $arr['access_token'];
		}else{
			return false;
		}
	}else{
		return $mp['access_token'];
	}

}

我们获取了access_token后,在以后的上传图文图片时就可以调用此方法了。

新建一个MaterialController.class.php文件

assign('type',$type);
		$this->display();
	}
	//显示新增页面素材
	public function addmeterial($type=''){
		if(empty($type)){
			$type='image';
		}
		$this->assign('type',$type);
		$this->assign('action',$type.'_submit');
		$this->display();
	}

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

	//图片上传公众号服务器
	public function image_submit(){
		$url=I('post.url');
		// echo $url;
		// echo "
"; $file = realpath($url); // echo $file; // exit; $staus_type=I('post.staus_type'); $Access_token=getAccess_token(); include APP_PATH . 'LaneWeChat/lanewechat.php'; if($staus_type==0){ $url="https://api.weixin.qq.com/cgi-bin/media/upload?access_token=$Access_token&type=image"; }else{ $url="https://api.weixin.qq.com/cgi-bin/material/add_meterial?access_token=$Access_token$type=image"; } $data['madia']='@'.$file; // dump($data); // exit; $ret=Curl::callWebServer($url,$data,'post',true,false); $this->ajaxReturn($ret); } //图文上传公众号服务器 public function news_submit(){ $url = I('post.url');//图片在本地服务器上的位置 //相对路径->绝对路径 // echo $url; // exit; $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'] = '@' . $file; $ret = Curl::callWebServer($api,$data,'post',true,false); if(isset($ret['media_id'])){ $arr = array( 'title'=>$title,//标题 'thumb_media_id'=>$ret['media_id'],//图文消息的封面图片素材id(必须是永久mediaID) 'author'=>'gqy',//作者 'digest'=>'aaa',//图文消息的摘要 'show_cover_pic'=>1,//是否显示封面,0为false,即不显示,1为true,即显示 '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']; } $this->ajaxReturn($ret); } } }


以上就是怎样获取access_token,以及素材管理中怎样上传图片图文的相关代码,大家赶紧拿出电脑来试一下吧。



你可能感兴趣的:(怎样获取access_token?素材图片图文上传?)