YouTube API:com.google.api.client.googleapis.json.GoogleJsonResponseException:403 Forbidden

时间:2015-02-04 10:06:18

标签: android youtube youtube-api

我是YouTube API的新手。我已经在我的eclipse中从github下载并导入了yt-direct-lite youtube android项目。一切都好。但是,当我运行该项目时,它会吐出/弹出错误消息:

  

[错误]未配置访问权限:您的项目未启用API(youTube Data API)。请使用google开发者控制台更新您的配置。

但是,我已经启用了Google+ API以及YouTube Data API v3。

另外,我已经生成了API密钥。所有的事情都很好,但是当它在项目中登录Google / Gmail帐户时。此外,火灾低于例外。

02-04 15:06:38.553: E/TetsProject(8413): Error
02-04 15:06:38.553: E/TetsProject(8413): com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
02-04 15:06:38.553: E/TetsProject(8413): {
02-04 15:06:38.553: E/TetsProject(8413):   "code": 403,
02-04 15:06:38.553: E/TetsProject(8413):   "errors": [
02-04 15:06:38.553: E/TetsProject(8413):     {
02-04 15:06:38.553: E/TetsProject(8413):       "domain": "usageLimits",
02-04 15:06:38.553: E/TetsProject(8413):       "message": "Access Not Configured. The API (YouTube Data API) is not enabled for your project. Please use the Google Developers Console to update your configuration.",
02-04 15:06:38.553: E/TetsProject(8413):       "reason": "accessNotConfigured",
02-04 15:06:38.553: E/TetsProject(8413):       "extendedHelp": "https://console.developers.google.com"
02-04 15:06:38.553: E/TetsProject(8413):     }
02-04 15:06:38.553: E/TetsProject(8413):   ],
02-04 15:06:38.553: E/TetsProject(8413):   "message": "Access Not Configured. The API (YouTube Data API) is not enabled for your project. Please use the Google Developers Console to update your configuration."
02-04 15:06:38.553: E/TetsProject(8413): }
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.ytdl.MainActivity$3.doInBackground(MainActivity.java:417)
02-04 15:06:38.553: E/TetsProject(8413):    at com.google.ytdl.MainActivity$3.doInBackground(MainActivity.java:1)
02-04 15:06:38.553: E/TetsProject(8413):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-04 15:06:38.553: E/TetsProject(8413):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-04 15:06:38.553: E/TetsProject(8413):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-04 15:06:38.553: E/TetsProject(8413):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-04 15:06:38.553: E/TetsProject(8413):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-04 15:06:38.553: E/TetsProject(8413):    at java.lang.Thread.run(Thread.java:856)
02-04 15:06:38.633: I/brcm-gr(8413): [gralloc_lock]: new usage 0x933

我不知道它有什么问题?

3 个答案:

答案 0 :(得分:3)

我在一些RnD之后解决了这个问题。事情是第一位的 启用youtubeapi v3和google + api,然后转到凭据,然后再生成Android API密钥。

首先点击“创建新客户端ID”生成客户端ID 然后选择已安装的应用程序并选择Android下面你必须给出你的app和sha1指纹的确切包名,然后选择深层链接,最后创建客户端ID。

创建后,然后为播放器youtube视频创建android api密钥。然后你的api密钥将正常工作。请记住,在填写您的包裹名称时,您的包裹名称将与eclipe或studio中的应用程序相同。

如果在创建客户端ID后,您更改了包名称,那么您的密钥将无效。请记住pckg名称在此处受到限制,不必更改。

答案 1 :(得分:1)

我有类似的问题..它是通过使用浏览器api密钥解决并允许管理控制台中的所有引用... ..

管理控制台 Api& Auth - 创建新的api密钥,就像你为Android创建一个..但是选择浏览器密钥..按照步骤,当它要求引用时只需保留它通过这样做你允许所有引用者使用该密钥访问..我希望这有助于:)

答案 2 :(得分:0)

我将Android Key替换为Browser key。它帮助了我和现在有效。