本篇文章主要介紹PHP使用者管理中常用介面調用的方法,感興趣的朋友參考下,希望對大家有所協助。
掌握使用者的第一步就是將已經關注的粉絲資訊儲存起來,這個時候就用到擷取使用者列表介面。公眾號可通過本介面來擷取帳號的粉絲列表,粉絲列表由一串OpenID(加密後的號,每個使用者對每個公眾號的OpenID是唯一的)組成。一次拉取調用最多拉取10000個粉絲的OpenID,可以通過多次拉取的方式來滿足需求。
一、 擷取關注使用者列表介面調用執行個體
介面說明
http請求方式:GET
介面調用地址:
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
請求參數說明,如表所示:
|
參數 |
是否必須 |
說明 |
|
access_token |
是 |
調用介面憑證 |
|
next_openid |
是 |
第一個拉取的OPENID,不填預設從頭開始拉取 |
返回說明:
正常情況下,會返回JSON資料包給公眾號,如下所示:
{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}
返回資訊參數說明,如表所示:
|
參數 |
說明 |
|
total |
關注該公眾帳號的總使用者數 |
|
count |
拉取的OPENID個數,最大值為10000 |
|
data |
列表資料,OPENID的列表 |
|
next_openid |
拉取列表的最後一個使用者的OPENID |
使用程式調用介面擷取,代碼:
<?php/* *擷取關注使用者列表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'];//擷取關注使用者列表介面$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";//通過getdata進行介面調用$userarr=(array)json_decode(getdata($userurl));//將返回資訊進行處理並輸出$useropenidarr=(array)$userarr['data'];print_r($useropenidarr);?>
代碼解析
require('wei_function.php');包含wei_function.php,該函數檔案可以購買《公眾平台開發執行個體教程》,在該書中第95頁有詳細講解。
與公眾平台開發3-伺服器IP介面執行個體(含源碼)的擷取伺服器IP一樣,擷取到access_token後,替換
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";
中的access_token參數,並通過getdata()函數擷取返回的資訊,處理後,進行列印,。
如果關注使用者大於10000,需多次調用,只需在介面後增加&next_openid=NEXT_OPENID的參數,NEXT_OPENID會在前一次調用時返回該值,如:
$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."&next_openid=NEXT_OPENID";
二、使用者基本資料介面(UnionID機制)調用執行個體
在通過擷取關注使用者列表介面擷取到使用者的OpenID後,可通過該參數並調用擷取使用者基本資料(UnionID機制)介面擷取使用者的基本資料,如:暱稱、城市、性別、帳戶圖片、是否關注公眾號等資訊,為了更好的瞭解使用者,需要將這些資訊一同儲存到資料庫中。
介面說明
http請求方式:GET
介面調用地址:
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
請求參數說明,如表所示:
|
參數 |
是否必須 |
說明 |
|
access_token |
是 |
調用介面憑證 |
|
openid |
是 |
普通使用者的標識,對當前公眾號唯一 |
|
lang |
否 |
返回國家地區語言版本,zh_CN 簡體,zh_TW 繁體,en 英語 |
返回說明:
正常情況下,會返回JSON資料包給公眾號,如下所示:
{ "subscribe": 1, "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", "nickname": "Band", "sex": 1, "language": "zh_CN", "city": "廣州", "province": "廣東", "country": "中國", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "subscribe_time": 1382694957, "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" "remark": "", "groupid": 0, "tagid_list":[128,2]}
返回資訊參數說明,如表所示:
|
參數 |
說明 |
|
subscribe |
使用者是否訂閱該公眾號標識,值為0時,代表此使用者沒有關注該公眾號,拉取不到其餘資訊。 |
|
openid |
使用者的標識,對當前公眾號唯一 |
|
nickname |
使用者的暱稱 |
|
sex |
使用者的性別,值為1時是男性,值為2時是女性,值為0時是未知 |
|
city |
使用者所在城市 |
|
country |
使用者所在國家 |
|
province |
使用者所在省份 |
|
language |
使用者的語言,簡體中文為zh_CN |
|
headimgurl |
帳戶圖片,最後一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),使用者沒有頭像時該項為空白。若使用者更換頭像,原有頭像URL將失效。 |
|
subscribe_time |
使用者關注時間,為時間戳記。如果使用者曾多次關注,則取最後關注時間 |
|
unionid |
只有在使用者將公眾號綁定到開放平台帳號後,才會出現該欄位。 |
|
remark |
公眾號運營者對粉絲的備忘,公眾號運營者可在公眾平台使用者管理介面對粉絲添加備忘 |
|
groupid |
使用者所在的分組ID(相容舊的使用者分組介面) |
|
tagid_list |
使用者被打上的標籤ID列表 |
使用程式調用介面擷取,代碼:
<?php/* *擷取關注使用者基本資料*/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'];//擷取關注使用者列表介面$userurl="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$token."";//通過getdata進行介面調用$userarr=(array)json_decode(getdata($userurl));//將返回資訊進行處理並輸出$useropenidarr=(array)$userarr['data'];foreach ($useropenidarr['openid'] as $value) { //迴圈擷取使用者基本資料 $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,該函數檔案可以購買《公眾平台開發執行個體教程》,在該書中第95頁有詳細講解。
擷取到使用者OpenID列表後,根據每條OpenID擷取使用者基本資料,這裡用到foreach迴圈
foreach ($useropenidarr['openid'] as $value) { //迴圈擷取使用者基本資料 $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 />";}
運行結果。
如果需要將使用者資訊儲存到資料庫,只需替換print_r($infoarr);為增加資料庫的代碼即可,如:
foreach ($useropenidarr['openid'] as $value) { //迴圈擷取使用者基本資料 $infourl="https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$token."&openid=".$value."&lang=zh_CN"; $infoarr=(array)json_decode(getdata($infourl)); //將使用者資訊增加到資料庫 $sql=”insert into userinfo(`nickname`,`sex`,`city`) values (‘”.$infoarr[‘nickname'].”','”.$infoarr['sex'].”','”.$infoarr['city'].”')”; mysql_query($sql);}
以上就是本文的全部內容,希望對大家的學習有所協助。