Google 翻译 API returns 403 (PHP)
Google Translate API returns 403 (PHP)
问题是关于Google翻译API
我设置了一个项目并打开了计费(账户上有一些钱)
我为服务器应用程序创建了一个密钥(也尝试使用浏览器密钥)并添加了我拥有的所有 3 个 IP(家庭和 2 个服务器)
我看到的:
它确实适用于 apis-explorer 和浏览器地址栏 (https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key=MY_KEY)
如果我尝试从 PHP 代码中获取相同的 URL,它会出现 returns 403 错误:
$apiKey = 'MY_KEY';
$url = 'https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key=' 。 $api 密钥。 '';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 真);
$response = curl_exec($handle);
curl_close($句柄);
print_r(json_decode($response, true));
三个结果:
Array (
[error] => Array (
[errors] => Array (
[0] => Array (
[domain] => usageLimits
[reason] => ipRefererBlocked
[message] => 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 API key configuration if request from this IP or referer should be allowed.
[extendedHelp] => https://console.developers.google.com
))
[code] => 403
[message] => 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 API key configuration if request from this IP or referer should be allowed.
))
我检查了 IP 几十次,尝试使用允许 URL 的浏览器密钥作为引用。
没主意了。
感谢管理员,他们帮助解决了问题。
默认情况下 - curl 使用我们的 ipv6 地址...
所以我们这里有三个选项:
curl_setopt($handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
将 ipv6 地址添加到允许列表
为服务器关闭 ipv6
我必须更加注意并记住 ipv6 :-)
有人告诉我,只需从允许编辑的 IP 选项中删除所有 Ip 即可解决此问题。这使得它 它不太安全 ,但它会接受之后的所有 IP。
问题是关于Google翻译API
我设置了一个项目并打开了计费(账户上有一些钱)
我为服务器应用程序创建了一个密钥(也尝试使用浏览器密钥)并添加了我拥有的所有 3 个 IP(家庭和 2 个服务器)
我看到的:
它确实适用于 apis-explorer 和浏览器地址栏 (https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key=MY_KEY)
如果我尝试从 PHP 代码中获取相同的 URL,它会出现 returns 403 错误:
$apiKey = 'MY_KEY';
$url = 'https://www.googleapis.com/language/translate/v2/detect?q=an%20english%20text&key=' 。 $api 密钥。 '';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 真);
$response = curl_exec($handle);
curl_close($句柄);
print_r(json_decode($response, true));
三个结果:
Array (
[error] => Array (
[errors] => Array (
[0] => Array (
[domain] => usageLimits
[reason] => ipRefererBlocked
[message] => 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 API key configuration if request from this IP or referer should be allowed.
[extendedHelp] => https://console.developers.google.com
))
[code] => 403
[message] => 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 API key configuration if request from this IP or referer should be allowed.
))
我检查了 IP 几十次,尝试使用允许 URL 的浏览器密钥作为引用。 没主意了。
感谢管理员,他们帮助解决了问题。 默认情况下 - curl 使用我们的 ipv6 地址...
所以我们这里有三个选项:
curl_setopt($handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
将 ipv6 地址添加到允许列表
为服务器关闭 ipv6
我必须更加注意并记住 ipv6 :-)
有人告诉我,只需从允许编辑的 IP 选项中删除所有 Ip 即可解决此问题。这使得它 它不太安全 ,但它会接受之后的所有 IP。