Youtube API密钥 - accessNotConfigured错误

时间:2013-07-01 16:39:48

标签: youtube youtube-api android-youtube-api youtube-data-api

我在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

和我在浏览器中输入此网址时原来的结果相同

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

谢谢, 亚历

5 个答案:

答案 0 :(得分:2)

根据原始海报对其他答案的评论,合成一些不同的东西:

  

此外,我试图提取的YouTube频道实际上不是我的。它   是一个流行的YouTube节目。我怎么能这样做?

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

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

您还需要为part=参数添加值。 part="snippet"通常就足够了。您必须通过OAuth 2流程才能进行此类API调用,您只需提供一个有效的API密钥,该密钥已启用了YouTube Data API v3。 Ikai发布链接的视频系列是注册该API密钥的良好指南。

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

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

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

由于您在询问Android应用程序,因此使用Java客户端库来发出请求而不是请求原始URL可能是个好主意。 sample code on this page应该可以帮助您入门。

答案 1 :(得分:1)

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

我们最近published a video playlist解释了如何注册简单密钥和客户端ID /客户端密钥运行一些示例。

您需要做的是:

  1. 注册客户端ID /客户端密钥
  2. 完成三脚OAuth 2.0授权流程并获取访问令牌
  3. 使用该访问令牌进行API调用
  4. 我们会在某个时候发布关于使用OAuth Playground生成访问令牌的视频。

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

  1. 您确定要在应用程序中使用OAuth2进程并获取OAuth2密钥吗?
  2. 此外,在开发控制台的“服务”下,您是否启用了YouTube Data API v3?

答案 4 :(得分:0)

我解决了这个问题,因为我错过了Google Console Dashboard上的配置。

如果您使用google api v3,这是解决该问题的简单方法,您只需通过Google控制台信息中心启用youtube api即可。 https://console.developers.google.com