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

2023-05-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"} 的相关文章

  • Python 中的 API 调用身份验证(PHP 工作示例)

    我正在尝试编写一个脚本来与在线交易所进行通信 公共 请求发送至 https yobit net api 3 https yobit net api 3 交易 请求发送至 https yobit net tapi https yobit ne
  • TikTok 登录套件:非法重定向链接

    我正在看新的TikTok 登录套件对于网络 我陷入了重定向步骤 与所有基于 oAuth 的服务类似 当您注册应用程序时 它们应该要求提供有效的重定向 URL 对于 TikTok 他们要求重定向域 如下所示 然后根据他们的官方文档 https
  • Azure API 管理和 ASMX/WSDL SOAP 端点?

    我有一个使用 ASMX 终结点的旧 SOAP API Azure API 管理能够识别它并与之交互吗 还有更多人对此功能感兴趣 反馈 azure com http feedback azure com forums 248703 api m
  • OpenTok - 如何手动发布/取消发布?

    我查看了这些链接 http www tokbox com opentok api tools js documentation overview publish html http www tokbox com opentok api to
  • 如何在 WordPress 中创建“路线”?

    为了我自己的理智 我正在尝试为 ajax api 创建一条路由 如下所示 api
  • Microsoft 计算机视觉 API 或 Google 的 Cloud Vision API 是否可以获取对象的位置?

    我正在尝试开发一个需要知道图像中标记对象位置的应用程序 知道图像中有一架 钢琴 还不够 我需要知道钢琴在图像中的位置 微软的计算机视觉 API 和谷歌的云视觉 API 都提供了某种形式的裁剪建议 智能缩略图生成服务 这让我认为某些对象的位置
  • 如何将带有子查询的 JPQL 转换为 Criteria API 等效项?

    有一个由 5 个实体组成的简单对象模型 Company 组织 Address Club Group 公司与单个组织相关联 团体和俱乐部也与单个组织相关联 它们是单向的 这意味着组织不包含对其所有者的引用 一个组织可以有 0 个或多个地址 子
  • 如何使用 Whatsapp Cloud API 发送短信

    我在使用 Whatsapp Cloud API 已于 5 月 22 日向公众发布 时遇到问题 我做了一切在入门 https developers facebook com docs whatsapp cloud api get starte
  • Angularjs 和 api 之间的内部服务器错误 500

    我正在尝试从 angularjs 保存数据并将其发送到 api 但出现错误 500 内部服务器错误 控制器是一个数组 包含来自 html 页面的范围 任何帮助 控制器 scope save function scope setup push
  • Ionic 3 Uncaught(承诺):[object Object]

    我是 Ionic 3 和移动开发的新手 我正在尝试将 MySQL DB 连接到我的 Ionic 应用程序和 PHP Restful API 我用 Postman 测试了 API 它工作得很好 为了在 Ionic 中实现它 我做了以下操作 我
  • 国际天气 API (PHP) [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找最好的 免费 便宜 国际天气 PHP API 有什么建议么 看看这个答案 https sta
  • Lua userdata:无法同时进行数组访问和方法

    我遇到了这个人的问题 Lua userdata数组访问及方法 https stackoverflow com questions 26970316 lua userdata array access and methods 其中 当我设置用
  • 将 Dwolla 与 PHP 及其 API 集成

    前言 好吧 我过去使用过 API 例如 TwitterAPI 但我总是使用库和一些文档来帮助我进行连接和检索令牌 我对 API 的工作原理有了基本的了解 好的 我尝试了多种使用 PHP 请求 dwolla API 的方法 我尝试过制作一个
  • 如何以编程方式在 Google 文档中创建文档?

    The Google 文档列表 API 的文档 http code google com apis documents overview html 好像说可以创建本地文档并上传 有没有办法实际创建和编辑文档on通过 API 的 Google
  • 保护客户端 API 的安全

    我正在为基于 JavaScript 的游戏构建服务器端 API 和客户端库 其中必须确保两个非常重要的功能的安全 用户每次游玩都必须扣款 我们必须确保提交的分数是玩家实际获得的分数 解决第一个问题看起来很简单 在每次游戏开始时 我们都会调用
  • 使用 Chrome TTS 的 SSML

    我试图通过强调等方式让 TTS 句子更加清晰 我正在使用Chrome TTS API http developer chrome com extensions tts html 这表明它接受SSML 格式的文档 http www w3 or
  • 使用 cURL 设计身份验证

    如何使用 Devise 从终端使用 cURL 验证我的 Ruby on Rails 应用程序 我想 curl user email password http domain bla api auth sign in 并正在回应 您要查找的页
  • 获取发送 cURL 请求的用户的 IP 地址

    我想获取使用 php 中的 cURL POST 方法向我的服务器发送请求的用户的 IP 地址 我正在开发一个 Flight API 我将使用 cURL POST 方法获取请求 我必须获取客户端的 IP 地址并验证他的 IP 地址是否可用 如
  • 如何将 YouTube API 集成到我的 iPhone 应用程序中?

    我想将 YouTube API 集成到我的应用程序中 我该怎么做 附注 我正在为 YouTube 频道制作一个应用程序 我尝试以webview 但这让一切变得更糟 因为用户可以看到 YouTube 控件 搜索等 以及有关 YouTube i
  • GitHub v3 API - 如何在存储库中创建初始提交?

    我正在使用 v3 API 并设法列出存储库 树 分支 访问文件内容并创建 blob 树 提交 我现在正在尝试创建一个新的存储库 并设法使用 POST user repos 来完成它 但是当我尝试在这个新存储库中创建 blob trees c

随机推荐

  • VS2015 插件

    Visual Assist 代码颜色 xff0c 关键字高亮 Inden Guides Mode 缩进辅助线 FeinBrace 括号跳转 Toggle Comment 快速注释 解除注释
  • VS内存泄漏定位方法

    内存泄漏检测宏定义 ifdef DEBUG define DEBUG CLIENTBLOCK new CLIENT BLOCK FILE LINE else define DEBUG CLIENTBLOCK endif DEBUG defi
  • tar: 由于前次错误,将以上次的错误状态退出

    问题描述 tar cvfz test tar gz test tar test tar gz xff1a 无法 stat 没有那个文件或目录 test rwt tar 由于前次错误 xff0c 将以上次的错误状态退出 原因分析 xff1a
  • VSCode登录Microsoft账户无效

    现象 经过上述两步 xff0c 并没有弹出登录界面 解决方法 xff1a 使用腾讯电脑管家 电脑诊所 IE浏览器出错崩溃 修复后重新执行上述两步 xff0c 可以正常登录
  • Qt munmap_chunk(): invalid pointer

    现象 xff1a 软件退出时报munmap chunk invalid pointer 产生原因 xff1a 单例了窗口采用的静态变量写法 并且把单例的窗口添加到了另一个窗口中 软件退出时 xff0c 父窗口析构了单例的窗口 Qt的对象管理
  • node.js 跨域访问

    配置 node js http server启动方式 http span class token operator span server span class token operator span p span class token
  • Linux修改系统编码方法总结

    Linux系统安装后 xff0c 发现中文显示乱码 因为系统编码为en US UTF 8 xff0c 应改为支持中文的编码 xff08 即zh CN UTF 8 xff09 检查系统编码 英文环境如下 xff1a root 64 local
  • std::cout输出十六进制数据

    std vector lt uint8 t gt data 0x11 0x22 0x33 0x99 0xff std ofstream ofs 34 test txt 34 std ios app for int i 61 0 i lt d
  • ubuntu 缺少lsusb lspci insmod等

    lsusb gt usbutils lspci gt pciutils insmod gt module init tools
  • hexo知识点

    配置环境 安装Node xff08 必须 xff09 作用 xff1a 用来生成静态页面的 到Node js 官网下载相应平台的最新版本 xff0c 一路安装即可 安装Git xff08 必须 xff09 作用 xff1a 把本地的hexo
  • 安装Ubuntu下的开发工具

    安装Ubuntu下的开发工具 安装Ubuntu下的开发工具 刚安装好的Ubuntu xff0c 还缺乏很多开发工具 这些工具都可以通过网络进行安装 如果网络不佳 xff0c 也可以使用光盘中的工具包 如果要使用光盘中的工具包 xff0c 先
  • 基于深度学习场景分类算法

    目前出现的相对流行的场景分类方法主要有以下三类 xff1a xff08 1 xff09 基于对象的场景分类 xff1a 这种分类方法以对象为识别单位 xff0c 根据场景中出现的特定对象来区分不同的场景 xff1b 基于视觉的场景分类方法大
  • Linear Discriminant Analysis(LDA)

    好久没有整理最近的一些算法了 xff0c 今天趁着跑数据的过程整理一下LDA算法 该算法在很多地方都有使用 xff1a 语音识别 xff0c 说话人识别等等 xff0c 那么今天在这里就为大家详细介绍一下 xff0c 最终把matlab代码
  • MuQSS调度器之设计文档(一)

    MuQSS调度器之设计文档 准备分析Multiple queue skiplist scheduler调度器的实现 此篇是第一篇 本文翻译自sched MuQSS txt文档 很多还没搞懂 xff0c 需要去分析下代码 涉及很多操作系统基础
  • Arcgis Engine中检索 COM 类工厂中 CLSID 为{*} 的组件失败,原因是出现以下错误: 80040111 的解决方法

    最近在学习Arcgis Engine开发时 xff0c 创建实例时经常会出现下列错误 网上搜索到的解决办法有两种 xff1a 1 操作系统版本问题 如果是在Win7 64版本下 xff0c 可能出现该问题 xff0c 需要将把配置管理器里的
  • Ubuntu Server 14.04部署ONOS

    参考官网 xff1a https wiki onosproject org display ONOS Installing 43 and 43 Running 43 ONOS 由于笔者习惯ssh xff0c ubuntu默认没有开启ssh
  • Liunx系列-用户和权限

    rw r r 表示文件类型rw rw 表示文件所有者对文件的权限r r 表示文件所在组对该文件的权限r r 表示其他组对该文件的权限 r表示可读 xff0c 用数字4表示w表示可写 xff0c 用数字2表示x表示可执行 xff0c 用数字1
  • .net core程序发布部署

    发布后的包才能往IIS上放 xff0c 并且必选安装IIS模块里面的服务 xff08 AspNetCoreModuleV2 xff09
  • webapi 内使用jsonp方式(jQuery)

    前端部分代码 后端部分代码 xff1a HttpGet Route 34 ListenExport 34 public HttpResponseMessage ListenExport string url 61 HttpContext C
  • 微信 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}

    34 errcode 34 48001 34 errmsg 34 34 api unauthorized hints req id 1QoCla0699ns81 34 声明 xff1a 是已认证的服务号 这个问题已解决 xff01 xff0