在用户与微信公众号产生消息交互后,微信公众号可获得用户的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 获取用户信息结果的参数说明