Google API PHP ошибка 500

Я использую Google Vision API в одном из моих скриптов PHP.

Скрипт работает хорошо, когда я выполняю его через терминал:

php /var/www/html/my_script.php

Но когда я хочу выполнить его из своего браузера, я получаю ошибку 500:

Фатальная ошибка PHP: Uncaught
Google \ Cloud \ Core \ Exception \ ServiceException: {\ n «ошибка»: {\ n
«код»: 401, \ n «сообщение»: «запрос имеет неверную аутентификацию
полномочия. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другое
действительные учетные данные для аутентификации. Увидеть
https://developers.google.com/identity/sign-in/web/devconsole-project.»\ П
«status»: «UNAUTHENTICATED» \ n} \ n} \ n

Я не понимаю, почему в сообщении об ошибке предлагается использовать OAuth 2, мне не нужно, чтобы мой пользователь входил в свою учетную запись Google.

Мой код следующий:

    namespace Google\Cloud\Vision\VisionClient;
require('vendor/autoload.php');
use Google\Cloud\Vision\VisionClient;

$projectId = 'my_project_id';
$path = 'https://tedconfblog.files.wordpress.com/2012/08/back-to-school.jpg';

$vision = new VisionClient([
'projectId' => $projectId,
]);

$image = $vision->image(file_get_contents($path), ['WEB_DETECTION']);
$annotation = $vision->annotate($image);
$web = $annotation->web();

-1

Решение

Вообще говоря, вам нужно будет предоставить ключевой файл учетной записи службы при создании клиента Google Cloud. Исключением является то, что вы работаете на Compute Engine или если у вас есть настройки учетных данных приложения по умолчанию. Так как вы видите ошибки аутентификации, ни одна из них не является причиной.

Чтобы получить учетную запись службы и ключевой файл, проверьте документация.

Создав учетную запись службы и загрузив файл ключей json, вы можете предоставить ее конструктору клиентской библиотеки:

<?php

use Google\Cloud\Vision\VisionClient;

$vision = new VisionClient([
'projectId' => $projectId,
'keyFilePath' => '/path/to/keyfile.json'
]);

После того, как вы предоставите действительный ключевой файл, вы сможете выполнять аутентифицированные запросы к API Vision.

Чтобы избежать этого шага, вы можете настроить Учетные данные приложения по умолчанию на вашем сервере или компьютере.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]