代码403:“请求缺少有效的API密钥。”PERMISSION_DENIED服务帐户密钥Google Cloud Vision PHP

问题描述 投票:0回答:2

我想使用服务密钥使用ImageAnnotator实现Google Cloud Vision。我尝试的是如下:

错误:

消息:{“error”:{“code”:403,“message”:“请求缺少有效的API密钥。”,“status”:“PERMISSION_DENIED”}}

试试这段代码时:

defined('BASEPATH') OR exit('No direct script access allowed');

use Google\Cloud\Vision\VisionClient;

class Admin_center extends CI_Controller {
    function __construct() {
        parent::__construct();

        include APPPATH . 'third_party/vendor/autoload.php';
    }

    public function index() {
        $this->load->view('index');
    }

    function upload_ocr_image() {               
        $img_data = $this->upload->data();                                          

        $vision = new VisionClient(['keyfile' => json_decode(file_get_contents(base_url().'assets/google_cloud_vision/credentials.json'), true)]);

        $imageRes = fopen($img_data['full_path'], 'r');
        $image = $vision->image($imageRes,['Text_Detection']);
        $result = $vision->annotate($image);

        print_r($result);
    }
}

我使用了服务帐户密钥。

为什么我收到错误:403权限被拒绝并且缺少有效的API密钥?

编辑:

我已经按照这个youtube教程:

https://www.youtube.com/watch?v=K-tpjOT7k-o

https://www.youtube.com/watch?v=PqAXE67fwu8&t=2s

谢谢

php codeigniter google-api google-cloud-platform google-cloud-vision
2个回答
1
投票

最后,IT工作了5个小时,努力找到问题。

实际上我上面发布的代码是有效的。我只是错误输入数组名称。

所以这一行:

$vision = new VisionClient(['keyfile' => json_decode(file_get_contents(base_url().'assets/google_cloud_vision/credentials.json'), true)])

'keyfile'应为'keyFile','F'为大写。

就这样。

谢谢你的帮助..


0
投票

只需将'credentials.json'替换为实际文件的路径......它无法找到相似的内容。

© www.soinside.com 2019 - 2024. All rights reserved.