Google Analytics API (V3) ile uğraşıyorum ve bazı hatalarla karşılaştım. İlk olarak, her şey doğru bir şekilde kuruldu ve test hesabımla çalıştı. Ancak başka bir profil kimliğinden (Aynı Google Hesabı / GA Hesabı) veri almak istediğimde 403 Hatası alıyorum. Garip olan şey, bazı GA hesaplarındaki verilerin veri döndürürken diğerlerinin bu hatayı oluşturmasıdır.
Belirteci iptal ettim ve bir kez daha kimlik doğrulamasını yaptım ve şimdi tüm hesaplarımdan veri alabiliyorum gibi görünüyor. Sorun çözüldü? Değil. Erişim anahtarının süresi dolacağı için aynı sorunla tekrar karşılaşacağım.
Her şeyi doğru anladıysam, yeni bir authenticationTooken almak için resfreshToken kullanılabilir.
Sorun şu ki, koştuğumda:
$client->refreshToken(refresh_token_key)
aşağıdaki hata döndürülür:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
RefreshToken yönteminin arkasındaki kodu kontrol ettim ve isteği "apiOAuth2.php" dosyasına geri izledim. Tüm parametreler doğru şekilde gönderilir. Grant_type, yöntem içinde 'refresh_token' olarak kodlanmıştır, bu nedenle neyin yanlış olduğunu anlamak benim için zor. Parametre dizisi şuna benzer:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
Prosedür aşağıdaki gibidir.
$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
Bu bir hata mı yoksa bir şeyi tamamen yanlış mı anladım?