这是我第一次尝试使用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>";
我有:
这些都没有奏效。我得到的错误如下:
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
我正在失去用更直接的东西编写代码的意愿。有什么可能是问题的建议吗?
答案 0 :(得分:1)
403错误几乎肯定与Simple API Key有关。例如,如果它是一个使用限制,那么消息就会这样说....
仔细检查并确保使用为服务器访问列出的Simple API密钥,并将其设置为任何IP。特定IP应该可以工作,但可能取决于您的服务器的设置方式。
您甚至可能希望生成一个新密钥,以确保您拥有的密钥有效。从长远来看,具体的IP将是最好的。
使用自定义搜索API做了同样的事情,如果输入了浏览器密钥,当我撞到它时,它会在墙上造成很大的影响。 。您不应该只需要任何OAuth设置来使基础工作正常运行。
答案 1 :(得分:0)
我遇到了同样的问题但是使用了分析API。在我的情况下,我在允许的IP地址中列出了服务器的IP。
所以,当我从google api的控制台允许的ip地址中删除所有IP地址时,它就开始工作了。