实现微信发布文章信息采集

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

实现微信发布文章信息采集

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

接口名称为:获取永久素材,其实就是新增素材文章时,点击发布后保存的文章素材信息,如下图:

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

下面小编做详细说明

接口:

http请求方式:

POST https://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之间

以上就是小编总结的获取微信公众平台已发布文章素材信息的方法,如有不足之处敬请谅解,希望能对各位大神有所帮助。

以上就是实现微信发布文章信息采集的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:微信小程序中自定义组件的详细介绍
下一篇:为什么bootstrap图标无法显示

发表评论

关闭广告
关闭广告