Ошибка API Google, неавторизованный клиент, использующий учетную запись службы - PullRequest
0 голосов
/ 02 июля 2018

После этого я получаю следующую ошибку:

Неустранимая ошибка: Uncaught Google_Service_Exception: {"error": "unauthorized_client", "error_description": "Клиент не авторизован для получения токенов доступа с помощью этого метода." }

для настроек администратора Google, перейдем по этой ссылке: https://developers.google.com/api-client-library/php/auth/service-accounts

мы используем restapi.php

require __DIR__ . '/vendor/autoload.php';

/**
 * Returns an authorized API client.
 * @return Google_Client the authorized client object
 */
putenv('GOOGLE_APPLICATION_CREDENTIALS=client_secret.json');
$client = new Google_Client();
$client->setApplicationName('rwmp');
$client->setAccessType("offline");        // offline access
$client->useApplicationDefaultCredentials();
$client->setSubject('user@myconference.center');


$client->setScopes([\Google_Service_Sheets::SPREADSHEETS]);
    $service = new Google_Service_Sheets( $client );

$spreadsheetId = '1WtuEXGm8oWxet6t9UcPU-mi7lgif1sqeTcmc9DO-_zs';
        $range = 'A:G';
        $response = $service->spreadsheets_values->get($spreadsheetId,$range);
        $values = $response->getValues();

(а) мы используем G-Suite "Basic Edition"; это имеет какие-либо ограничения? (б) мы вызываем API G-Suite из среды PHP (7.0); Существует ли какая-либо известная проблема, поскольку среда все еще помечена как (бета) (c) Есть ли образец / учебник, который может дать указатель, чтобы решить нашу проблему.

1 Ответ

0 голосов
/ 02 июля 2018

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

ex: $ client-> setScopes (array ('https://www.googleapis.com/auth/drive',' https://www.googleapis.com/auth/spreadsheets.readonly'));

...