Ho giocato con l'API di Google Analytics (V3) e ho riscontrato alcuni errori. In primo luogo, tutto è impostato correttamente e ha funzionato con il mio account di prova. Ma quando desidero acquisire dati da un altro ID profilo (stesso account Google Accont / GA) ottengo un errore 403. La cosa strana è che i dati di alcuni account GA restituiranno dati mentre altri genereranno questo errore.
Ho revocato il token e mi sono autenticato ancora una volta, e ora sembra che io possa prendere i dati da tutti i miei account. Problema risolto? Non. Poiché la chiave di accesso scadrà, mi imbatterò di nuovo nello stesso problema.
Se ho capito bene le cose, si potrebbe usare resfreshToken per ottenere un nuovo authenticationTooken.
Il problema è che quando corro:
$client->refreshToken(refresh_token_key)
viene restituito il seguente errore:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
Ho controllato il codice dietro il metodo refreshToken e ho rintracciato la richiesta nel file "apiOAuth2.php". Tutti i parametri vengono inviati correttamente. Grant_type è hardcoded in "refresh_token" all'interno del metodo, quindi è difficile per me capire cosa c'è che non va. L'array dei parametri ha questo aspetto:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
La procedura è la seguente.
$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
È un bug o ho completamente frainteso qualcosa?