Я играл с API Google Analytics (V3) и сталкивался с ошибками som. Во-первых, все настроено правильно и работает с моей тестовой учетной записью. Но когда я хочу захватить данные из другого идентификатора профиля (тот же аккаунт Google Accont/GA), я получаю ошибку 403. Странно, что данные из некоторых учетных записей GA будут возвращать данные, в то время как другие генерируют эту ошибку.
Я отозвал токен и прошел проверку подлинности еще раз, и теперь кажется, что я могу захватить данные со всех моих учетных записей. Задача решена? Не. По мере того, как ключ доступа истечет, я снова столкнусь с тем же вопросом.
Если я понял все правильно, можно было бы использовать resfreshToken для получения новой аутентификацииTooken.
Проблема заключается в том, что я запускаю:
$client->refreshToken(refresh_token_key)
возвращается следующая ошибка:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
Ive проверил код за методом 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
Является ли это ошибкой, или я совершенно ничего не понял?