Google Analytics API на уебсайта на Codeigniter

От дни се опитвам да накарам API на Google да работи на уебсайта ми, но не успявам. Навсякъде, където търся, намирам остарели примери... Трябва ми, за да работя с codeigniter и всичко, което искам да направя, е да извлека данни от Google Analytics, за да ги покажа в таблото за управление на администратора на моя уебсайт за codeigniter.

Разбирам, че имам нужда от акаунт за услуга, ако не искам да се удостоверявам всеки път, когато погледна таблото за управление (?)

Може ли някой да ми помогне да накарам това да работи? Благодаря ви много предварително!

Това, което искам да направя, е: Извличане на данни от google analytics, връщане на тези данни като може би json, след което предполагам, че мога да направя диаграма от тях с плъгин (може би някакъв плъгин jQuery вече съществува или мога да използвам собствени чекмеджета за диаграми на Google? ) и покажете това на администраторите. Просто искам наистина прости данни, като например колко потребители през последния месец...


person Michael    schedule 04.09.2014    source източник
comment
Не разбирам защо някой би гласувал против това, след като вероятно повече хора имат този проблем! Опитах плъгина за Sparks за Codeigniter, но този е на две години, което означава, че API е остарял и всички конвенции за именуване в примерите на уебсайта на Google са грешни...   -  person Michael    schedule 04.09.2014


Отговори (1)


След около седмица - и разбира се, в същия ден, в който публикувам този въпрос, най-накрая успях да поправя това сам.

Ето как действам аз:

Изтеглих най-новия 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
comment
Благодаря за вашия код ... Бях в същата бъркотия като вашия qs .. Вашият ans ми показа, че всичко започва да свършва :) - person Penny; 28.01.2015
comment
Това наистина е полезно, благодаря! За съжаление обаче получавам грешката (403) Потребителят няма акаунт в Google Анализ... това ли е нещо, на което сте се натъкнали? - person Owain Reed; 10.07.2015
comment
Не, съжалявам, не съм имал този проблем. - person Michael; 24.08.2015
comment
@Michael добавихте код за оторизация с акаунт за услуга, трябва да добавим този код в контролера или в изглед трябва да добавим това - person user8001297; 31.08.2017
comment
Пътят, който споменахте require_once(BASEPATH . '../application/third_party/Google/Service/Analytics.php');, няма файла Analytics.php там в служебната папка. - person atul; 12.09.2017
comment
Получих файла Analytics.php тук https://github.com/google/google-api-php-client-services/blob/master/src/Google/Service/Analytics.php - person atul; 12.09.2017
comment
Ще създам акаунти за услуги. но не разбирам $client_id = '‹YOUR_CLIENT_ID›'; my project create key id .....Ще сложа ли key id на мястото на clint id ???? - person MD JAMIL AJ; 05.07.2020
comment
$profileId = ga:‹ВАШИЯ_ПРОФИЛ_ID›; Не създава ID на моя профил - person MD JAMIL AJ; 05.07.2020