如何将 Google Cloud Vision API 凭据密钥文件指向 yii2 框架中的 GOOGLE_APPLICATION_CREDENTIALS 变量
Posted
技术标签:
【中文标题】如何将 Google Cloud Vision API 凭据密钥文件指向 yii2 框架中的 GOOGLE_APPLICATION_CREDENTIALS 变量【英文标题】:How to point Google Cloud Vision API credential key file to GOOGLE_APPLICATION_CREDENTIALS variable in yii2 framework 【发布时间】:2019-07-03 11:08:46 【问题描述】:我想使用 Google Cloud Vision API 进行图像识别,一切都安装在我的 yii2 框架中。
我收到如下身份验证错误:
> Google\Cloud\Core\Exception\ServiceException
>
> "error":
> "code": 403,
> "message": "The request is missing a valid API key.",
> "status": "PERMISSION_DENIED"
>
>
> 1. in C:\xampp\htdocs\vofms\vendor\google\cloud-core\src\RequestWrapper.php
> at line 336
> 32732832933033133233333433533633733
如何在 yii2 框架中将我的 key.json 文件指向 GOOGLE_APPLICATION_CREDENTIALS 环境变量。
谢谢
【问题讨论】:
你为 API 使用了哪个 yii2 扩展?请提及链接 github.com/googleapis/google-cloud-php-vision 你能解决问题吗?或者仍然坚持使用它。 【参考方案1】:您失败的一点是您在查看 Cloud Vision 库时的身份验证,而 Cloud Vision 是 Google Cloud PHP 的一部分,您在其中给出了 Authentication Guide,它推荐了以下内容。
一旦您获得了您的凭证文件,就可以使用它来创建经过身份验证的客户端。
use Google\Cloud\Core\ServiceBuilder;
// Authenticate using a keyfile path
$cloud = new ServiceBuilder([
'keyFilePath' => 'path/to/keyfile.json'
]);
// Authenticate using keyfile data
$cloud = new ServiceBuilder([
'keyFile' => json_decode(file_get_contents('/path/to/keyfile.json'), true)
]);
如果您不想在您的应用程序代码中嵌入您的身份验证信息,您也可以使用Application Default Credentials.
use Google\Cloud\Core\ServiceBuilder;
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/keyfile.json');
$cloud = new ServiceBuilder();
GOOGLE_APPLICATION_CREDENTIALS
环境变量可以在您的服务器配置中设置。
Linux 或 MACOS
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
例如:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"
【讨论】:
以上是关于如何将 Google Cloud Vision API 凭据密钥文件指向 yii2 框架中的 GOOGLE_APPLICATION_CREDENTIALS 变量的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Google Cloud Vision API 读取一列文本
google vision - 在 c# 中从 google.cloud.vision.v1.entity 注释转换为 json
如何通过HTTP请求验证Google Cloud Vision
如何提高google cloud vision api的处理速度?