获取错误403:未配置访问权限。请使用Google Developers Console激活项目的API

时间:2014-04-04 18:10:03

标签: javascript youtube-api youtube-javascript-api

我正在尝试使用Youtube API从特定频道中提取所有视频。我在Google Developers Console中设置了该项目并获得了API浏览器密钥。我启用了YouTube Data API v3,为了安全起见,我启用了YouTube Analytics API。

我不知道我得到了什么错误。任何人都可以帮助我。

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "accessNotConfigured",
    "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
   }
  ],
  "code": 403,
  "message": "Access Not Configured. Please use Google Developers Console to activate the API for your project."
 }
}

代码我正在使用。它还没有做任何事情,只是尝试获取数据。

jQuery.getJSON('https://www.googleapis.com/youtube/v3/channels?part=UncleBens&id=UncleBens&key=AIzaSyDXD80S1mFHH2HSZFxLemkae-_Cl_nY5Xk', function(data){
    console.log(data);
    for(var i=0; i<data.data.items.length; i++) {
       console.log(data.data.items[i].title); // title
       console.log(data.data.items[i].description); // description
    }
});

14 个答案:

答案 0 :(得分:147)

您必须启用一些API(在新的Google控制台中)才能使内容符合预期。

转到https://console.developers.google.com并确保在“API”下启用了以下API:

  1. “Contacts API”
  2. “Google+ API”

答案 1 :(得分:51)

尝试将“Referers”设置为“允许任何引用者”为您的项目(只是将该字段留空)在Google Developers Console中,如果它不是那样的话。

要执行此操作,请转到Google Developers Console并打开API&amp; Auth / Credentials并单击“编辑允许的引用”以清空输入字段。

答案 2 :(得分:14)

我遇到了同样的问题。虽然我不确定这背后的原因和逻辑,但以下步骤有效 -

1)我将引用字段留空(允许任何引用)。然而,仅此一点并不奏效。 2)我重新生成了浏览器密钥。这就行了。

希望这有帮助。

答案 3 :(得分:8)

我今天早上遇到了同样的问题,但我只是想用谷歌帐户登录。我得到了同样的确切信息。

对我有用的是将这两个API放在上面: Google+ API 联系人API

在您的控制台中

https://console.developers.google.com/project/your-project-id/apiui/api

我不想清空“允许的引用者字段”,因为我更喜欢控制人们可以登录我的应用程序。我没有必要更改我的API密钥。 仅供记录,我使用的是Spring Social Google 1.1.0

答案 4 :(得分:4)

我遇到了同样的问题。我尝试清空推荐列表,但这并没有解决问题。然后我重新生成了钥匙。新密钥提供了一个过期密钥&#34;错误。所以我回到了过时的密钥,现在有效。

答案 5 :(得分:4)

我在使用Google Analytics的Management API时遇到了同样的问题。这对我有用:

  1. 确保在API控制台中启用了以下API:

    • YouTube Data API v3
    • YouTube Analytics API
    • 通讯录API
    • Google+ API
  2. 确保在您的应用程序中正确定义API所需的范围。对于Youtube,请使用访问API调用所需的范围yuo

  3. 确保API控制台中Google Project的CLIENT_ID和CLIENT_SECRET是客户端应用程序中定义的正确。

答案 6 :(得分:3)

确保&#39; Youtube Data API V3&#39;已为您的项目启用。你可以在&#39; API&amp; amp;验证&#39; - &GT; &#39;的API&#39 ;.
此外,在为项目启用Youtube Data API之后,请等待一分钟,然后再使用API​​密钥触发请求。

答案 7 :(得分:2)

在api和https://console.developers.google.com中的身份验证凭据只留下服务器应用程序的密钥编辑允许的ips为空这将会起作用

答案 8 :(得分:2)

如果您使用Public API access进行操作,则必须将服务器IP添加到“允许的IP”列表中(选择“项目” - >“API和身份验证 - &gt;凭据”)。如果没有,您将收到上述错误:“未配置访问权限。请使用Google Developers Console激活项目的API。”

请查看我的附件以查看更多信息 enter image description here

答案 9 :(得分:1)

您必须启用一些API才能使事情按预期工作。

首先转到https://console.developers.google.com并确保&#34; API&#34;您已启用 Contacts API Google+ API

完成后,您将不再看到该错误消息。

可以找到更多 -

  1. https://github.com/zquestz/omniauth-google-oauth2/issues/111
  2. https://www.joomlapolis.com/forum/6-news-and-publicity/229505-configuring-cb-connect-7x#263260

答案 10 :(得分:0)

我遇到了同样的问题,对我有用的是使用“服务器密钥”而不是“浏览器密钥”。不知道为什么这很重要,因为我在两种情况下都是从浏览器发出请求,但它有效:)

答案 11 :(得分:0)

设置&#34; Referers&#34; to&#34;任何引用者允许&#34;为您的项目(只是将该字段留空)

进入你的控制台(https://console.developers.google.com/project)  并打开Api&amp; auth&gt;&gt;凭据并点击&#34;编辑允许的参考者&#34;清空输入字段。硬刷新查询

工作很好。

答案 12 :(得分:0)

我遇到了同样的问题,我的问题是因为我的项目 Google API

中有不同的名称

这是Android的一个例子

    public MakeRequestTask(GoogleAccountCredential credential) {
            HttpTransport transport = AndroidHttp.newCompatibleTransport();
            JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
            mService = new com.google.api.services.calendar.Calendar.Builder(
                    transport, jsonFactory, credential)
                    .setApplicationName("Google Calendar API Example")
                    .build();
        }

此处的名称为&#34; Google Calendar API示例&#34;

enter image description here

并且Google API中的名称是&#34;应用示例&#34;

要解决此问题,我将项目中的名称更改为

        public MakeRequestTask(GoogleAccountCredential credential) {
            HttpTransport transport = AndroidHttp.newCompatibleTransport();
            JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
            mService = new com.google.api.services.calendar.Calendar.Builder(
                    transport, jsonFactory, credential)
                    .setApplicationName("App Example")
                    .build();
        }

答案 13 :(得分:0)

好的,这很老了,但我为我的案子弄清楚了,我认为这可能对其他人有帮助。我去了oauth,它似​​乎解决了。

真正的问题是,如果您使用不受限制的密钥(并且可能取消了对已启用的api的连接),则会关联一个结算帐户;的API应该工作。如果它不受限制地运行,那么您在正确的轨道上。

一旦将其限制为android,它将再次使用该密钥失败,直到您对应用程序进行签名。我发现最简单的方法是在gradle文件中为android下的变体使用签名配置。

signingConfigs {
    debug {
        storeFile file("/users/xxxxxxxxxx/Android/keystores/google_demos/debugandroid.jks")
        storePassword "xxxxxxxxxx"
        keyAlias "com.example.xxxxxxxxxx"
        keyPassword "xxxxxxxx"
    }
}