Google翻译API访问错误:(403)访问未配置

时间:2013-03-28 23:38:04

标签: php google-api google-translate

这是我第一次尝试使用Google API,所以我可能会错过一些非常简单的事情。

我的API访问权限已启用,我已启用了此功能的所有基于Web的设置,为Web应用程序设置了简单API访问和客户端ID等。

我正在使用Google提供的PHP库:http://code.google.com/p/google-api-php-client/

由于我的代码不起作用,我违反了他们的示例代码,因为通常工作可以解决我的问题。我在下面复制了他们的代码:

require_once '../../src/Google_Client.php';
require_once '../../src/contrib/Google_TranslateService.php';

$client = new Google_Client();
$client->setApplicationName('Translation tool');

// Visit https://code.google.com/apis/console?api=translate to generate your
// client id, client secret, and to register your redirect uri.
$client->setDeveloperKey('XXXXXXXXXXXXXXXX');
$service = new Google_TranslateService($client);

$langs = $service->languages->listLanguages();
print "<h1>Languages</h1><pre>" . print_r($langs, true) . "</pre>";

$translations = $service->translations->listTranslations('Hello', 'hi');
print "<h1>Translations</h1><pre>" . print_r($translations, true) . "</pre>";

我有:

  • 检查了开发人员密钥,即API密钥
  • 检查了允许的引用者
  • 将引用设置为包含 .DOMAIN.com /
  • 将引用设置为包含IP地址
  • 尝试包括OAuth2客户端ID,密码等

这些都没有奏效。我得到的错误如下:

Fatal error: Uncaught exception 'Google_ServiceException' with message 'Error calling GET https://www.googleapis.com/language/translate/v2/languages?key=XXXXXXXXXXXXXXXX: (403) Access Not Configured' in /home/google-api-php-client/src/io/Google_REST.php:66 Stack trace: #0 /home/google-api-php-client/src/io/Google_REST.php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 /home/google-api-php-client/src/service/Google_ServiceResource.php(186): Google_REST::execute(Object(Google_HttpRequest)) #2 /home/google-api-php-client/src/contrib/Google_TranslateService.php(39): Google_ServiceResource->__call('list', Array) #3 /home/google-api-php-client/examples/translate/simple.php(13): Google_LanguagesServiceResource->listLanguages() #4 {main} thrown in /home/google-api-php-client/src/io/Google_REST.php on line 66

我正在失去用更直接的东西编写代码的意愿。有什么可能是问题的建议吗?

2 个答案:

答案 0 :(得分:1)

403错误几乎肯定与Simple API Key有关。例如,如果它是一个使用限制,那么消息就会这样说....

仔细检查并确保使用为服务器访问列出的Simple API密钥,并将其设置为任何IP。特定IP应该可以工作,但可能取决于您的服务器的设置方式。

您甚至可能希望生成一个新密钥,以确保您拥有的密钥有效。从长远来看,具体的IP将是最好的。

使用自定义搜索API做了同样的事情,如果输入了浏览器密钥,当我撞到它时,它会在墙上造成很大的影响。 。您不应该只需要任何OAuth设置来使基础工作正常运行。

答案 1 :(得分:0)

我遇到了同样的问题但是使用了分析API。在我的情况下,我在允许的IP地址中列出了服务器的IP。
所以,当我从google api的控制台允许的ip地址中删除所有IP地址时,它就开始工作了。