Commit 897d06c399ceb5cb420fdb420ae5bebbd5c418e5

Authored by Alex Savenko
1 parent 5b99f932

generate GaResource

app/library/App/Bootstrap/RouteBootstrap.php
@@ -60,8 +60,6 @@ class RouteBootstrap implements BootstrapInterface @@ -60,8 +60,6 @@ class RouteBootstrap implements BootstrapInterface
60 $client = new Google_Client(); 60 $client = new Google_Client();
61 $client->useApplicationDefaultCredentials(); 61 $client->useApplicationDefaultCredentials();
62 $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']); 62 $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
63 - $api_key = 'AIzaSyBNYr7n7bcHbO-sJ9xuWwS9xQ2OY5aFAiE';  
64 - $client->setDeveloperKey($api_key);  
65 $analytics = new Google_Service_AnalyticsReporting($client); 63 $analytics = new Google_Service_AnalyticsReporting($client);
66 64
67 $param[] = ['metric' => 'ga:sessions', 'alias' => 'Сессии']; 65 $param[] = ['metric' => 'ga:sessions', 'alias' => 'Сессии'];
app/library/App/Controllers/GaController.php
@@ -9,13 +9,60 @@ @@ -9,13 +9,60 @@
9 namespace App\Controllers; 9 namespace App\Controllers;
10 10
11 11
  12 +use Google_Client;
  13 +use Google_Service_AnalyticsReporting;
  14 +use Google_Service_AnalyticsReporting_DateRange;
  15 +use Google_Service_AnalyticsReporting_GetReportsRequest;
  16 +use Google_Service_AnalyticsReporting_Metric;
  17 +use Google_Service_AnalyticsReporting_ReportRequest;
12 use PhalconRest\Mvc\Controllers\CrudResourceController; 18 use PhalconRest\Mvc\Controllers\CrudResourceController;
13 19
14 class GaController extends CrudResourceController { 20 class GaController extends CrudResourceController {
15 21
16 - public function gaRequest() { 22 + const SECRET_JSON = 'ca4a1bd8aa14.json';
  23 + const VIEW_ID = '119240817';
17 24
18 - return "123"; 25 + public function getAction() {
  26 +
  27 + putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON);
  28 + $client = new Google_Client();
  29 + $client->useApplicationDefaultCredentials();
  30 + $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
  31 + $api_key = 'AIzaSyBNYr7n7bcHbO-sJ9xuWwS9xQ2OY5aFAiE';
  32 + $client->setDeveloperKey($api_key);
  33 + $analytics = new Google_Service_AnalyticsReporting($client);
  34 +
  35 + $param[] = ['metric' => 'ga:sessions', 'alias' => 'Сессии'];
  36 +
  37 + $response = [];
  38 +
  39 + foreach ($param as $item) {
  40 +
  41 + // Создание объекта DateRange.
  42 + $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  43 + $dateRange->setStartDate("30daysAgo");
  44 + $dateRange->setEndDate("today");
  45 +
  46 + // Создание объекта Metrics.
  47 + $sessions = new Google_Service_AnalyticsReporting_Metric();
  48 + $sessions->setExpression($item['metric']);
  49 + $sessions->setAlias($item['alias']);
  50 +
  51 +
  52 + // Создание объекта ReportRequest.
  53 + $request = new Google_Service_AnalyticsReporting_ReportRequest();
  54 + $request->setViewId(self::VIEW_ID);
  55 + $request->setDateRanges($dateRange);
  56 + $request->setMetrics(array($sessions));
  57 +
  58 + $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  59 + $body->setReportRequests( array( $request) );
  60 +
  61 + $response = $analytics->reports->batchGet( $body );
  62 + }
  63 +
  64 +
  65 + $this->createArrayResponse($response, 'data');
19 66
20 } 67 }
21 68
app/library/App/Resources/GaResource.php
@@ -28,7 +28,7 @@ class GaResource extends ApiResource { @@ -28,7 +28,7 @@ class GaResource extends ApiResource {
28 ->deny(AclRoles::UNAUTHORIZED) 28 ->deny(AclRoles::UNAUTHORIZED)
29 ->handler(GaController::class) 29 ->handler(GaController::class)
30 30
31 - ->endpoint(ApiEndpoint::get('/ga', 'gaRequest') 31 + ->endpoint(ApiEndpoint::get('/', 'getAction')
32 ->allow(AclRoles::USER) 32 ->allow(AclRoles::USER)
33 ->description('Returns data from Google Analytics Api') 33 ->description('Returns data from Google Analytics Api')
34 ) 34 )