PHP用戶(hù)管理中常用接口調(diào)用實(shí)例及解析(含源碼)
掌握用戶(hù)的第一步就是將已經(jīng)關(guān)注的粉絲信息保存起來(lái),這個(gè)時(shí)候就用到獲取用戶(hù)列表接口。公眾號(hào)可通過(guò)本接口來(lái)獲取帳號(hào)的關(guān)注者列表,關(guān)注者列表由一串OpenID(加密后的微信號(hào),每個(gè)用戶(hù)對(duì)每個(gè)公眾號(hào)的OpenID是唯一的)組成。一次拉取調(diào)用最多拉取10000個(gè)關(guān)注者的OpenID,可以通過(guò)多次拉取的方式來(lái)滿足需求。
一、 獲取微信關(guān)注用戶(hù)列表接口調(diào)用實(shí)例
接口說(shuō)明
http請(qǐng)求方式:GET
接口調(diào)用地址:
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
請(qǐng)求參數(shù)說(shuō)明,如表所示:
參數(shù) |
是否必須 |
說(shuō)明 |
access_token |
是 |
調(diào)用接口憑證 |
next_openid |
是 |
第一個(gè)拉取的OPENID,不填默認(rèn)從頭開(kāi)始拉取 |
返回說(shuō)明:
正常情況下,微信會(huì)返回JSON數(shù)據(jù)包給公眾號(hào),如下所示:
{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}
返回信息參數(shù)說(shuō)明,如表所示:
參數(shù) |
說(shuō)明 |
total |
關(guān)注該公眾賬號(hào)的總用戶(hù)數(shù) |
count |
拉取的OPENID個(gè)數(shù),最大值為10000 |
data |
列表數(shù)據(jù),OPENID的列表 |
next_openid |
拉取列表的最后一個(gè)用戶(hù)的OPENID |
使用程序調(diào)用接口獲取,代碼:
<?php /* *獲取微信關(guān)注用戶(hù)列表OpenID */ require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; $output=getdata($url); $tokenarr=(array)json_decode($output); $token=$tokenarr['access_token']; //獲取關(guān)注用戶(hù)列表接口 $userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token.""; //通過(guò)getdata進(jìn)行接口調(diào)用 $userarr=(array)json_decode(getdata($userurl)); //將返回信息進(jìn)行處理并輸出 $useropenidarr=(array)$userarr['data']; print_r($useropenidarr); ?>
代碼解析
require('wei_function.php');包含wei_function.php,該函數(shù)文件可以購(gòu)買(mǎi)《微信公眾平臺(tái)開(kāi)發(fā)實(shí)例教程》,在該書(shū)中第95頁(yè)有詳細(xì)講解?!?/p>
與微信公眾平臺(tái)開(kāi)發(fā)3-微信服務(wù)器IP接口實(shí)例(含源碼)的獲取微信服務(wù)器IP一樣,獲取到access_token后,替換
中的access_token參數(shù),并通過(guò)getdata()函數(shù)獲取返回的信息,處理后,進(jìn)行打印,如圖所示。
如果關(guān)注用戶(hù)大于10000,需多次調(diào)用,只需在接口后增加&next_openid=NEXT_OPENID的參數(shù),NEXT_OPENID會(huì)在前一次調(diào)用時(shí)返回該值,如:
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."&next_openid=NEXT_OPENID";
二、用戶(hù)基本信息接口(UnionID機(jī)制)調(diào)用實(shí)例
在通過(guò)獲取關(guān)注用戶(hù)列表接口獲取到用戶(hù)的OpenID后,可通過(guò)該參數(shù)并調(diào)用獲取用戶(hù)基本信息(UnionID機(jī)制)接口獲取用戶(hù)的基本信息,如:昵稱(chēng)、城市、性別、用戶(hù)頭像、是否關(guān)注公眾號(hào)等信息,為了更好的了解用戶(hù),需要將這些信息一同保存到數(shù)據(jù)庫(kù)中。
接口說(shuō)明
http請(qǐng)求方式:GET
接口調(diào)用地址:
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
請(qǐng)求參數(shù)說(shuō)明,如表所示:
參數(shù) |
是否必須 |
說(shuō)明 |
access_token |
是 |
調(diào)用接口憑證 |
openid |
是 |
普通用戶(hù)的標(biāo)識(shí),對(duì)當(dāng)前公眾號(hào)唯一 |
lang |
否 |
返回國(guó)家地區(qū)語(yǔ)言版本,zh_CN 簡(jiǎn)體,zh_TW 繁體,en 英語(yǔ) |
返回說(shuō)明:
正常情況下,微信會(huì)返回JSON數(shù)據(jù)包給公眾號(hào),如下所示:
{ "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "廣州", "province": "廣東", "country": "中國(guó)", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4 eMsv84eavHiaiceqxibJxCfHe/0", "subscribe_time": 1382694957, "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" "remark": "", "groupid": 0, "tagid_list":[128,2] }
返回信息參數(shù)說(shuō)明,如表所示:
參數(shù) |
說(shuō)明 |
subscribe |
用戶(hù)是否訂閱該公眾號(hào)標(biāo)識(shí),值為0時(shí),代表此用戶(hù)沒(méi)有關(guān)注該公眾號(hào),拉取不到其余信息。 |
openid |
用戶(hù)的標(biāo)識(shí),對(duì)當(dāng)前公眾號(hào)唯一 |
nickname |
用戶(hù)的昵稱(chēng) |
sex |
用戶(hù)的性別,值為1時(shí)是男性,值為2時(shí)是女性,值為0時(shí)是未知 |
city |
用戶(hù)所在城市 |
country |
用戶(hù)所在國(guó)家 |
province |
用戶(hù)所在省份 |
language |
用戶(hù)的語(yǔ)言,簡(jiǎn)體中文為zh_CN |
headimgurl |
用戶(hù)頭像,最后一個(gè)數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶(hù)沒(méi)有頭像時(shí)該項(xiàng)為空。若用戶(hù)更換頭像,原有頭像URL將失效。 |
subscribe_time |
用戶(hù)關(guān)注時(shí)間,為時(shí)間戳。如果用戶(hù)曾多次關(guān)注,則取最后關(guān)注時(shí)間 |
unionid |
只有在用戶(hù)將公眾號(hào)綁定到微信開(kāi)放平臺(tái)帳號(hào)后,才會(huì)出現(xiàn)該字段。 |
remark |
公眾號(hào)運(yùn)營(yíng)者對(duì)粉絲的備注,公眾號(hào)運(yùn)營(yíng)者可在微信公眾平臺(tái)用戶(hù)管理界面對(duì)粉絲添加備注 |
groupid |
用戶(hù)所在的分組ID(兼容舊的用戶(hù)分組接口) |
tagid_list |
用戶(hù)被打上的標(biāo)簽ID列表 |
使用程序調(diào)用接口獲取,代碼:
<?php /* *獲取微信關(guān)注用戶(hù)基本信息 */ require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; $output=getdata($url); $tokenarr=(array)json_decode($output); $token=$tokenarr['access_token']; //獲取關(guān)注用戶(hù)列表接口 $userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token.""; //通過(guò)getdata進(jìn)行接口調(diào)用 $userarr=(array)json_decode(getdata($userurl)); //將返回信息進(jìn)行處理并輸出 $useropenidarr=(array)$userarr['data']; foreach ($useropenidarr['openid'] as $value) { //循環(huán)獲取用戶(hù)基本信息 $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN"; $infoarr=(array)json_decode(getdata($infourl)); print_r($infoarr); echo "<br />"; } ?>
代碼解析
require('wei_function.php');包含wei_function.php,該函數(shù)文件可以購(gòu)買(mǎi)《微信公眾平臺(tái)開(kāi)發(fā)實(shí)例教程》,在該書(shū)中第95頁(yè)有詳細(xì)講解。
獲取到用戶(hù)OpenID列表后,根據(jù)每條OpenID獲取用戶(hù)基本信息,這里用到foreach循環(huán)
foreach ($useropenidarr['openid'] as $value) { //循環(huán)獲取用戶(hù)基本信息 $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN"; $infoarr=(array)json_decode(getdata($infourl)); print_r($infoarr); echo "<br />"; }
運(yùn)行結(jié)果如圖所示。
如果需要將用戶(hù)信息保存到數(shù)據(jù)庫(kù),只需替換print_r($infoarr);為增加數(shù)據(jù)庫(kù)的代碼即可,如:
foreach ($useropenidarr['openid'] as $value) { //循環(huán)獲取用戶(hù)基本信息 $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN"; $infoarr=(array)json_decode(getdata($infourl)); //將用戶(hù)信息增加到數(shù)據(jù)庫(kù) $sql=”insert into userinfo(`nickname`,`sex`,`city`) values (‘”.$infoarr[‘nickname'].”','”.$infoarr['sex'].”','”.$infoarr['city'].”')”; mysql_query($sql); }
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
PHP中時(shí)間加減函數(shù)strtotime用法分析
這篇文章主要介紹了PHP中時(shí)間加減函數(shù)strtotime用法,結(jié)合實(shí)例形式分析了strtotime結(jié)合date函數(shù)進(jìn)行日期加減運(yùn)算的操作技巧,需要的朋友可以參考下2017-04-04PHP連接MySQL數(shù)據(jù)庫(kù)操作代碼實(shí)例解析
這篇文章主要介紹了PHP連接MySQL數(shù)據(jù)庫(kù)操作代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07php和C#的yield迭代器實(shí)現(xiàn)方法對(duì)比分析
這篇文章主要介紹了php和C#的yield迭代器實(shí)現(xiàn)方法,簡(jiǎn)單說(shuō)明了yield迭代器的原理,并結(jié)合具體實(shí)例形式對(duì)比分析了php和C#的yield迭代器相關(guān)使用技巧,需要的朋友可以參考下2019-07-07php打開(kāi)遠(yuǎn)程文件的方法和風(fēng)險(xiǎn)及解決方法
本文講的是php打開(kāi)遠(yuǎn)程文件的使用方法,還有使用風(fēng)險(xiǎn)和解決方法2013-11-11深入理解PHP之源碼目錄結(jié)構(gòu)與功能說(shuō)明
這篇文章主要介紹了深入理解PHP之源碼目錄結(jié)構(gòu)與功能說(shuō)明,簡(jiǎn)單分析了php源碼的主要目錄及相應(yīng)的功能,需要的朋友可以參考下2016-06-06php根據(jù)日期或時(shí)間戳獲取星座信息和生肖等信息
這篇文章主要介紹了php根據(jù)日期或時(shí)間戳獲取星座信息和生肖等信息的相關(guān)資料,需要的朋友可以參考下2015-10-10PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法
這篇文章主要介紹了PHP使用SOAP擴(kuò)展實(shí)現(xiàn)WebService的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了SOAP擴(kuò)展的原理及實(shí)現(xiàn)WebService的相關(guān)技巧,需要的朋友可以參考下2016-04-04PHP錯(cuò)誤Cannot use object of type stdClass as array in錯(cuò)誤的解決辦法
很多人在PHP輸出一個(gè)二維數(shù)組的時(shí)候出現(xiàn)“Fatal error: Cannot use object of type stdClass as array in……”。這篇文章主要介紹了該錯(cuò)誤的解決辦法,需要的朋友可以參考下2014-06-06