【问题标题】:dailyLimitExceededUnreg error with key set in requestdailyLimitExceededUnreg 错误,请求中设置了密钥
【发布时间】:2015-03-28 18:00:25
【问题描述】:

我的谷歌控制台中有 3 个用于不同服务器的服务器密钥。

一开始似乎只有一个键可以工作,那就是我的本地 IP 地址。

在暂存服务器上使用 cURL 调试后,我发现响应是:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

这对我来说真的没有意义,因为提供了密钥,并且密钥肯定设置了适当的 IP 地址。

所以我开始了调试过程,并为登台服务器尝试了一些 cURL IP 发现工具。

突然 icanhazip.com 给了我服务器的 IPv6 地址,在将其添加到允许的 IP 列表后,它突然起作用了。如果你问我一些奇怪的行为。

所以我仍然需要修复我的生产服务器,但我发现这个服务器没有 IPv6 地址。同一个工具为我返回 IPv4 地址,在我的控制面板中我也没有设置 IPv6 地址。

由于谷歌没有大的支持平台,我希望这里有人遇到过同样的问题。

我正在尝试使用 google 的自定义搜索 API。

【问题讨论】:

    标签: api curl google-custom-search


    【解决方案1】:

    显然我在我的服务器上以错误的方式使用了 cURL。它现在就像一个魅力!

    (必须在 URL 周围添加撇号)

    【讨论】:

    • 我遇到了这个确切的问题,这让我发现我的服务器正在使用 IPv6 地址。我不知道 cURL 与撇号的行为不同。
    • 不过,我的最终解决方案是强制 cURL 使用 IPv4:stackoverflow.com/questions/25645634/… 这完全避开了必须向 Google 注册 IPv6 的问题。
    【解决方案2】:

    如果一切都失败了,你可以只抓取一个谷歌搜索页面并解析结果吗?像这样的东西(PHP):

    $ch = curl_init ('');
    
    $query = 'Pepijn';
    
    curl_setopt ($ch, CURLOPT_URL, 'http://www.google.com/search?hl=en&tbo=d&site=&source=hp&q='.$query);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    $output = curl_exec($ch);
    curl_close($ch);
    
    echo $output;
    

    您需要对所有返回的 html 和所有内容进行“排序”,但结果基本上在 #search ol 中的列表项中。

    【讨论】:

    • 也考虑过这种可能性,如果我能让它工作会更好。你不认为谷歌有某种机器人保护吗?
    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多