微信网页授权snsapi_base与snsapi_userinfo的问题

今天在做微信公众号网页授权功能,我测试snsapi_base与snsapi_userinfo
文档上说snsapi_base只能得到opeinid,
而snsapi_userinfo可以得到昵称,地址等详细信息,
这个的前提是不是需要用户的微信关注你的公众号呀。要不我发现snsapi_userinfo与只能得到openid与unionid。

阅读 11.9k
4 个回答

是,否则会提示错误,一般用于从公众号菜单进入链接的情况下。
snsapi_userinfo一般用于通用情况的授权登录,因为不确定入口是哪个。

base适用于公众号菜单进去,获取用户信息可以全程静默;
userinfo适用于任意微信h5页面,获取用户信息会提示确认。

snsapi_userinfo 可以得到任何通过微信自带浏览器进入你网页的微信用户的openid、unionid 昵称 头像 性别和地区信息,不需要关注你微信号的

你只获取到openid和unionid的原因应该是你值进行了一半(猜测,如果不是另外把代码贴出来讨论吧),与静默授权不同,拉去用户资料也就是用snsapi_userinfo 需要三或四步,其实这部分文档很清楚的:

1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

第一步是跳转后微信给你加一个code参数,你可以用这个参数来换取access_token和openid(第2步),然后你再拿这openid和access_tonken去拉去详细资料(上面的第4步),接口地址:

https://api.weixin.qq.com/sns...

只需将scope参数修改为snsapi_userinfo即可重新获得用户unionID,怎么改?在哪里改?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进