缺少 Google Cloud 的 API 密钥



我正在尝试使用Google的PHP自然语言API,按照说明进行操作后,我在编写的应用程序中遇到错误:

致命错误:未捕获的 Google\Cloud\Core\Exception\ServiceException:{ "错误": { "代码": 403, "消息": "请求缺少有效的 API key.", "status": "PERMISSION_DENIED" } }

我已经下载了帐户密钥文件,运行了导出,但收到 403 错误。

我已经在项目文件夹中创建了一个指向该文件的符号链接,运行导出,但出现 403 错误。

我将导出放在".bash_profile"文件中,退出终端会话,但出现 403 错误。

通过设置 环境变量GOOGLE_APPLICATION_CREDENTIALS。取代 [PATH] 包含包含服务的 JSON 文件的文件路径 帐户密钥,以及文件名的 [FILE_NAME]。仅此变量 适用于当前 shell 会话,因此,如果打开新会话, 再次设置变量

当我运行时:echo $GOOGLE_APPLICATION_CREDENTIALS导出不存在,所以我再次运行它,但我收到 403 错误。

我按照文档进行操作,我已经浏览了三次,每次都收到相同的 403 错误。

我没有看到任何说明要求我在应用程序中存储 API 密钥的字符串值,但我发现很多人建议这样做,但没有提供如何或在哪里的示例。

因此,欢迎一些建议!

根本不使用导出;而你的~/.bashrc不是Apache的.bashrc

但是将文件的路径直接添加到PHP代码中;例如,添加到config.php中。

或使用putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/[FILE_NAME].json');

同时使用.htaccess阻止对该文件的 HTTP 访问。

或者甚至可以使用.htaccess进行设置 ,类似

SetEnv GOOGLE_APPLICATION_CREDENTIALS "/var/www/[FILE_NAME].json"

最新更新