Настроить авторизацию через OAuth2 для PHP скрипта

5 000 руб. за проект
15 октября 2024, 14:47 • 3 отклика • 35 просмотров
Есть скрипт, который авторизуется через OAuth2 и отправляет запросы в Google Analytics с использованием класса Google_Service_Analytics

Работу приложения можно посмотреть здесь https://www.kl82.com/node/add/report-ga-connector


Нужно точно так же отправлять запрос с использованием класса AnalyticsAdminServiceClient. Это класс из современной библиотеки Google Analytics Data API https://developers.google.com/analytics/devguides/reporting/data/v1?hl=en


Работающий фрагмент старого кода

$analytics = new Google_Service_Analytics($client);
$accounts = $analytics->management_accountSummaries->listManagementAccountSummaries();


Не работающий фрагмент кода:

$analytics = new AnalyticsAdminServiceClient([
'credentials' => Google\ApiCore\CredentialsWrapper::build( [
'scopes' => [
'https://www.googleapis.com/auth/analytics',
'openid',
'https://www.googleapis.com/auth/analytics.readonly',
],
'keyFile' => [
'type' => 'authorized_user',
'grant_type' => 'authorized_user',
'client_id' => $client->getClientId(),
'client_secret' => $client->getClientSecret(),
'refresh_token' => $client->getRefreshToken(),
'access_token' => $client->getAccessToken()["access_token"]
],
] ),
] );
$accounts = $analytics->listAccounts();

Возвращает ошибку GuzzleHttp\Exception\ClientException: Client error: `POST https://oauth2.googleapis.com/token` resulted in a `400 Bad Request` response: { "error": "unsupported_grant_type", "error_description": "Invalid grant_type: " } in GuzzleHttp\Exception\RequestException::create()