Saya telah bermain-main dengan Google Analytics API (V3) dan mengalami beberapa kesalahan. Pertama, semuanya sudah diatur dengan benar dan berfungsi dengan akun pengujian saya. Tetapi ketika saya ingin mengambil data dari ID profil lain (Akun Google Accont / GA yang Sama) saya mendapatkan Kesalahan 403. Yang aneh adalah bahwa data dari beberapa akun GA akan mengembalikan data sementara yang lain menghasilkan kesalahan ini.
Saya telah mencabut token dan mengautentikasi sekali lagi, dan sekarang sepertinya saya dapat mengambil data dari semua akun saya. Masalah terpecahkan? Tidak. Karena kunci akses akan kedaluwarsa, saya akan mengalami masalah yang sama lagi.
Jika saya telah memahami semuanya dengan benar, seseorang dapat menggunakan resfreshToken untuk mendapatkan authenticationTooken baru.
Masalahnya adalah, saat saya menjalankan:
$client->refreshToken(refresh_token_key)
kesalahan berikut dikembalikan:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
Saya telah memeriksa kode di belakang metode refreshToken dan melacak permintaan kembali ke file "apiOAuth2.php". Semua parameter dikirim dengan benar. Grant_type dikodekan keras menjadi 'refresh_token' dalam metode, jadi sulit bagi saya untuk memahami apa yang salah. Array parameter terlihat seperti ini:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
Prosedurnya adalah sebagai berikut.
$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
Apakah ini bug, atau apakah saya benar-benar salah paham?