След около седмица - и разбира се, в същия ден, в който публикувам този въпрос, най-накрая успях да поправя това сам.
Ето как действам аз:
Изтеглих най-новия API за клиент на Google (за php) от техния github.
Добавих папката Google (src) в моята папка application/third_party.
В моя контролер включих необходимите файлове, като направих:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
След това добавих следния код по-долу за оторизация със сервизен акаунт (който получавате от Google Console и избиране на вашия проект > API и удостоверяване > Идентификационни данни > След това създайте нов клиентски идентификатор, изберете Service Account, когато сте готови, натиснете „Генериране на нов p12 ключ“ и добавете този ключ към вашата трета страна/Google папка:
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
За да получите всички величини и показатели, които можете да използвате, използвайте тази връзка . Пример за това как да го изпратите до изгледа:
$this->view->load('your_view', $data);
За да го напиша като диаграма, току-що използвах диаграми на Google в JS (в изгледа ) Просто прехвърлих данните от $data['report'], за да начертая диаграма.
Надяваме се, че това ще помогне на хората с този проблем в бъдеще.
person
Michael
schedule
04.09.2014