微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}
{“errcode”:48001,“errmsg”:“api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]”}
声明:是已认证的服务号
前置说明
网页授权获取用户基本信息:两种 scope 域
https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state=ok#wechat_redirect
snsapi_base 不需要用户点同意,直接跳转到授权后的页面,只能用于获取openid,不能获取用户基本信息
snsapi_userinfo 会征求用户同意,授权后,可以获取用户基本信息
为了方便大家理解,把接口返回的数据展示下吧
{
“access_token”:“YNTxefBAfNW565Q4MAI…j-hLNzin9Vq6BnvcvJ8NKHdBSRhkLjHQliLiNQc”,
“expires_in”:7200,
“refresh_token”:“EYmfmvUg0PGtOWiLpb…T8O2UyKL95_Da23fLV-nYFDgnt14Ljl_x_zCMY”,
“openid”:“oYbGRs8MmU6bESxXcX2Z0rFRivjQ”,
“scope”:“snsapi_base”
}
{
“access_token”:“IdFXvRMq3J6vXUcZ0iQ…G1xbkGJEnbnSKQ4G0nyQ5vmNSKF4a4DzGu64”,
“expires_in”:7200,
“refresh_token”:“J8ot4JWphxwvyAY3I9r…krET6P-8dot_-_tQfFoLUQI3EI-NT-I-degNRGumA”,
“openid”:“oYbGRs8MmU6bESxXcX2Z0rFRivjQ”,
“scope”:“snsapi_userinfo”
}
问题再现
1 首次使用 scope=snsapi_base 进行网页授权
2 拿到 code 后调用接口 https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code
3 根据上一步获取的 openid 和 access_token 调用接口 https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN 获取用户基本信息
4 获取失败:返回 {“errcode”:48001,“errmsg”:“api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]”}
失败原因
scope=snsapi_base 时,只能用于获取openid,不能获取用户的基本信息(获取用户信息,需要用户同意。scope=snspai_base 授权时,并没有征求用户同意授权这一操作)
问题来了
(有时候成功,有时候失败)
为什么有的时候(或者另外一个公众号),按上面的步骤,能成功获取到用户的基本信息?
“48001,api unauthorized”之所以让很多人迷惑不解,就在于这个问题
先直接上解决方式,再说原因
使用 scope=snsapi_userinfo 进行一次网页授权,步骤跟上面【问题再现】一样,成功获取到用户的微信基本信息。
再使用 scope=snsapi_base 重复一遍【问题再现】,这次成功了!!!
原因
上面的实验其实已经说明原因了,怕有些人一下子理解不了,所以
第一次使用 scope=snsapi_base,这是不需要经过用户同意的授权,不能获取用户的基本信息
第二次使用 scope=snsapi_userinfo,这是需要用户点击同意的授权,能获取到用户的基本信息
使用 scope=snsapi_userinfo,用户同意授权后,在一定时间内,不需要用户的同意,也可以获取用户基本信息(此时使用 scope=snsapi_base 也能获取到用户基本信息:甚至参数openid的值随便填都没关系,可以是空格,但不能为空)
注意
使用 scope=snsapi_userinfo,用户同意授权后,access_token 的有效期是7200秒(两小时)。
access_token 失效后,可以使用 refresh_token 调用接口 https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1} 重新获取 access_token(有效期7200秒)
(终于知道 refresh_token 是干嘛用的了吧)
refresh_token 的有效期是30天,即用户同意授权后,在30天内,不再需要用户同意授权,就可以获取用户基本信息
微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}相关推荐
- 微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}
声明:是已认证的服务号 这个问题已解决!! 前置说明 网页授权获取用户基本信息:两种 scope 域 https://open.weixin.qq.com/connect/oauth2/authori ...
- 调用 微信接口报错 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}...
如下截图,仅为备份,本文转载地址: http://www.cnblogs.com/liaolongjun/p/6080240.html 以下正文↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ...
- {“errcode“:48001,“errmsg“:“api unauthorized, hints: [ req_id: xxxxxxx]“}
微信公众号授权报错: {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1Q ...
- 微信开放平台·微信公众号接口调用报错【“errcode“:48001“errmsg“:“api unauthorized...“】
目录 问题描述 使用场景 解决方案 问题描述 使用场景 复现场景: 微信开放平台·微信公众号链接:微信开发平台 按照文档说明通过 code 获取 access_token 检验授权凭证(access_ ...
- 微信小程序获取openid等参数报错errcode:48001 errmsg:'api unauthorized'
我的报这个错的时候,把url改成下面这个就可以了, "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret ...
- {“errcode“:48001,“errmsg“:“api unauthorized}
最近在开发微信小程序,要给关注公众号的用户推送消息,在刚开始没搞清楚之前,会报这个错误,主要有以下注意事项: 一.access_token的获取 不管是小程序还是公众号获取access_token的链 ...
- Java微信开发_Exception_03_errcode:48001 errmsg:api unauthorized hint
创建菜单时出现这个异常, 异常信息:errcode:48001 errmsg:api unauthorized hint 解读:调用的接口没有权限. 回去公众号后台一看,发现真的没有自定义菜单的权限, ...
- 微信小程序登录授权{errcode:40013,errmsg:invalid appid, hints: [ req_id: qECcC0yFe-_ ]}问题
登录授权{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: qECcC0yFe-_ ...
- 微信小程序登陆凭证校验出现{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}
问题描述: 微信小程序登陆校验时需要使用临时登录凭证code ,appID和appsecret获取 session_key 和 openid 等.但是后台向微信服务器请求时一直报{"errc ...
最新文章
- android pop3与imap方式接收邮件(javamail)
- 回车的ascii码_ASCII码表
- 云服务器系统租赁费用,云服务器创建租赁费用
- 大牛书单 | 腾讯技术大咖推荐你五一看这些书
- .gpg 进程 linux,小知识之Linux系统中的最大进程数,最大文件描述,最大线程数...
- [react] 说说react diff的原理是什么
- mybatis学习(22):查询排序
- XP系统中没有Internet信息服务windows组件解决办法
- php ab压力测试,安装Xcache缓存加速php及ab压力测试结果
- 新特性 | Java8 的这个特性,用起来真的很爽!
- 局域网只看到少数电脑_利用局域网高速传输大文件的两种方法
- dataframe列互换 python_统计学原理之python数据分析基础
- html基础教程全集零基础入门到精通汇总整理(附详细的学习路线图)
- 银行账号正则_求一个能验证银行卡号的正则表达式
- 高盛VR/AR报告完整解读版
- OpenCV交叉编译,选项不同同样成功的路子
- Win11彻底卸载WSL2系统(去除导航窗格Linux图标)
- 来自NCBI GEO原始数据上传的一个“bug”!
- 科普无穷小微积分是最大的知识共享项目
- 计算机系统运行太慢,如何解决电脑运行速度慢