我想使用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环境变量。
谢谢
答案 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
环境变量。
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
例如:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"