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;
= Html::encode($this->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