来自 Youtube API 的 OAUTH 凭据无效

Posted

技术标签:

【中文标题】来自 Youtube API 的 OAUTH 凭据无效【英文标题】:Invalid Credentials for OAUTH from Youtube API 【发布时间】:2014-05-05 22:14:18 【问题描述】:

尝试在 OAuth 2.0 Playground 中使用 Youtube API 时出现 401 Invalid Credentials 错误。

回复是:


  "error": 
    "code": 401, 
    "message": "Invalid Credentials", 
    "errors": [
      
        "locationType": "header", 
        "domain": "global", 
        "message": "Invalid Credentials", 
        "reason": "authError", 
        "location": "Authorization"
      
    ]
  

步骤可以复制here。

    选择管理 Youtube 帐户 API 授权 获取访问令牌 尝试调用任何 Youtube API(您可能还需要插入自己的 API 密钥)

访问令牌是有效的(非 Youtube API 调用工作正常),我已经尝试了许多不同的帐户,这些帐户设置了 Youtube 帐户和频道(所以回复 here 不是正在发生的事情)。

API 在这里的Try it Now 部分运行良好,所以这很奇怪。

也许有人可以用他们的帐户尝试这些步骤并验证结果是否相同?

【问题讨论】:

我收到了一个 403 "Access Not Configured. Please use Google Developers Console to activate the API for your project.",这似乎没有意义,因为该项目归 Google 所有 由于某种原因,它也需要一个 API 密钥 - 即使访问令牌应该足够了。如果您有 API 密钥,请将其作为参数添加,然后查看结果。 【参考方案1】:

您必须在 OAuth Playground 的设置中选择“使用您自己的 OAuth 凭据”选项(链接在右上角)。

您还需要将以下 URL 添加到 Developers Console 中您项目的重定向 URI 列表中:

https://developers.google.com/oauthplayground

如果这样做,则无需传递 API 密钥。

【讨论】:

最终它是针对一个 android 应用程序而不是一个网络应用程序 - 我正在使用 Playground 来尝试展示我遇到的问题,如果它有我不熟悉的额外要求,我深表歉意。只是进行 GET 调用并传递访问令牌应该是所需要的,不是吗? code.google.com/p/google-api-java-client/wiki/OAuth2 developers.google.com/accounts/docs/OAuth2 这没有帮助。我仍然不确定为什么我能够在 Playground 中使用 OAuth 访问令牌来调用例如Google Plus API,但不是 Youtube 的。我错过了什么? 仅供参考,我正在使用文档here。该文档中的代码只是一个 GET 调用,其中访问令牌作为 URL 中的参数 -> 这与 Playground 所做的有什么不同?而且我们知道这不是访问令牌的问题(因为它适用于其他 API 并且范围是正确的)所以我看不出问题可能是什么,或者为什么我需要继续创建客户端 ID路线。 我不确定 Playground 发生了什么,如果我不指定自己的 OAuth 凭据,我只会收到 YouTube API 的 403 错误。但是您的应用程序中是否有同样的问题?如果你得到一个有效的访问令牌,你应该能够访问 API,只需在 URL 中传递它。

以上是关于来自 Youtube API 的 OAUTH 凭据无效的主要内容,如果未能解决你的问题,请参考以下文章

Youtube Data API v.3 - 全自动 oAuth 流程(Python)?

突然在 YouTube V3 API 上获得 Oauth 2.0 同意的 403(禁止)

来自 oauth2 安全休息 Web 服务的 Spring 休息服务 api 调用

使用现有凭据向 youtube 数据 api 发出请求

向具有OAuth凭据的WSO2 API管理器添加API

Youtube Data API C# - 无需请求用户凭据即可使用