如何在yii2框架中将Google Cloud Vision API凭据密钥文件指向GOOGLE_APPLICATION_CREDENTIALS变量

时间:2019-02-09 10:44:16

标签: php api yii2 cloud vision

我想使用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环境变量。

谢谢

1 个答案:

答案 0 :(得分: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"