【发布时间】:2021-12-31 00:19:15
【问题描述】:
我对 Google Cloud Translate API 有一个令人沮丧的问题。
我正确设置了对某些域的密钥限制,包括 *.example.com/ *(末尾没有空格)
我在 URL https://www.example.com/translate 上启动脚本,我收到以下消息:
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "API_KEY_HTTP_REFERRER_BLOCKED",
"domain": "googleapis.com",
当我取消限制时,一切正常,但我需要限制以避免误用/滥用。
此外,我对其他 Google App API(地图、身份验证等)使用相同的 API 密钥,并且它在该域中完美运行...
好奇怪。
您有什么想法或方法可以更好地调查这个问题吗? 我怎么知道谷歌看到的推荐人? (或任何外部服务)
非常感谢!!
编辑:
PHP 代码:
require_once(APPPATH . "libraries/GoogleTranslate/vendor/autoload.php");
require_once(APPPATH . "libraries/GoogleTranslate/vendor/google/cloud-translate/src/V2/TranslateClient.php");
$translate = new TranslateClient([
'key' => 'xXXXx'
]);
// Translate text from english to french.
$result = $translate->translate('Hello world!', [
'target' => 'fr'
]);
echo $result['text'];
完整的错误信息:
Type: Google\Cloud\Core\Exception\ServiceException
Message: {
"error": { "code": 403, "message": "Requests from referer
\u003cempty\u003e are blocked.",
"errors": [ { "message": "Requests from referer \u003cempty\u003e are blocked.", "domain": "global", "reason": "forbidden" } ],
"status": "PERMISSION_DENIED",
"details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "API_KEY_HTTP_REFERRER_BLOCKED",
"domain": "googleapis.com",
"metadata": { "service": "translate.googleapis.com", "consumer": "projects/XXXXX" } } ] } }
Filename: htdocs/application/libraries/GoogleTranslate/vendor/google/cloud-core/src/RequestWrapper.php
Line Number: 368
【问题讨论】:
-
你是如何添加限制的?你有没有遵循的指南?
-
@Latra 感谢您的回复!我正在通过 Google Cloud Console => API & Credentials 添加限制您在那里创建您的密钥并定义限制,在同一页面上有一个指导方针。我尊重所有,但它不起作用。很奇怪。
-
Hmmmm 基于documentation,通配符可以用于子域和/或路径,但不能用于协议,所以可能需要指定https:
https://*.example.com/*跨度> -
@Latra 感谢您的回复,我满怀希望地实现了它,但它仍然不起作用...... :(
-
您能否提供有关您如何执行此过程的完整步骤?这可能有助于重现您的情况
标签: php google-cloud-platform google-translate google-translation-api