RouteBootstrap.php 3.8 KB
<?php

namespace App\Bootstrap;

use App\BootstrapInterface;
use App\Constants\Services;
use Phalcon\Config;
use Phalcon\DiInterface;
use PhalconRest\Api;
use Google_Client;
use Google_Service_AnalyticsReporting;
use Google_Service_AnalyticsReporting_DateRange;
use Google_Service_AnalyticsReporting_Metric;
use Google_Service_AnalyticsReporting_ReportRequest;
use Google_Service_AnalyticsReporting_GetReportsRequest;




class RouteBootstrap implements BootstrapInterface
{
    public $VIEW_ID = '123';

    public function run(Api $api, DiInterface $di, Config $config)
    {
        $api->get('/', function() use ($api) {

            /** @var \Phalcon\Mvc\View\Simple $view */
            $view = $api->di->get(Services::VIEW);

            return $view->render('general/index');
        });

        $api->get('/proxy.html', function() use ($api, $config) {

            /** @var \Phalcon\Mvc\View\Simple $view */
            $view = $api->di->get(Services::VIEW);

            $view->setVar('client', $config->clientHostName);
            return $view->render('general/proxy');
        });

        $api->get('/documentation.html', function() use ($api, $config) {

            /** @var \Phalcon\Mvc\View\Simple $view */
            $view = $api->di->get(Services::VIEW);

            $view->setVar('title', $config->application->title);
            $view->setVar('description', $config->application->description);
            $view->setVar('documentationPath', $config->hostName . '/export/documentation.json');
            return $view->render('general/documentation');
        });

        $api->get('/test.html', function() use ($api) {

            /** @var \Phalcon\Mvc\View\Simple $view */
            $view = $api->di->get(Services::VIEW);

            putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/ca4a1bd8aa14.json');
            $client = new Google_Client();
            $client->useApplicationDefaultCredentials();
            $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
            $api_key = 'AIzaSyBNYr7n7bcHbO-sJ9xuWwS9xQ2OY5aFAiE';
            $client->setDeveloperKey($api_key);
            $analytics = new Google_Service_AnalyticsReporting($client);

            $param[] = ['metric' => 'ga:sessions', 'alias' => 'Сессии'];
            $param[] = ['metric' => 'ga:users', 'alias' => 'Пользователи'];
            $param[] = ['metric' => 'ga:CTR', 'alias' => 'CTR'];
            $param[] = ['metric' => 'ga:goal1Value', 'alias' => 'цель "Корзина"'];

            $VIEW_ID = "119240817";

            foreach ($param as $item) {

                // Создание объекта DateRange.
                $dateRange = new Google_Service_AnalyticsReporting_DateRange();
                $dateRange->setStartDate("30daysAgo");
                $dateRange->setEndDate("today");

                // Создание объекта Metrics.
                $sessions = new Google_Service_AnalyticsReporting_Metric();
                $sessions->setExpression($item['metric']);
                $sessions->setAlias($item['alias']);


                // Создание объекта 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) );

                $response =  $analytics->reports->batchGet( $body );
            }


            $var_2 = var_dump($response);

            $msg = "testing fine";

            return $view->render('general/test', [
                'var1' => $msg,
                'var2' => $var_2
            ]);
        });
    }


}