微信开发获取用户基本信息
1、申请微信公众号--服务号(略)
2、使用 AppID和AppSecret调用本接口来获取access_token。
具体操作步骤微信官方问答:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183&token=&lang=zh_CN
3、获取用户的Openid
获取用户openid有两种方式,一种是用户发送消息,微信服务器会把openid推送给开发者,另一种是通过OAuth2.0网页授权获取用户openid,今天讲的是通过网页授权获取用户openid。
第二步:通过code换取网页授权access_token
首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来 获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程 即到此为止。
由于我们采用的是snsapi_base式的网页授权,所以要获取openid,进行到这一步就完成了,返回的参数中自带openid。
请求方法
- 获取code后,请求以下链接获取access_token:
- https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
secret | 是 | 公众号的appsecret |
code | 是 | 填写第一步获取的code参数 |
grant_type | 是 | 填写为authorization_code |
返回说明
正确时返回的JSON数据包如下:
- {
- "access_token":"ACCESS_TOKEN",
- "expires_in":7200,
- "refresh_token":"REFRESH_TOKEN",
- "openid":"OPENID",
- "scope":"SCOPE",
- "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
- }
参数 | 描述 |
---|---|
access_token | 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同 |
expires_in | access_token接口调用凭证超时时间,单位(秒) |
refresh_token | 用户刷新access_token |
openid | 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID |
scope | 用户授权的作用域,使用逗号(,)分隔 |
unionid | 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。 |
错误时微信会返回JSON数据包如下(示例为Code无效错误):
- {"errcode":40029,"errmsg":"invalid code"}
4、通过 access_token 和 openid获取用户的个人信息。
具体步骤微信官方文档:https://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
本文转自:http://blog.****.net/qingshuiputeng/article/details/57946907