我的谷歌控制台中有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。
答案 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。
的列表项中