如何将 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的处理速度?

使用 Google Cloud Vision 的 OCR PDF 文件?

Google Cloud Vision - 如何使用 Node.js 发送请求属性