【问题标题】:Youtube data API refusing my server side requestsYoutube 数据 API 拒绝我的服务器端请求
【发布时间】:2015-03-14 04:22:36
【问题描述】:

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

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 中,并带有附加的 Quote Guard Static,它为我提供了两个静态 IP,我已在谷歌开发者控制台的凭据部分列入白名单。我还将应用程序托管在 modules.io 中,并将 IP 范围 54.0.0.0/8 列入白名单,这就是他们为他们的 AWS 区域提供的内容......这两种部署中的任何一个都只能在我的本地机器上工作,我的家庭外部 IP 被列入白名单.

有趣的是,昨天在我将 54.0.0.0/8 范围列入白名单大约 15 分钟后,应用程序 API 开始在我的 Heroku 主机中运行,但今天又停止了(这可能是因为它已更改为内部的另一个 IP他们的 AWS 区域或其他什么...)。

有什么方法可以检查哪些 IP 正在向 Youtube 数据 api 发出请求?我可以在开发人员控制台中看到到达 API 的请求并被拒绝为“错误”,至少我知道他们正在收到请求...

有什么想法吗??

谢谢

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

【问题讨论】:

    标签: heroku google-api youtube-api youtube-data-api


    【解决方案1】:

    我发现有一个简单的服务可以返回你的公共 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);
      });
    });
    

    【讨论】:

    • 我们已经在模数中解决了这个问题,应用程序是由joyent服务器而不是amazon aws部署的。我对其进行了更改,并且在此 IP 范围 54.0.0.0/8 上运行良好。无论如何,感谢您的帮助,我将把这项服务留到另一个场合。
    【解决方案2】:

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

    尽管如此,heroku 中的应用程序仍然无法运行,但正如在一项服务中运行一样,我将停止对另一项服务进行调查。

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 2012-04-18
      • 2023-03-27
      • 2023-02-14
      • 1970-01-01
      • 2020-03-24
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多