2013-07-01 180 views
1

我注册我的应用程序与YouTube的Android应用程序,并获得了一个API密钥。然后我试图让通过我的浏览器的API调用来尝试这样的:Youtube API密钥 - accessNotConfigured错误

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数据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

输入这个网址

谢谢, Alex

回答

1

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

我们最近published a video playlist解释如何注册一个简单的密钥和客户端ID /客户端秘密运行一些样本。

你需要做的是:

  1. 注册客户端ID /客户端密钥
  2. 通过三个足式OAuth 2.0授权流去,并得到一个访问令牌
  3. 使用访问令牌进行API调用

我们将在某个关于使用OAuth Playground生成访问令牌的点上发布视频。

+0

@lkai蓝比你的视频制作得很好。我用它们来获取cliendId并启用不同的所需服务。但我仍然得到未经授权或未配置的错误。我扩展了我的原始问题以显示网址和错误。任何想法我可能做错了吗? – Genadinik

1

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

这里是您可以使用,可以让你浏览它,只要你打开认证右上角

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

+0

我不应该使用mine = true吗?另外,我试图拉的YouTube频道实际上并不是我的。这是一个很受欢迎的YouTube节目。我怎么能这样做? – Genadinik

1
  1. 你确定你正在经历的OAuth2过程的链接在你的应用程序中获得OAuth2密钥?
  2. 另外在开发控制台的服务下,您是否启用了YouTube Data API v3?
+0

@Inbahim我如何确保我正在浏览OAuth2?是的,我确实启用了YouTube Data API v3。 – Genadinik

+0

查看第129行以查看它是如何创建通过OAuth2的凭证https://github.com/youtube/ytd-android/blob/master/src/com/google/ytdl/MainActivity.java#L129 –

+0

如果您是只是尝试从浏览器中,检查这一个正确的电话来获得OAuth2令牌。 https://developers.google.com/youtube/v3/guides/authentication –

2

合成一些不同的东西,在原有基础上的海报的意见,其他答案:

Also, the YouTube channel I am trying to pull isn't actually mine. It is a popular YouTube show. How could I do that?

要做出的API调用youtube.channels.list(),你可以在两个参数中的一个通过检索任意频道的频道信息。 (你不想使用mine=true因为你说你不是想找回自己的频道。)

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

您还需要包含part=参数的值。 part="snippet"通常就足够了。您不需要必须通过OAuth 2流进行此类API调用,并且您可以提供一个有效的API Key,该API Key已启用YouTube Data API v3。 Ikai发布的视频系列是一个很好的注册该API Key的指南。

这里有一个youtube.channels.list(part="snippet", forUsername="GoogleDevelopers")电话的工作示例,使用交互式API浏览器:

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应该可以帮助你开始。

0

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

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