ฉันได้เล่นกับ Google Analytics API (V3) และพบข้อผิดพลาดบางอย่าง ประการแรกทุกอย่างตั้งค่าถูกต้องและทำงานร่วมกับบัญชีทดสอบของฉัน แต่เมื่อฉันต้องการดึงข้อมูลจากรหัสโปรไฟล์อื่น (บัญชี Google Accont / GA เดียวกัน) ฉันได้รับข้อผิดพลาด 403 สิ่งที่แปลกคือข้อมูลจากบัญชี GA บางบัญชีจะส่งคืนข้อมูลในขณะที่อีกบัญชีสร้างข้อผิดพลาดนี้
ฉันได้เพิกถอนโทเค็นและตรวจสอบสิทธิ์อีกครั้งและตอนนี้ดูเหมือนว่าฉันสามารถดึงข้อมูลจากบัญชีทั้งหมดของฉันได้ แก้ไขปัญหา? ไม่. เนื่องจากคีย์การเข้าถึงจะหมดอายุฉันจะพบปัญหาเดิมอีกครั้ง
หากฉันเข้าใจสิ่งต่างๆถูกต้องเราสามารถใช้ resfreshToken เพื่อรับการรับรองความถูกต้องใหม่ได้
ปัญหาคือเมื่อฉันเรียกใช้:
$client->refreshToken(refresh_token_key)
ข้อผิดพลาดต่อไปนี้จะถูกส่งกลับ:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
ฉันได้ตรวจสอบโค้ดหลังเมธอด refreshToken และติดตามคำขอกลับไปที่ไฟล์“ apiOAuth2.php” พารามิเตอร์ทั้งหมดถูกส่งอย่างถูกต้อง Grant_type ถูกเข้ารหัสอย่างหนักเป็น 'refresh_token' ภายในวิธีการดังนั้นจึงยากสำหรับฉันที่จะเข้าใจว่ามีอะไรผิดพลาด อาร์เรย์พารามิเตอร์มีลักษณะดังนี้:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
ขั้นตอนมีดังนี้
$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
นี่เป็นข้อบกพร่องหรือว่าฉันเข้าใจผิดไปหมด?