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

时间:2015-01-29 13:26:41

标签: api curl google-custom-search

我的谷歌控制台中有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地址。

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

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

2 个答案:

答案 0 :(得分:3)

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

(不得不在网址周围添加撇号)

答案 1 :(得分:1)

如果其他一切都失败了,你可以抓一个谷歌搜索页面并解析结果?像这样(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。

的列表项中