PHP使用者管理中常用介面調用的方法

來源:互聯網
上載者:User
本篇文章主要介紹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);}

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.