测试微信登录,拉去用户信息时遇到错误:{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 3eOLXa0931ns89 ]"}
官方描述为:api功能未授权,请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限。
在此不讨论未授权的情况。已授权的情况下任有可能出现该错误。
错误描述:
- 第一步:用户同意授权,获取code 【正常】
- 第二步:通过code换取网页授权access_token 【正常】
- 第三步:拉取用户信息 【报错】
原因:
在第一步获取code时,有个参数scope
- 取值
snsapi_base
:不弹出授权页面,直接跳转,只能获取用户openid - 取值
snsapi_userinfo
:弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息
所以若scope传了snsapi_base,是无法拉去用户信息的。
其实官方文档说的很清楚了,只是我没仔细看,我相信有很多人会跟我一样不仔细看,所以写个博客记录一下。