Я играл с Google Analytics API (V3) и столкнулся с ошибками сома.Во-первых, все настроено правильно и работает с моей тестовой учетной записью.Но когда я хочу получить данные из другого идентификатора профиля (та же учетная запись Google Accont / GA), я получаю сообщение об ошибке 403.Странно то, что данные из некоторых учетных записей GA будут возвращать данные, в то время как другие генерируют эту ошибку.
Я отозвал токен и снова аутентифицировался, и теперь мне кажется, что я могу получить данные со всех своихСчета.Задача решена?Не.Поскольку срок действия ключа доступа истекает, я снова столкнусь с той же проблемой.
Если я все правильно понял, можно использовать resfreshToken для получения нового аутентификационного ключа.
Проблема в том,когда я запускаю:
$client->refreshToken(refresh_token_key)
возвращается следующая ошибка:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
Я проверил код метода refreshToken и отследил запрос до «apiOAuth2.php»файл.Все параметры отправлены правильно.Тип grant_type жестко закодирован как «refresh_token» в методе, поэтому мне сложно понять, в чем дело.Массив параметров выглядит следующим образом:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
Процедура выглядит следующим образом.
$client = new apiClient();
$client->setClientId($config['oauth2_client_id']);
$client->setClientSecret($config['oauth2_client_secret']);
$client->setRedirectUri($config['oauth2_redirect_uri']);
$client->setScopes('https://www.googleapis.com/auth/analytics.readonly');
$client->setState('offline');
$client->setAccessToken($config['token']); // The access JSON object.
$client->refreshToken($config['refreshToken']); // Will return error here
Это ошибка или я что-то не так понял?