J'ai joué avec l'API Google Analytics (V3) et j'ai rencontré des erreurs. Tout d'abord, tout est configuré correctement et fonctionne avec mon compte de test. Mais lorsque je veux récupérer des données d'un autre identifiant de profil (même compte Google Accont / GA), j'obtiens une erreur 403. La chose étrange est que les données de certains comptes GA renverront des données tandis que d'autres génèrent cette erreur.
J'ai révoqué le jeton et me suis authentifié une fois de plus, et il semble maintenant que je puisse récupérer les données de tous mes comptes. Problème résolu? Ne pas. Comme la clé d'accès expirera, je rencontrerai à nouveau le même problème.
Si j'ai bien compris les choses, on pourrait utiliser le resfreshToken pour obtenir un nouveau authenticationTooken.
Le problème est que lorsque je cours:
$client->refreshToken(refresh_token_key)
l'erreur suivante est renvoyée:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
J'ai vérifié le code derrière la méthode refreshToken et suivi la demande dans le fichier «apiOAuth2.php». Tous les paramètres sont envoyés correctement. Le grant_type est codé en dur sur 'refresh_token' dans la méthode, il m'est donc difficile de comprendre ce qui ne va pas. Le tableau de paramètres ressemble à ceci:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
La procédure est la suivante.
$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
Est-ce un bug, ou ai-je complètement mal compris quelque chose?