Примерно через неделю - и, конечно же, в тот же день, когда я публикую этот вопрос, мне, наконец, удается исправить это самому.
Вот как я это делаю:
Я скачал последнюю версию Google Client API (для php) с их github.
Я добавил папку Google (src) в папку моего приложения/третьей стороны.
Внутри моего контроллера я включил необходимые файлы, выполнив следующие действия:
require_once(BASEPATH . '../application/third_party/Google/Client.php');
require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');
Затем я добавил нижеследующий код для авторизации с помощью сервисного аккаунта (который вы получаете из консоли Google и выберите свой проект> API и авторизация> Учетные данные> Затем создайте новый идентификатор клиента, выберите Учетная запись службы, когда закончите, нажмите «Создать новый ключ p12» и добавьте этот ключ в свою папку Third_Party/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