微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法通过 OAuth 2 访问令牌在 Google Blogger API v3.0 中进行身份验证

如何解决无法通过 OAuth 2 访问令牌在 Google Blogger API v3.0 中进行身份验证

尝试使用 Google Blogger API v3.0

设置一个测试博客 - https://msi-blogger-api-test.blogspot.com/

Blogger 用户 ID 是 - 11970463155418365784 如出现在 - https://www.blogger.com/profile/11970463155418365784

为此项目设置了“API 密钥”和“OAuth 2.0 令牌” -

Screenshot from console.cloud.google.com

在 Blogger 沙盒中,它完美运行 -

Screenshot from Blogger sand box

从 Blogger 沙盒中复制了 cURL。

通过“复制”按钮(如屏幕截图中突出显示的)从 console.cloud.google.com(上面的屏幕截图)复制了“API 密钥”和“OAuth 2.0 令牌”。

通过 cURL 从 CLI 尝试,在单独使用“API 密钥”时有效 -

Screenshot from CLI

通过 cURL 从 CLI 尝试,在使用“API 密钥”和“OAuth 2.0 令牌”时不起作用 -

Screenshot from CLI

尝试通过以下两种方式使用“OAuth 2.0 令牌”:

  1. 1008747252329-g8j8...ebb.apps.googleusercontent.com
  2. 1008747252329-g8j8...退潮

认为可能不需要“.apps.googleusercontent.com”后缀。

这没有任何区别。

那么,我错过了什么?为什么“API 密钥”有效而“OAuth 2.0 令牌”无效?

是的,在这个(API“get”)示例中,我不需要为 cURL 使用“OAuth 2.0 令牌”,但它应该仍然有效。

当我尝试不同的 API 时,比如说“listByUser”,它需要“OAuth 2.0 令牌”——它不起作用,我得到了同样的错误

解决方法

那么,我错过了什么?为什么“API 密钥”有效而“OAuth 2.0 令牌”无效?

直接回答你的问题。 API 密钥仅适用于公共数据,您没有发送有效的访问令牌作为 OAuth 2 不记名令牌,您发送的值是错误的。

API 密钥

首先,API 密钥只能让您访问公共数据,例如,您可以使用 API 密钥列出 YouTube 上的公共视频,或查看 Google 日历上的公共假期日历之一。您不能使用 API 密钥访问私人用户数据

要访问私人用户数据或任何需要授权的方法,您需要提供授权标头并提交有效的不记名令牌。

“OAuth 2.0 令牌”

您的问题是您没有提交有效的访问令牌。看起来您可能正在尝试从 Google 云控制台上的项目发送客户端 ID。这不是访问令牌。

如何使用 curl 获取访问令牌。

如何使用 CURL 获取访问令牌是一个三步过程,第一步是请求拥有数据的用户的授权

这是一个 HTTP get 调用,可以放置在任何浏览器窗口中。

GET https://accounts.google.com/o/oauth2/v2/auth?client_id=XXXX.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/userinfo.profile&response_type=code

我有一个教程 How to get a Google access token with CURL. 和一个 Video

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。