1

我在 YouTube 上注册了一个 Android 应用程序,并获得了一个 API 密钥。然后我尝试通过我的浏览器进行 api 调用来尝试这样的操作:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=my_api_key

我得到了这个错误:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured"
   }
  ],
  "code": 403,
  "message": "Access Not Configured"
 }
}

但我确实配置了我的帐户并将服务设置为使用 YouTube Data API v3 知道我还需要做什么吗?

编辑:创建 clientId 并启用所有需要的服务后,我得到了这个响应:

{
 "error": {
  "errors": [
   {
    "domain": "youtube.parameter",
    "reason": "authorizationRequired",
    "message": "Unauthorized",
    "locationType": "parameter",
    "location": "mine"
   }
  ],
  "code": 401,
  "message": "Unauthorized"
 }
}

到我粘贴到浏览器中的这个网址:

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_server_apps

与我在浏览器中输入此 url 时的结果相同

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&mine=true&key=key_for_browser_apps

谢谢,亚历克斯

4

5 回答 5

2

根据原始发帖人对其他答案的评论,综合一些不同的东西:

此外,我试图拉的 YouTube 频道实际上不是我的。这是一个受欢迎的 YouTube 节目。我怎么能那样做?

您要进行的 API 调用是youtube.channels.list(),您可以传入两个参数之一来检索任意通道的通道信息。(您不想使用mine=true,因为您说您不想检索自己的频道。)

  • forUsername="LEGACY_USERNAME"如果您知道 YouTube 频道的旧用户名,则可以使用,例如“GoogleDevelopers”或“LadyGagaVEVO”。
  • id="UC..."如果您碰巧知道频道的 ID(通常以“UC”开头),则可以使用。

您还需要包含part=参数的值。part="snippet"通常就足够了。对于此类 API 调用,您无需通过 OAuth 2 流程,只需提供启用了 YouTube 数据 API v3 的有效 API 密钥即可。Ikai 发布链接的视频系列是注册该 API 密钥的一个很好的指南。

youtube.channels.list(part="snippet", forUsername="GoogleDevelopers")这是一个使用交互式 API Explorer 调用的工作示例:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=snippet&forUsername=GoogleDevelopers

它对应于以下 URL:https ://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername=GoogleDevelopers&key= {YOUR_API_KEY}

由于您询问的是 Android 应用程序,因此最好使用 Java 客户端库来发出请求,而不是请求原始 URL。此页面上的示例代码应该可以帮助您入门。

于 2013-07-09T17:08:38.953 回答
1

API 密钥是简单的 API 密钥,还是 OAuth 2.0 访问令牌?该 API 调用需要 OAuth 2.0 授权才能工作。

我们最近发布了一个视频播放列表,解释了如何注册一个简单的密钥和一个客户端 ID/客户端密码来运行一些示例。

你需要在这里做的是:

  1. 注册客户端 ID/客户端密码
  2. 通过三足 OAuth 2.0 授权流程并获取访问令牌
  3. 使用该访问令牌进行 API 调用

我们将在某个时候发布有关使用OAuth Playground生成访问令牌的视频。

于 2013-07-02T15:31:02.523 回答
1

要使用 Mine=true,您需要拥有 Oauth2 令牌以及用于获取用户数据。

这是一个您可以使用的链接,只要您打开右上角的身份验证,您就可以浏览它

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.channels.list?part=contentDetails&mine=true&_h=1&

于 2013-07-05T14:38:22.967 回答
1
  1. 您确定您正在通过应用程序中的 OAuth2 流程并获得 OAuth2 密钥吗?
  2. 同样在开发控制台的“服务”下,您是否启用了 YouTube 数据 API v3?
于 2013-07-05T20:55:47.577 回答
0

我解决了这个问题,因为我错过了Google Console Dashboard.

如果您使用 google api v3,这是解决该问题的简单方法,您只需youtube api通过 Google Console Dashboard 启用。https://console.developers.google.com

于 2016-09-16T16:23:08.720 回答