diff --git a/backend/views/report/index.php b/backend/views/report/index.php index 5d81653..b9f9e62 100644 --- a/backend/views/report/index.php +++ b/backend/views/report/index.php @@ -18,74 +18,92 @@ $this->params['breadcrumbs'][] = $this->title;

title) ?>

- - $client = new Google_Client(); - $client->setAuthConfig(__DIR__ . '/client_secret.json'); - $client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); +googleApi->client); +// Загрузка клиентской библиотеки PHP для Google API. +require_once __DIR__ . '../../../vendor/vendor/autoload.php'; - // Вызов the Analytics Reporting API V4. - $response = getReport($analytics); +session_start(); - // Вывод ответа. - printResults($response); +$client = new Google_Client(); +$client->setAuthConfig(__DIR__ . '/client_secrets.json'); +$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); - function getReport($analytics) { - // Замена на свой идентификатор представления, напр. XXXX. - $VIEW_ID = "119240817"; +// Если пользователь уже авторизовал это приложение, предоставьте токен доступа. +// В противном случае перенаправьте пользователя на страницу авторизации доступа в Google Analytics. +if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { + // Установка токена доступа на клиентском компьютере. + $client->setAccessToken($_SESSION['access_token']); - // Создание объекта DateRange. - $dateRange = new Google_Service_AnalyticsReporting_DateRange(); - $dateRange->setStartDate("7daysAgo"); - $dateRange->setEndDate("today"); + // Создание авторизованного объекта службы аналитики. + $analytics = new Google_Service_AnalyticsReporting($client); - // Создание объекта Metrics. - $sessions = new Google_Service_AnalyticsReporting_Metric(); - $sessions->setExpression("ga:sessions"); - $sessions->setAlias("sessions"); + // Вызов the Analytics Reporting API V4. + $response = getReport($analytics); - // Создание объекта ReportRequest. - $request = new Google_Service_AnalyticsReporting_ReportRequest(); - $request->setViewId($VIEW_ID); - $request->setDateRanges($dateRange); - $request->setMetrics(array($sessions)); + // Вывод ответа. + printResults($response); - $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); - $body->setReportRequests( array( $request) ); - return $analytics->reports->batchGet( $body ); - } +} else { + $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php'; + header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); +} + + +function getReport($analytics) { + + // Замена на свой идентификатор представления, напр. XXXX. + $VIEW_ID = ""; + + // Создание объекта DateRange. + $dateRange = new Google_Service_AnalyticsReporting_DateRange(); + $dateRange->setStartDate("7daysAgo"); + $dateRange->setEndDate("today"); + + // Создание объекта Metrics. + $sessions = new Google_Service_AnalyticsReporting_Metric(); + $sessions->setExpression("ga:sessions"); + $sessions->setAlias("sessions"); + + // Создание объекта ReportRequest. + $request = new Google_Service_AnalyticsReporting_ReportRequest(); + $request->setViewId($VIEW_ID); + $request->setDateRanges($dateRange); + $request->setMetrics(array($sessions)); + + $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); + $body->setReportRequests( array( $request) ); + return $analytics->reports->batchGet( $body ); +} + +function printResults($reports) { + for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { + $report = $reports[ $reportIndex ]; + $header = $report->getColumnHeader(); + $dimensionHeaders = $header->getDimensions(); + $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); + $rows = $report->getData()->getRows(); + + for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { + $row = $rows[ $rowIndex ]; + $dimensions = $row->getDimensions(); + $metrics = $row->getMetrics(); + for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { + print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); + } - function printResults($reports) { - for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { - $report = $reports[ $reportIndex ]; - $header = $report->getColumnHeader(); - $dimensionHeaders = $header->getDimensions(); - $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); - $rows = $report->getData()->getRows(); - - for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { - $row = $rows[ $rowIndex ]; - $dimensions = $row->getDimensions(); - $metrics = $row->getMetrics(); - for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { - print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); - } - - for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { - $entry = $metricHeaders[$j]; - $values = $metrics[$j]; - print("Metric type: " . $entry->getType() . "\n" ); - for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { - $value = $values->getValues()[ $valueIndex ]; - print($entry->getName() . ": " . $value . "\n"); - } - } + for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { + $entry = $metricHeaders[$j]; + $values = $metrics[$j]; + print("Metric type: " . $entry->getType() . "\n" ); + for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { + $value = $values->getValues()[ $valueIndex ]; + print($entry->getName() . ": " . $value . "\n"); } } } - ?> -
\ No newline at end of file + } +} -- libgit2 0.21.4