讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 6.5 獲取用戶基本信息 >

6.5 獲取用戶基本信息

在用戶與微信公眾號產生消息交互後,微信公眾號可獲得用戶的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 獲取用戶信息結果的參數說明