谷歌翻译PHP库失败与Ubuntu中的服务帐户

时间:2018-03-13 18:02:32

标签: php apache amazon-web-services google-translate

我正在使用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,带有负载均衡器。

任何想法如何解决这个问题都会很棒!谢谢!

1 个答案:

答案 0 :(得分:3)

由于@JL-HN表示问题是关于环境变量GOOGLE_APPLICATION_CREDENTIALS,出于安全原因apache不读取ubuntu环境变量,所以我在Apache * .conf文件中声明了环境变量:

SetEnv GOOGLE_APPLICATION_CREDENTIALS /home/mycredentials.json

并且有效!