Я пытаюсь реализовать облачное видение Google с помощью API ImageAnnotator, используя codeigniter PHP.
Я установил требуемое облачное зрение Google, используя композитор, в свой сторонний каталог в codeigniter.
Это код выглядит в моем контроллере:
defined('BASEPATH') OR exit('No direct script access allowed');
use Google\Auth\ApplicationDefaultCredentials;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use Google\Cloud\Vision\V1\ImageAnnotatorClient;
class Manage_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 contain image => i just shorten the code.
$img_data = $this->upload->data();
// Authenticating with a keyfile path.
putenv('GOOGLE_APPLICATION_CREDENTIALS='.base_url().'assets/google_cloud_vision/credentials.json');
$scopes = ['https://www.googleapis.com/auth/cloud-vision'];
// create middleware
$middleware = ApplicationDefaultCredentials::getMiddleware($scopes);
$stack = HandlerStack::create();
$stack->push($middleware);
$imageAnnotator = new ImageAnnotatorClient();
# annotate the image
$response = $imageAnnotator->textDetection($img_data['full_path']);
$texts = $response->getTextAnnotations();
printf('%d texts found:' . PHP_EOL, count($texts));
foreach ($texts as $text) {
print($text->getDescription() . PHP_EOL);
# get bounds
$vertices = $text->getBoundingPoly()->getVertices();
$bounds = [];
foreach ($vertices as $vertex) {
$bounds[] = sprintf('(%d,%d)', $vertex->getX(), $vertex->getY());
}
print('Bounds: ' . join(', ',$bounds) . PHP_EOL);
}
$imageAnnotator->close();
}
}
Я получил ошибку:
Тип: DomainException
Сообщение: невозможно прочитать учетные данные
файл, указанный в GOOGLE_APPLICATION_CREDENTIALS: file
http://localhost/theseeds/assets/google_cloud_vision/credentials.json
не существует
Имя файла:
D: \ XAMPP \ HTDOCS \ theseeds \ приложения \ THIRD_PARTY \ поставщика \ Google \ Auth \ SRC \ CredentialsLoader.php
Номер строки: 74
Файл:
D: \ xampp \ htdocs \ theseeds \ application \ controllers \ Manage_center.php Строка: 3188
Функция: getMiddleware
Я не понимаю, почему возникает эта ошибка:
http://localhost/theseeds/assets/google_cloud_vision/credentials.json не существует
Потому что, когда я открыл ссылку, файл был там.
И эта ошибка:
Файл:
D: \ xampp \ htdocs \ theseeds \ application \ controllers \ Admin_center.php Строка: 3188
Функция: getMiddleware
- это код строки:
$ middleware = ApplicationDefaultCredentials :: getMiddleware ($ scopes);
Как правильно использовать облачное зрение Google ImageAnnotatorClient в PHP Codeigniter?
Есть ли проблема с аутентификацией в Google Cloud API?
Спасибо