最近有一个客户,需要实现这样一个功能,之前他们在微信公众平台发布文章信息后,还需要在官网再发布一次,这样等于是同样的工作做了两遍,他们想实现在微信公众平台发布文章后,能够同时发布到官网上,小编通过研究,发现微信公众平台官网提供了相关的信息采集接口,原文地址如下:https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Get_materials_list.html
接口名称为:获取永久素材,其实就是新增素材文章时,点击发布后保存的文章素材信息,如下图:

只有点击了发布按钮保存到发表记录--发布中的文章素材,才可以被采集,如下图:

下面小编做详细说明
接口:
http请求方式:
POSThttps://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN
1 获取ACCESS_TOKEN
public function getAccessToken(){ $info = Db::name('access_token')->order('inputtime desc')->find(); if($info){ $time = time(); $long_time = $time - $info['updatetime']; if($long_time>=$info['expires_in']){ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->secret; $res = $this->getJson($url); if(in_array('access_token',$this->DbSy->GetArrElement($res))){ $insert['access_token'] = $res['access_token']; $insert['expires_in'] = $res['expires_in']; $insert['updatetime'] = time(); $up_info = Db::name('access_token')->where('id',$info['id'])->update($insert); if(!$up_info){ return json(['code'=>103,'msg'=>'AccessToken更新失败']); } $AccessToken = $res['access_token']; }else{ return json(['code'=>100,'msg'=>'AccessToken获取失败']); } }else{ $AccessToken = $info['access_token']; } }else{ $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->secret; $res = $this->getJson($url); if(in_array('access_token',$this->DbSy->GetArrElement($res))){ $insert['access_token'] = $res['access_token']; $insert['expires_in'] = $res['expires_in']; $insert['updatetime'] = time(); $insert['inputtime'] = time(); $up_info = Db::name('access_token')->where('id',$info['id'])->insertGetId($insert); if($up_info){ $AccessToken = $res['access_token']; }else{ return json(['code'=>101,'msg'=>'AccessToken插入失败']); } }else{ return json(['code'=>100,'msg'=>'AccessToken获取失败']); } } return $AccessToken; }
注意:
在制作之前需要在数据库添加数据表:access_token,用来存储获取到的access_token值,因为每次获取到的access_token值的有效时长是7200s,这样避免重复获取access_token值。
2 获取素材列表
获取到access_token值后,就可以通过access_token值获取素材列表:
public function getArticleList($offset,$type='news',$length=20){ $data = array( 'type'=>$type, 'offset'=>$offset, 'count'=>$length ); $json_data = json_encode($data); $AccessToken = $this->getAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=".$AccessToken; $res = $this->getJsonData($url,$json_data); return $res; //dump($res); }
其中:
(1)type,为素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)
(2)offset,从全部素材的该偏移位置开始返回,0表示从第一个素材返回
(3)count,返回素材的数量,取值在1到20之间
以上就是小编总结的获取微信公众平台已发布文章素材信息的方法,如有不足之处敬请谅解,希望能对各位大神有所帮助。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Comment créer un clone WeChat
Quelle est la différence entre le blocage et la suppression sur WeChat ?
WeChat n'a pas réussi à charger les données
Que signifie le clonage WeChat ?
WeChat restaure l'historique des discussions
Comment supprimer les émoticônes WeChat
Comment définir le texte supérieur sur WeChat
Étapes WeChat