Bawiłem się interfejsem API Google Analytics (V3) i napotkałem pewne błędy. Po pierwsze, wszystko jest poprawnie skonfigurowane i działa z moim kontem testowym. Ale kiedy chcę pobrać dane z innego identyfikatora profilu (to samo konto Google Accont / GA), pojawia się błąd 403. Dziwne jest to, że dane z niektórych kont GA zwracają dane, podczas gdy inne generują ten błąd.
Wycofałem token i uwierzytelniłem się jeszcze raz, a teraz wygląda na to, że mogę pobrać dane ze wszystkich moich kont. Problem rozwiązany? Nie. Ponieważ klucz dostępu wygaśnie, ponownie napotkam ten sam problem.
Jeśli dobrze zrozumiałem, można użyć resfreshToken, aby uzyskać nowy plik authenticationTooken.
Problem w tym, że kiedy biegam:
$client->refreshToken(refresh_token_key)
zwracany jest następujący błąd:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
Sprawdziłem kod za metodą refreshToken i prześledziłem żądanie z powrotem do pliku „apiOAuth2.php”. Wszystkie parametry są wysyłane poprawnie. Grant_type jest zakodowany na stałe jako „refresh_token” w metodzie, więc trudno mi zrozumieć, co jest nie tak. Tablica parametrów wygląda następująco:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
Procedura jest następująca.
$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
Czy to błąd, czy kompletnie coś źle zrozumiałem?