前段時間接到客戶的要求,他希望在公眾號里發(fā)布的文章,可以在網(wǎng)站上同步調(diào)用這些文章,這樣就不用復雜發(fā)布了,能省不少時間,但他又希望文章是直接顯示在網(wǎng)站頁面里的,而不是跳轉(zhuǎn)到微信公眾號的頁面,所以就需要做接口來采集所發(fā)布的文章。
因為是微信公眾號的文章,肯定是有微信公眾號賬號的,所以打開“微信公眾平臺”的頁面,讓掃碼登錄公眾號,需要先進行一些設置,才可以使用微信公眾號開發(fā)者接口:
首先是設置開發(fā)者密碼AppSecret和設置IP白名單,如下圖所示:
需要特別說明一下,如果忘記或不知道AppSecret,只能重置,不可以查看,一旦重置,之前的AppSecret將失效,要注意這一點。然后是設置IP白名單,把調(diào)用接口的服務器IP填寫上,可以填寫多個,設置這兩個參數(shù)是為了獲取access_token,有了access_token才能調(diào)用微信開發(fā)者接口。
我們在微信公眾平臺的頁面,可以找到“內(nèi)容與互動”->“發(fā)表記錄”,查看已經(jīng)發(fā)表的記錄,點擊“發(fā)布”,可以看到已發(fā)布的文章,這里特別說明一下,根據(jù)微信官方的回復,目前是無法獲取到群發(fā)的文章的,需要把群發(fā)的文章發(fā)布一下,文章在“發(fā)布”里,則可以獲取這篇文章,如下圖所示:
使用接口獲取發(fā)布的文章列表(其實也包括文章內(nèi)容),如下圖所示:
我們使用的是“發(fā)布能力”->“獲取成功發(fā)布列表”的接口,這個接口就是用來獲取已發(fā)布的文章列表,從上面的接口可以看到,是必須有access_token才可以成功調(diào)用這個接口的,
下面介紹獲取access_token方法,我使用的是thinkphp3代碼,如下圖所示:
用$access_token = $this->getToken($appid,$appsecret);即可獲取到access_token;
其中appid和appsecret對應的是微信公眾號的開發(fā)者ID和開發(fā)者密碼,因為這個接口每天調(diào)用次數(shù)是有限的,而且access_token的有效期是兩小時,所以我們可以用S緩存來保存access_token,每一小時才調(diào)用access_token一次,其他情況直接使用已有的access_token就可以了。
這樣就可以使用cgi-bin/freepublish/batchget?access_token=ACCESS_TOKEN接口獲取文章列表了,返回的內(nèi)容如下圖所示:
其中”item”就是我們所需要的文章列表的內(nèi)容,將json內(nèi)容轉(zhuǎn)成數(shù)組,然后插入到數(shù)據(jù)庫表里就可以了,部分代碼如下圖所示:
其中request_post方法如下圖所示: