Google API:客户端的无效来源:尚未将客户端ID“ ID”的网址列入白名单


95

我需要帮助。我没有找到问题的答案。我尝试使用Google搜寻,并尝试在其他方面询问,但从未找到答案。

我正在使用google API(Youtube数据API),并且我从google端使用示例代码,它可以正常工作,我对此非常确定。尝试启动脚本时出现错误:

详细信息:“客户端的无效来源:尚未将客户端ID“ MyID”列入“ MyURL”白名单。请转到https://console.developers.google.com/,并将此来源白名单作为项目的客户端ID。 ”

错误:“ idpiframe_initialization_failed”

我将我的网站列入白名单的问题已被接受。我不知道怎么了。我应该怎么做才能将我的域“列入白名单”(已列入白名单)

还有一个问题。我以前没有在这个问题上寻找答案。

我认为我可以在Localhost上使用代码,我认为我必须将我的本地主机地址或类似内容列入白名单。但是白名单不起作用。

  • DreamGamer

2
仍然面临着同样的问题。有没有其他解决方案来解决这个问题?
Yashu Mittal,

就我而言,使用http会导致问题。切换到https解决问题。

1
对于那些已经在授权域中添加了域的用户,只需清除站点的缓存,如果所有数据都设置为真实,它肯定可以工作。
Haritsinh Gohil

Answers:


76

遇到同样的问题,这是我解决的方法:

  1. 在您的项目上同时激活Analytics和Google Plus API
  2. 创建新的OAUTH 2.0客户端凭据
    • 在“限制”部分下添加“授权的Javascript起源
  3. 使用新的客户端ID。

请享用。


OMG非常感谢!它为我工作。我的问题之一是我使用了客户端密钥而不是客户端ID。
DreamGamer

4
我应该清理一下,如果您已经为其他端口创建了oAuth;由于某些原因,您无法重新编辑端口以使用其他端口。我基本上为新端口“创建了另一份证书”。显然,这将创建另一个令牌。因此,只需抓住它并使用它即可。您可以将两个令牌都保留在控制台中。
Sam3k

谢谢!这是反直觉的,但这是正确的答案。疯狂的是,您不能仅将所需的API添加到现有密钥中(这也不是显而易见的)。重新创建密钥的整个配置很麻烦。
beachCode

您是说要激活Googe Plus API。但是,Youtube API和Google Plus API之间是什么关系。
Yashu Mittal,

我在这里不太了解相关性,但这是唯一对我有用的东西(显然对其他人也是如此)。
Ezra Obiwale

199

我清除了缓存。然后开始工作。

在Chrome中:设置->高级->清除浏览数据->缓存的图像和文件


1
谢谢,我做对了所有事情,遇到了麻烦。
库拉

2
这对我有效,而我的网络应用程序使用Google登录。谢谢!
Sahil Lakhwani

1
几个月前发生这种情况时,我已经投票给您一次,但是您值得再... +1
howMuchCheeseIsTooMuchCheese

1
这个答案对我没有帮助。
tishma

2
正在进行很多请求。我认为其中之一正在被浏览器缓存,因此它不知道您在API控制台中所做的更改。但是我认为在打开浏览器开发工具时完全禁用缓存会更容易。大多数情况下,“网络”标签中都有一个选项(复选框)。启用后,刷新页面足以使其正常工作。
安德烈亚斯·林纳特



7

对我而言,它无需添加任何其他API(例如Google Analytics(分析))即可工作。只需确保添加完整的clientid并在隐身窗口中打开应用程序即可避免保存缓存。如果已经在常规窗口中打开了该应用程序,则1-关闭该应用程序所在的所有选项卡。2-清除缓存和cookie。在chrome中,其位于设置->密码和表单->清除浏览数据->高级(标签)->选择a)Cookie和其他网站数据以及b)缓存的图像和文件3-打开一个新的隐身窗口并测试您的应用程式。


2
无需关闭所有标签,只需打开一个隐身窗口即可。
Bert Verhees

3

该文档说不要忽略两个关键步骤(“在按照说明进行操作时,请不要忽略这两个关键步骤,这一点很重要:启用Analytics API 这对我有用:

  1. 启用Analytics API
  2. 返回您的凭据,删除以前的OAuth 2.0
  3. 现在创建具有正确来源的新OAuth

2

我还按照快速入门示例中的说明进行操作,遇到了同样的问题,尝试了此处建议的所有解决方案,都没有尝试,尝试了我能想象的一切,但没有帮助。

终于看到我复制CLIENT_ID了结尾处带有空格的。

  var CLIENT_ID = '44********-*****************.apps.googleusercontent.com ';

一旦我解决了这个问题(删除了多余的空间),它就起作用了。

我猜在这种情况下错误消息不是很准确。希望这可以帮助。


2

我犯了同样的错误:尝试了官方的快速入门示例,并收到了与您相同的错误消息。

这相当令人困惑,因为该示例比我个人需要的复杂得多:它使用OAuth进行用户登录,而不仅仅是使用API key。如果您像我一样,并且不想使用OAuth,并且只想检索一些Youtube数据,而没有任何特权操作(例如,如果您只想搜索或列出视频,频道或播放列表),则此示例为为了你。

解决方法很简单,只需要提供apiKey,而不是clientIdgapi.client.init(链接:API文档),如下所示:

const apiKey = '<my API key>';

function gooApiInitClient() {
  // Array of API discovery doc URLs for APIs used by the quickstart
  const discoveryDocs = [
    "https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"
  ];

  return gapi.client.init({
    apiKey,
    discoveryDocs
  });
}

// see: https://developers.google.com/api-client-library/javascript/reference/referencedocs
gapi.load('client', {
  callback: function() {
    // we now have gapi.client! initialize it.
    gooApiInitClient().
      then(() => {
        // we can start using the API here!
        // e.g. gapi.client.youtube.videos.list(...);
      }).then(results => { 
        // use results here....
      });
  }
});

2
我建议简化代码片段以使此答案更好。初始化调用只有4行,而这实际上是唯一发生变化的地方。其他东西没有帮助。
查理

清理了一下:)
Domi

2

我也在尝试使示例工作(从)https://developers.google.com/drive/api/v3/quickstart/js

即使将IP地址添加到了WebAPI,它仍然连续失败。

但是您必须将localhost:8000(而不仅仅是127.0.0.1:8000)添加到OAUTH中,如下所示:

OAUTH客户端

浮动在OAUTH客户端文本上,它将成为一个链接。单击该链接,您可以添加包括端口在内的URI。我的已经有127.0.0.1:8000,但没有locahost:8000。

locahost:8000

这是有趣/奇怪的事情。当我ping localhost时,我看到:

IPV6

我认为这是IPV6。

无论如何,如果我ping 127.0.0.1,我会看到预期的响应(通过IPV4)

IPV4

也许那是一条红色的鲱鱼,但是我不确定在OAUTH中输入的值是否受到它的影响。

我什至注意到的原因是,当我按照教程中的说明启动Python Web服务器时,我看到了以下内容,并认为这很奇怪: python ip地址

只有在OAUTH中添加了localhost:8000 URI后,它才起作用,但是在添加后,它就可以正常工作。


2

正如许多人在这里指出的那样,这只是浏览器缓存问题。无需创建新密钥,甚至无需清除缓存。只需在新的浏览器隐身(匿名)窗口上再试一次,它应该可以正常工作。


1

我在尝试获取Web应用程序登录时遇到类似的问题。我所做的只是从Cloud Platform重新创建OAuth客户端ID凭据。当我这样做并使用新的Client ID时,一切正常。不知道以前是什么问题,但现在一切顺利。

如果有人从Google或其他地方找到此邮件,请尝试。它可能会起作用。它将解释Ezra Obiwale的答案,因为这实际上是在添加几个API之后才创建一个新的Client ID。

如果有人知道为什么会发生这种情况的解释,将不胜感激。


0

我遇到了完全相同的问题-对我来说,解决方案是进入API管理器并启用Analytics API。不知道是什么问题,但这似乎已经解决了!


1
我启用了Analytics API,但未做任何更改。:C
DreamGamer


0

它无法正常工作的原因之一是某些登录次数超过了(100)client ID

您可以访问google API控制台页面并创建新的Oauth2客户端凭据(请记住在下添加您的应用程序网址Authorized Javascript Origins),然后使用它。


0

直到我意识到复制client_ID时,我也遇到了同样的问题,我的文件中有空白,因此我从字符串中删除了空白,现在一切正常。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.