Я пытаюсь заставить Google API работать на моем сайте уже несколько дней, но не заставить его работать. Везде, где я ищу, я нахожу устаревшие примеры … Мне нужно это для работы с codeigniter, и все, что я хочу сделать, – это получить данные из Google Analytics, чтобы они отображались в панели управления admin на моем веб-сайте codeigniter.
Я понимаю, что мне нужна учетная запись службы, если я не хочу проходить аутентификацию каждый раз, когда я смотрю на панель инструментов (?)
Может ли кто-нибудь помочь мне с этим работать? Огромное спасибо заранее!
Я хочу сделать следующее: Получить данные из Google Analytics, вернуть эти данные, возможно, json, тогда я предполагаю, что смогу сделать диаграмму из нее с помощью плагина (возможно, какой-то плагин jQuery уже существует или я могу использовать собственные графические ящики для googles? ) и показать это администраторам. Мне просто нужны действительно простые данные, например, сколько пользователей в прошлом месяце …
Примерно через неделю – и, конечно же, в тот же день, когда я отправляю этот вопрос, мне, наконец, удается это исправить.
Вот как я об этом говорю:
Я загрузил последний API Google Client (для 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 и выберите свой проект> API и auth> Учетные данные> Затем создайте новый идентификатор клиента, выберите «Учетная запись службы», когда закончите, нажмите «Сгенерировать новый p12 key "и добавьте этот ключ в свою папку 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('Ym-d', strtotime('-31 days')); // 31 days from now $endDate = date('Ym-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'], чтобы нарисовать диаграмму.
Надеюсь, это поможет людям с этой проблемой в будущем.