लगभग एक सप्ताह बाद - और निश्चित रूप से, उसी दिन मैं इस प्रश्न को पोस्ट करता हूं, अंत में मैं इसे स्वयं ठीक करने का प्रबंधन करता हूं।
मैं their github से नवीनतम Google क्लाइंट API (php के लिए) डाउनलोड किया गया:
यह मैं कैसे के बारे में जाना है।
मैंने अपने एप्लिकेशन/third_party फ़ोल्डर में Google फ़ोल्डर (src) जोड़ा।
मेरी नियंत्रक के अंदर मैं ऐसा करके आवश्यक फ़ाइलें शामिल:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
तब मैं सेवा खाता (जो आप Google Console से मिलता है और अपनी परियोजना> API & प्रमाणन चयन करने के साथ प्राधिकरण के लिए कि नीचे निम्नलिखित कोड जोड़ा > साख> फिर एक नई क्लाइंट आईडी बनाएं, चयन सेवा खाता है, जब किया, प्रेस "नए p12 कुंजी जेनरेट करें" और अपने THIRD_PARTY है कि कुंजी जोड़ने/गूगल फ़ोल्डर:
session_start();
$client_id = '<YOUR_CLIENT_ID>'; //Client ID
$service_account_name = '<YOUR_CLIENT_EMAIL>'; //Email Address
$key_file_location = BASEPATH . '../application/third_party/Google/<YOUR KEY.p12>'; //key.p12
$client = new Google_Client();
$client->setApplicationName("ApplicationName");
$service = new Google_Service_Analytics($client);
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array(
'https://www.googleapis.com/auth/analytics',
),
$key,
'notasecret'
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
नीचे कोड के लिए है पिछले 31 दिनों
$analytics = new Google_Service_Analytics($client);
$profileId = "ga:<YOUR_PROFILE_ID>";
$startDate = date('Y-m-d', strtotime('-31 days')); // 31 days from now
$endDate = date('Y-m-d'); // todays date
$metrics = "ga:sessions";
$optParams = array("dimensions" => "ga:date");
$results = $analytics->data_ga->get($profileId, $startDate, $endDate, $metrics, $optParams);
$data['report'] = $results->rows; //To send it to the view later
से आर रही सत्र (पेज का दौरा) सभी आयाम और मीट्रिक है कि आप उपयोग कर सकते हैं पाने के लिए, use this link। कैसे दृश्य को भेजने के लिए पर उदाहरण:
$this->view->load('your_view', $data);
एक चार्ट मैं सिर्फ Google charts इस्तेमाल किया, जे एस में (ध्यान में रखते हुए) के रूप में इसे बाहर लिखने के लिए मैं सिर्फ $ से डेटा फंस डेटा [ 'रिपोर्ट' ] एक चार्ट आकर्षित करने के लिए।
आशा है कि इससे भविष्य में इस समस्या वाले लोगों की मदद मिलेगी।
मुझे समझ में नहीं आता कि कोई इसे क्यों कम करेगा, क्योंकि अधिकतर लोगों को शायद यह समस्या हो रही है! मैंने कोडिग्निटर के लिए स्पार्क्स के लिए प्लगइन की कोशिश की है, लेकिन वह दो साल का है, जिसका अर्थ है कि एपीआई पुराना है, और गूगल्स वेबसाइट पर उदाहरणों में सभी नामकरण सम्मेलन गलत हैं ... – Michael