基本原理:
通过开发者服务器生成接口链接,将链接发送给关注公众号的粉丝,粉丝用户点击链接,会把链接的参数发送给微信服务器,
微信服务器会生成一个code并带到链接里面的redrect_url ,这个URL 就是第三方网页,第三方网页根据获取的code值,通过另外
的接口url请求微信服务器获取access_token,通过access_token 再通过腾讯的URL接口获取用户的OPENID,最后通过OPENID获取用户的基本信息。
相关流程图:
操作步骤
1.通过官方接口生成链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
注意参数设置
appid 微信公众号的appid
redirect_uri 第三方页面URL
scope 应用授权作用域 ,分为两种 snsapi_base(不弹出页面授权,直接条全,只能获取哦难怪乎openid) 和 snsapi_userinfo (弹出授权页面,可以通过openid获取用户昵称、性别、所在地, 并且,即使用户未关注公众号,只要点击了授权,也能获取其信息).
如果用户点击了确定授权,会将code参数自动带到redirect_uri后面。
2.注意在微信公众号管理中心,设置OAuth2.0网页授权的回调页面域名信息;
3.获取access_token.
通过上面拿到的code信息,请求官方接口,获取access_token.
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
appid 微信公众号的appid
secret 微信公众号的AppSecret
code 上面获取的code值
请求成功,返回值示例:
{
“access_token” : “ACCESS_TOKEN”,
“expires_in” : 7200,
“refresh_token” : “REFRESH_TOKEN”,
“openid”: “OPENID”,
“scope”: “SCOPE”
}
4.获取用户基本信息(需啊哟scope为snsapi_userinfo)
接口:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
请求结果返回示例:
{
“openid” : “OPENID”,
“nickname”:NICKNAME,
“sex”:”1″,
“province”:”PROVINCE”,
“city” : “CITY”,
“country”:”COUNTRY”,
“headimgurl”: “HEADIMGURL”,
“privilege”:[
“PRIVILEGE1”
“PRIVILEGE2”
],
“unionid” : “UNIONID”
}
补充说明
redirect_uri 尽量使用https 来确保授权code安全性
通过code获取网页授权的access_token和基础支持中的access_token不同
网页授权接口连接额参数排序必须正确,不能更换,否则,会出错。
转载请注明:苏demo的别样人生 » 微信网页授权获取用户基本信息