微信公众号获取用户信息

在进行微信公众号开发的时候我们很常用的一个功能就是获取用户的信息。但是获取用户信息的方式有哪几种,我目前用到的有两种。

一种是通过网页授权获取用户信息。一种是通过户和公众号产生消息交互或关注后事件推送后,根据用户OpenID来获取用户基本信息。

要特别注意的有两点:

第一点是两者向微信请求获取用户信息时的地址是不同的;

网页授权请求的“获取用户基本信息接口”接口地址:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

用户管理类接口中的“获取用户基本信息接口”地址

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

第二点是“网页授权”获取用户信息用到的网页授权access_token和普通access_token不同,它可以理解为用户,服务号和微信之间的一个access_token。用户管理类接口中的“获取用户基本信息接口”用到的access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用的access_token。


第一种:网页授权获取用户信息

微信文档地址:网页授权

关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

网页授权流程分为四步:

1、引导用户进入授权页面同意授权,获取code

2、通过code换取网页授权access_token(与基础支持中的access_token不同)

3、如果需要,开发者可以刷新网页授权access_token,避免过期

4、通过网页授权access_token和openid获取用户基本信息

网页授权请求的微信地址:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

请求的参数:


微信公众号获取用户信息_第1张图片

通过网页授权我们可以获得以下的用户信息:

微信公众号获取用户信息_第2张图片


第二种获取用户信息的方法是调用用户管理类接口中的“获取用户基本信息接口”

文档地址:用户管理获取用户信息

请求参数:


微信公众号获取用户信息_第3张图片

获取的用户信息:


微信公众号获取用户信息_第4张图片

你可能感兴趣的:(微信公众号获取用户信息)