在用戶與微信公眾號產生消息交互後,微信公眾號可獲得用戶的OpenID(加密後的微信號,每個用戶對每個微信公眾號的OpenID是唯一的。對於不同的微信公眾號,同一用戶的OpenID不同)。微信公眾號可通過本接口根據OpenID獲取用戶基本信息,包括暱稱、頭像、性別、所在城市、語言和關注時間等。
開發者可通過OpenID來獲取用戶基本信息。
獲取用戶信息的接口如下。
https:// api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid= OPENID&lang=zh_CN
該接口的參數說明如表6-13所示。
表6-13 獲取用戶信息請求的參數說明
獲取用戶基本信息的代碼實現如下。
1 <?php 2 $access_token = "QfUKtidNK0z-WA9C38JIncULipiunLfKpic1rmcnPOCs4UuZ7ek7PvjM5mLXnk JH7d5u2vX2q7UY9wurrJRjFrnIi4O6BkDwSmfE3wv1-ToSrEXGzwOpzgc8SSw74tNHDAUbACAWTN"; 3 4 $openid = "oiPuduGV7gJ_MOSfAWpVmhhgXh-U"; 5 $url = "https:// api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token& openid=$openid&lang=zh_CN"; 6 $output = https_request($url); 7 var_dump($output); 8 9 function https_request($url, $data = null) 10 { 11 $curl = curl_init; 12 curl_setopt($curl, CURLOPT_URL, $url); 13 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 14 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 15 if (!empty($data)){ 16 curl_setopt($curl, CURLOPT_POST, 1); 17 curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 18 } 19 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 20 $output = curl_exec($curl); 21 curl_close($curl); 22 return $output; 23 } 24 ?>
上述代碼執行後,返回的結果如下。
{ "subscribe":1, "openid":"oiPuduGV7gJ_MOSfAWpVmhhgXh-U", "nickname":"喵了個咪", "sex":1, "language":"zh_CN", "city":"深圳", "province":"廣東", "country":"中國", "headimgurl":"http:// wx.qlogo.cn/mmopen/AkcGLGLkeINKqK5nbT6DtrL9XY47H1niaRLBq0 4jrPSzcIlbWVMgiaUbgVnAWVcQJz63mtyNF4YjdpiaBLymaFmKCheBpQyu9BR/0", "subscribe_time":1468461486, "unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL", "remark":"fangbei", "groupid":2, "tagid_list":[ 2, 102, 105 ] }
上述數據的參數說明如表6-14所示。
表6-14 獲取用戶信息結果的參數說明