Где я могу поместить свой ключ api в языковой клиент Google Cloud PHP?

Я пытаюсь выполнить анализ настроений с помощью языкового клиента Google Cloud PHP из этого руководства: https://cloud.google.com/natural-language/docs/reference/libraries.

В документации говорится, что это должно работать с простым ключом api: https://cloud.google.com/docs/authentication/api-keys

Я уже пробовал несколько способов установить ключ API (простой ключ API, без oauth), но всегда получаю сообщение об ошибке: «В запросе отсутствует действующий ключ API».

Вот некоторые из моих попыток:

// Instantiates a client
    $language = new LanguageClient([
        'projectId' => $projectId,
        'key' => $key,
        'developerKey' => $key,
        'api_key' => $key
    ]);
    $language->setDeveloperKey($key);

    // Detects the sentiment of the text
    $annotation = $language->analyzeSentiment($texttoanalyze);
    $sentiment = $annotation->sentiment();

    echo 'Text: ' . $text . 'Sentiment: ' . $sentiment['score'] . ', ' . $sentiment['magnitude'];

не уверен, что это помогает, поскольку я не парень PHP, но токен доступа должен быть описан в заголовке - изучите варианты получения токена доступа с помощью OAUTH2

Peter Scott 12.10.2018 11:32

Теперь я попробовал стандартный метод с учетной записью службы, как описано здесь: googleapis.github.io/google-cloud-php/#/docs/cloud-language/‌… установка переменной среды export GOOGLE_APPLICATION_CREDENTIALS = [путь к моему ключевому файлу] не помогла. Я все еще получаю ту же ошибку, я думаю, при использовании клиента Google (для композитора требуется google / cloud-language) явно указывать заголовок не обязательно.

Thomas K. 12.10.2018 16:40

Если вы запустите это краткое руководство - cloud.google.com/natural-language/docs/reference/…, будет ли у вас такая же ошибка? Я просто попробовал установить переменную окружения, и это сработало. Обычно в клиентской библиотеке вы аутентифицируетесь с помощью переменной среды или учетных данных из файла JSON. Ключ API обычно требуется, когда вы отправляете запрос POST в API напрямую.

Philipp Sh 17.10.2018 17:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
670
1

Ответы 1

хорошо, я понял, как выполнить простой вызов api без использования клиентской библиотеки, например: POST https://language.googleapis.com/v1/documents:analyzeEntities?key=API_KEY

как описано здесь: https://cloud.google.com/natural-language/docs/reference/rest/v1/documents/analyzeEntities

Я мог бы решить проблему с аутентификацией для клиентской библиотеки, добавив параметр keyFilePath в конфигурацию LanguageClient следующим образом:

$language = new LanguageClient([
        'projectId' => 'my-project-id',
        'keyFilePath' => '/path/to/my/keyfile.json'
    ]);

Другие вопросы по теме