Commit 29f4a05f77a58c5f1d7edbd9aa3b336904d178d0

Authored by Alex Savenko
1 parent e480c54f

multiple metrics

Showing 1 changed file with 24 additions and 25 deletions   Show diff stats
app/library/App/Controllers/GaController.php
@@ -17,6 +17,7 @@ use Google_Service_AnalyticsReporting_Metric; @@ -17,6 +17,7 @@ use Google_Service_AnalyticsReporting_Metric;
17 use Google_Service_AnalyticsReporting_ReportRequest; 17 use Google_Service_AnalyticsReporting_ReportRequest;
18 use PhalconRest\Mvc\Controllers\CrudResourceController; 18 use PhalconRest\Mvc\Controllers\CrudResourceController;
19 use Google_Service_AnalyticsReporting_Report; 19 use Google_Service_AnalyticsReporting_Report;
  20 +use phpDocumentor\Reflection\Types\Array_;
20 21
21 class GaController extends CrudResourceController { 22 class GaController extends CrudResourceController {
22 23
@@ -25,7 +26,8 @@ class GaController extends CrudResourceController { @@ -25,7 +26,8 @@ class GaController extends CrudResourceController {
25 26
26 public function getAction() { 27 public function getAction() {
27 28
28 - $getMetric = $this->request->get('metric'); 29 + $get_metrics = $this->request->get('metric');
  30 + $get_metrics = explode(',', $get_metrics);
29 31
30 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON); 32 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON);
31 $client = new Google_Client(); 33 $client = new Google_Client();
@@ -33,35 +35,32 @@ class GaController extends CrudResourceController { @@ -33,35 +35,32 @@ class GaController extends CrudResourceController {
33 $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']); 35 $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
34 $analytics = new Google_Service_AnalyticsReporting($client); 36 $analytics = new Google_Service_AnalyticsReporting($client);
35 37
36 - $param[] = ['metric' => 'ga:'.$getMetric, 'alias' => $getMetric];  
37 -  
38 - $response = [];  
39 -  
40 - foreach ($param as $item) {  
41 -  
42 - // Создание объекта DateRange.  
43 - $dateRange = new Google_Service_AnalyticsReporting_DateRange();  
44 - $dateRange->setStartDate("30daysAgo");  
45 - $dateRange->setEndDate("today"); 38 + // Создание объекта DateRange.
  39 + $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  40 + $dateRange->setStartDate("30daysAgo");
  41 + $dateRange->setEndDate("today");
  42 +
  43 + // Создание объекта Metrics.
  44 + $metrics = [];
  45 + foreach ($get_metrics as $metric) {
  46 + $metrics_obj = new Google_Service_AnalyticsReporting_Metric();
  47 + $metrics_obj->setExpression('ga:'.$metric);
  48 + $metrics_obj->setAlias($metric);
  49 + $metrics[] = $metrics_obj;
  50 + }
46 51
47 - // Создание объекта Metrics.  
48 - $metrics = new Google_Service_AnalyticsReporting_Metric();  
49 - $metrics->setExpression($item['metric'].',ga:sessionsPerUser');  
50 - //$metrics->setExpression('ga:pageviewsPerSession');  
51 - ///$sessions->setAlias($item['alias']);  
52 52
  53 + // Создание объекта ReportRequest.
  54 + $request = new Google_Service_AnalyticsReporting_ReportRequest();
  55 + $request->setViewId(self::VIEW_ID);
  56 + $request->setDateRanges($dateRange);
  57 + $request->setMetrics(array($metrics));
53 58
54 - // Создание объекта ReportRequest.  
55 - $request = new Google_Service_AnalyticsReporting_ReportRequest();  
56 - $request->setViewId(self::VIEW_ID);  
57 - $request->setDateRanges($dateRange);  
58 - $request->setMetrics(array($metrics)); 59 + $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  60 + $body->setReportRequests( array( $request) );
59 61
60 - $body = new Google_Service_AnalyticsReporting_GetReportsRequest();  
61 - $body->setReportRequests( array( $request) ); 62 + $response = $analytics->reports->batchGet( $body );
62 63
63 - $response = $analytics->reports->batchGet( $body );  
64 - }  
65 64
66 return $response->toSimpleObject(); 65 return $response->toSimpleObject();
67 66