微信公众号授权报错:

{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}

声明:是已认证的服务号

场景需求:静默获取微信授权openId;业务中已经有手动授权获取微信信息接口;直接复用;结果报错;个别微信可以,大多数不可以;问题困扰一天多;

通过官方接口直接调用时,两个微信号,一个可以;一个不可以;

这个问题已解决!!

前置说明

网页授权获取用户基本信息:两种 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天内,不再需要用户同意授权,就可以获取用户基本信息

转自:https://www.cnblogs.com/liaolongjun/p/6080240.html?utm_source=itdadao&utm_medium=referral

感谢原创!

{“errcode“:48001,“errmsg“:“api unauthorized, hints: [ req_id: xxxxxxx]“}相关推荐

  1. 微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

    {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns8 ...

  2. 调用 微信接口报错 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}...

    如下截图,仅为备份,本文转载地址: http://www.cnblogs.com/liaolongjun/p/6080240.html 以下正文↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ...

  3. 微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

    声明:是已认证的服务号 这个问题已解决!! 前置说明 网页授权获取用户基本信息:两种 scope 域 https://open.weixin.qq.com/connect/oauth2/authori ...

  4. 微信开放平台·微信公众号接口调用报错【“errcode“:48001“errmsg“:“api unauthorized...“】

    目录 问题描述 使用场景 解决方案 问题描述 使用场景 复现场景: 微信开放平台·微信公众号链接:微信开发平台 按照文档说明通过 code 获取 access_token 检验授权凭证(access_ ...

  5. {“errcode“:48001,“errmsg“:“api unauthorized}

    最近在开发微信小程序,要给关注公众号的用户推送消息,在刚开始没搞清楚之前,会报这个错误,主要有以下注意事项: 一.access_token的获取 不管是小程序还是公众号获取access_token的链 ...

  6. 微信小程序获取openid等参数报错errcode:48001 errmsg:'api unauthorized'

    我的报这个错的时候,把url改成下面这个就可以了, "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret ...

  7. Java微信开发_Exception_03_errcode:48001 errmsg:api unauthorized hint

    创建菜单时出现这个异常, 异常信息:errcode:48001 errmsg:api unauthorized hint 解读:调用的接口没有权限. 回去公众号后台一看,发现真的没有自定义菜单的权限, ...

  8. 微信小程序登录授权{errcode:40013,errmsg:invalid appid, hints: [ req_id: qECcC0yFe-_ ]}问题

    登录授权{"errcode":40013,"errmsg":"invalid appid, hints: [ req_id: qECcC0yFe-_ ...

  9. 小程序 报错 errcode: 40029, errmsg: invalid code, hints: [ req_id: HQd79a0747th31 ]

    ☾ .背景 今天在进行小程序开发过程中,需要登录获取用户的 token信息 当调用 wx.login 后,进一步需要根据所得的 code 码进行登录凭证校验(包含 openid.session_key ...

最新文章

  1. Android Activity的生命周期、意图(Intent)
  2. 再看Kafka Lag
  3. Andrew Ng教你如何引领公司进入AI时代
  4. 论文阅读之ALBERT
  5. python activiti bpmn_Activiti 用户指南(BPMN 2.0介绍)
  6. C# Quartz.Net 定时任务的简单使用
  7. 无法启动windows安全中心服务
  8. 解决ojdbc7依赖下载失败
  9. equalizer android,全球最佳十大安卓均衡器
  10. 在linux上,dmg转换成iso或img文件
  11. 一款牛逼的Android端身份证合成工具
  12. 论文排版中如何将公式居中,编号靠右
  13. c++无法启动程序,系统找不到指定文件的处理方法
  14. govendor使用及错误处理
  15. ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)
  16. 像个黑客一样在网络上来无影去无踪之IP代理理论篇
  17. 数据可视化第3篇:安装linux操作系统5系列
  18. AcceptEx函数特点及需要提防的地方,看完了解更深入了,所以转过来
  19. 物联网毕设分享 stm32人体健康状态检测系统(项目开源)
  20. ubuntu先anaconda中python3与ros共存时opencv报错

热门文章

  1. 用数据说话,看中国49个地方(省、市、高新区)集成电路产业实力情况
  2. R语言 cowplot包快速拼图
  3. XJTU大计基第十周编程作业
  4. 霍兰德AI型,高考志愿填报(选专业),霍兰德职业兴趣测试
  5. Kali Linux 使用Armitage
  6. 阿里架构师:双十一「大促」,多亏了 Node.js
  7. 俄勒冈大学计算机科学专业,俄勒冈大学计算机
  8. 边框圆角化方式(原文链接http://www.cnblogs.com/SJP666/p/4678730.html)
  9. 安卓学习 Day18:利用单选按钮实现底部导航条
  10. YOLOX升级 | 阿里巴巴提出YOLOX-PAI,1ms内精度无敌,超越YOLOv6、PP-YOLOE