Youtube数据API拒绝我的服务器端请求

问题描述:

我正在开发一个应用程序,它使用来自服务器的Youtube数据API(使用node.js),所以我已经设置了服务器端凭证密钥,但是当我尝试获取数据时总是拒绝我的请求与此消息。Youtube数据API拒绝我的服务器端请求

Access Not Configured. The API is not enabled for your project, or there is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your configuration. 

我我的应用程序托管在Heroku上与附加报价卫队静,让我两个静态IP,我在谷歌开发者控制台的凭据部分已列入白名单的。我也有这个应用程序在modulus.io中托管,并且列出了他们为他们的AWS区域提供的IP范围54.0.0.0/8 ...这两个部署中的任何一个都只能在我的本地计算机上工作,并且将我的家庭外部IP列入白名单。

有趣的是,在我将54.0.0.0/8范围列入白名单后,约15分钟左右,应用程序API开始在我的Heroku主机中工作,但今天又再次停止(这可能是因为它已更改为另一个IP在他们的AWS区域内......)。

有什么办法来检查什么IP正在对Youtube数据API做请求吗?我可以在开发人员控制台中看到达到API的请求并被拒绝为“错误”,至少我知道他们正在获取请求...

任何想法?

感谢

编辑: 部分解决。请参阅下面的答案。

有一个简单的服务,我发现您返回公网IP:

http://api.ipify.org?format=json

你可以路由添加到您的应用程序,你可以从你的浏览器击中。路由处理程序然后向该服务发出请求并返回结果。然后,您可以定期检查您的应用的实际公有IP,并相应地调整白名单。

// Example express + request 
app.get('/ip', function(req, res) { 
    request({ uri: 'http://api.ipify.org?format=json' }, function(err, response, body) { 
    res.send(body); 
    }); 
}); 
+0

我们已经在模数中解决了这个问题,应用程序是由joyent服务器而不是amazon aws来部署的。我改变了它,并使用这个IP范围54.0.0.0/8正常工作。无论如何,感谢您的帮助,我将为另一场合保存该服务。 – isramartinez 2015-01-15 22:52:33

Modulus.io中托管的应用程序的问题现在已解决。该应用程序在Joyent服务器中默认运行,但我将其更改为Amazon AWS区域,并将IP范围54.0.0.0/8列入白名单.Google正在接受我对API的所有请求。

尽管如此,在heroku中的应用程序仍然不能正常工作,但正如在一项服务中工作,我将停止在另一项服务中进行调查。