dailyLimitExceededUnreg 错误,请求中设置了密钥

dailyLimitExceededUnreg error with key set in request

我的 google 控制台中有 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 地址。同样的工具 returns 我的 IPv4 地址,在我的控制面板中我也没有设置 IPv6 地址。

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

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

如果一切都失败了,你可以抓取一个 google 搜索页面并解析结果吗?像这样 (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;

您需要 "sort" 通过所有返回的 html 和所有,但结果基本上在 #search ol.

的列表项中

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

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