php 微信公众号查询用户
PHP微信公众号:查询用户信息
在微信公众号的开发中,经常需要获取关注该公众号的用户信息,例如昵称、头像、性别等信息。本文将介绍如何使用PHP的WeChat官方SDK来查询微信公众号用户信息。
前提条件
安装PHP扩展`php_curl`和`php_json`。
注册微信公众号并获取`AppID`和`AppSecret`。
已安装composer并配置好autoload。
安装SDK
通过Composer安装WeChatPHPSDK:
shell
composerrequireovertrue/wechat
获取AccessToken
查询用户信息需要先获取AccessToken,可以使用以下代码获取:
php
useOvertrue\Wechat\AccessToken;
$accessToken=newAccessToken([
'appId'=>'YOUR_APP_ID',
'appSecret'=>'YOUR_APP_SECRET',
]);
//获取AccessToken
$token=$accessToken->getToken();
查询用户信息
有了AccessToken,就可以查询用户信息了:
php
useOvertrue\Wechat\User;
$user=newUser($accessToken);
//查询指定用户的信息
$userInfo=$user->get('OPENID');
上述`get`方法将返回一个数组,包含以下字段:
`openid`:用户唯一标识
`nickname`:用户昵称
`sex`:用户性别,1表示男性,2表示女性,0表示未知
`province`:用户所在省份
`city`:用户所在城市
`country`:用户所在国家
`headimgurl`:用户头像URL
`privilege`:用户特权信息
`unionid`:用户在微信开放平台的唯一标识
查询关注者列表
除了查询单个用户信息,还可以查询关注公众号的所有关注者列表:
php
//查询关注者列表
$userList=$user->lists();
`lists`方法将返回一个数组,包含关注者列表,每个关注者信息都包含上述字段。
获得用户授权URL
如果需要获得用户的更详细授权信息,例如邮箱或地址,可以使用以下代码获得授权URL:
php
//获得授权URL
$url=$user->getAuthorizeUrl('SCOPE','STATE');
其中`SCOPE`可以是以下值之一:
`snsapi_base`:不弹出授权页面,直接跳转,只能获取用户OpenID
`snsapi_userinfo`:弹出授权页面,可通过OpenID拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息
`snsapi_privateinfo`:弹出授权页面,可在关注公众号后,获取用户的详细信息,包括姓名、性别、头像、邮箱、国家、地区、语言
`STATE`则是一个自定义的字符串,后续可以使用`getAuthInfo`方法获取授权信息。
获取授权信息
用户授权后,可以通过以下代码获取授权信息:
php
//获取授权信息
$authInfo=$user->getAuthInfo('CODE','STATE');
其中`CODE`是重定向URL中的`code`参数,`STATE`是`getAuthorizeUrl`方法中传入的`STATE`。
`getAuthInfo`方法将返回用户授权信息,包括:
`openid`:用户唯一标识
`access_token`:用户授权AccessToken
`expires_in`:授权AccessToken过期时间,单位是秒
`refresh_token`:用户刷新AccessToken,用于过期后刷新
刷新授权AccessToken
授权AccessToken有效期为2小时,过期后可以使用以下代码刷新:
php
//刷新授权AccessToken
$authInfo=$user->refreshAuthInfo($authInfo['refresh_token']);
通过本文介绍,你可以使用PHP的WeChatSDK方便地查询微信公众号用户信息,并且可以获得用户的授权信息,从而实现更丰富的公众号功能。
- 上一篇:php 逗号转义字符
- 下一篇:php如何获取sql查询结果