我正在使用google php api来管理翻译。
我按照google:https://cloud.google.com/translate/docs/reference/libraries#client-libraries-install-php
中的步骤操作我认为这很有效,因为我把它放在我的php命令行中:
$translate = new Google\Cloud\Translate\TranslateClient(['projectId' => 'projectid-183521' ]);
$result = $translate->translate('Hola mundo', [
'target' => 'en',
'source' => 'es',
'format' => 'text'
]);
结果:
[
"source" => "es",
"input" => "Hola mundo",
"text" => "Hello World",
"model" => null,
]
但是当我在我的php项目(laravel)中运行时:
production.ERROR: Google\Cloud\Core\Exception\ServiceException: {
"error": {
"code": 403,
"message": "The request is missing a valid API key.",
"errors": [
{
"message": ".",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
我在AWS上使用:php7.1,apache2.4,ubuntu 16.04,带有负载均衡器。
任何想法如何解决这个问题都会很棒!谢谢!
答案 0 :(得分:3)
由于@JL-HN表示问题是关于环境变量GOOGLE_APPLICATION_CREDENTIALS,出于安全原因apache不读取ubuntu环境变量,所以我在Apache * .conf文件中声明了环境变量:
SetEnv GOOGLE_APPLICATION_CREDENTIALS /home/mycredentials.json
并且有效!