Я играл с Google Analytics API (V3) и сталкивался с ошибками. Во-первых, все настроено правильно и работает с моей тестовой учетной записью. Но когда я хочу получить данные из другого идентификатора профиля (та же учетная запись Google Accont / GA), я получаю ошибку 403. Странно то, что данные из некоторых учетных записей GA будут возвращать данные, в то время как другие генерируют эту ошибку.
Я отозвал токен и прошел аутентификацию еще раз, и теперь мне кажется, что я могу получать данные со всех своих учетных записей. Задача решена? Не. Поскольку срок действия ключа доступа истечет, я снова столкнусь с той же проблемой.
Если я правильно понял, можно было бы использовать resfreshToken для получения нового authenticationTooken.
Проблема в том, что когда я бегу:
$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
Это ошибка, или я что-то совершенно не понял?