我正在尝试使用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
}
});
答案 0 :(得分:147)
您必须启用一些API(在新的Google控制台中)才能使内容符合预期。
转到https://console.developers.google.com并确保在“API”下启用了以下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时遇到了同样的问题。这对我有用:
确保在API控制台中启用了以下API:
确保在您的应用程序中正确定义API所需的范围。对于Youtube,请使用访问API调用所需的范围yuo
确保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。”
请查看我的附件以查看更多信息
答案 9 :(得分:1)
您必须启用一些API才能使事情按预期工作。
首先转到https://console.developers.google.com并确保&#34; API&#34;您已启用 Contacts API 和 Google+ API 。
完成后,您将不再看到该错误消息。
答案 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;
并且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"
}
}