আমি গুগল অ্যানালিটিক্স এপিআই (ভি 3) এর সাথে ঘুরে বেড়াচ্ছি এবং প্রচুর ত্রুটির মধ্যে পড়েছি। প্রথমত, সবকিছু সঠিকভাবে সেট আপ করা হয় এবং আমার পরীক্ষার অ্যাকাউন্টের সাথে কাজ করে। কিন্তু যখন আমি অন্য প্রোফাইল আইডি (একই গুগল একাউন্ট / জিএ অ্যাকাউন্ট) থেকে ডেটা ধরতে চাই তখন আমি একটি 403 ত্রুটি পাই। আশ্চর্যের বিষয়টি হ'ল কিছু জিএ অ্যাকাউন্টের ডেটা অন্য ত্রুটিটি তৈরি করার সময় ডেটা ফেরত দেবে।
আমি টোকেনটি বাতিল করে দিয়েছি এবং আরও একবার প্রমাণীকৃত করেছি এবং এখন দেখে মনে হচ্ছে আমি আমার সমস্ত অ্যাকাউন্ট থেকে ডেটা ধরতে পারি। সমস্যা সমাধান? না. অ্যাক্সেস কীটির মেয়াদ শেষ হওয়ার সাথে সাথে আমি আবার একই সমস্যাটিতে চলে আসব।
আমি যদি জিনিসগুলি সঠিকভাবে বুঝতে পারি তবে একটি নতুন প্রমাণীকরণ টুকেন পেতে রেফ্রেশটোকন ব্যবহার করতে পারে।
সমস্যাটি হ'ল, আমি যখন দৌড়ব:
$client->refreshToken(refresh_token_key)
নিম্নলিখিত ত্রুটি ফিরে এসেছে:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
আমি রিফ্রেশ টোকেন পদ্ধতির পিছনে কোডটি যাচাই করেছি এবং অনুরোধটি "apiOAuth2.php" ফাইলটিতে ফিরে পেয়েছি। সমস্ত পরামিতি সঠিকভাবে প্রেরণ করা হয়। অনুদান_প্রকারটি পদ্ধতিটির মধ্যে 'রিফ্রেশ_ টোকেন' তে শক্তভাবে কোড করা হয়েছে, তাই আমার কী সমস্যা তা বোঝা মুশকিল। প্যারামিটার অ্যারে দেখে মনে হচ্ছে:
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
এটি কি কোনও বাগ, বা আমি কোনও কিছুকে পুরোপুরি ভুল বুঝেছি?