Witam wszystkich smile.gif

Jestem na etapie pisanie statystyk do dość sporego panelu admina opartego na Kohanie 3.3. Ponieważ napisanie dobrego systemu statystyk nie jest łatwą sprawą postanowiłem użyć Google Analytics i to z tego narzędzia pobierać statystyki odnośnie strony. Google posiada dość dobre API dla developerów więc utworzyłem aplikacje, połączyłem się z Google Analytics i wyodrębniłem potrzebne mi dane. Problem polega na tym iż nie wiem jak zrobić automatyczne logowanie do aplikacji. Skrypt ma działać następująco:

1. Cron zaraz po północy odpala funkcje logującą do Google Analytics.
2. Dane są przetwarzane i dodane do MySql
3. Na podstawie danych generowane są wykresy w panelu

Jak przerobić ten kod aby logowanie odbywało się automatycznie ?

  1. <?php
  2. require_once 'src/Google_Client.php';
  3. require_once 'src/contrib/Google_AnalyticsService.php';
  4.  
  5. $client = new Google_Client();
  6. $client->setApplicationName("Panel");
  7.  
  8.  
  9. $client->setClientId('****');
  10. $client->setClientSecret('***');
  11. $client->setRedirectUri('https://localhost/');
  12. $client->setDeveloperKey('*****');
  13.  
  14.  
  15. $service = new Google_AnalyticsService($client);
  16.  
  17. if (isset($_GET['logout'])) {
  18. unset($_SESSION['token']);
  19. }
  20.  
  21. if (isset($_GET['code'])) {
  22. $client->authenticate();
  23. $_SESSION['token'] = $client->getAccessToken();
  24. $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  25. header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
  26. }
  27.  
  28. if (isset($_SESSION['token'])) {
  29. $client->setAccessToken($_SESSION['token']);
  30. }
  31.  
  32. if ($client->getAccessToken()) {
  33.  
  34. $projectId = '70376385';
  35.  
  36.  
  37. $_params[] = 'date';
  38. $_params[] = 'date_year';
  39. $_params[] = 'date_month';
  40. $_params[] = 'date_day';
  41.  
  42. $_params[] = 'visits';
  43. $_params[] = 'pageviews';
  44. $_params[] = 'bounces';
  45. $_params[] = 'entrance_bounce_rate';
  46. $_params[] = 'visit_bounce_rate';
  47. $_params[] = 'avg_time_on_site';
  48.  
  49. $from = date('Y-m-d', time()-2*24*60*60);
  50. $to = date('Y-m-d');
  51.  
  52. $metrics = 'ga:visits,ga:pageviews,ga:bounces,ga:entranceBounceRate,ga:visitBounceRate,ga:av
    gTimeOnSite'
    ;
  53. $dimensions = 'ga:date,ga:year,ga:month,ga:day';
  54. $data = $service->data_ga->get('ga:'.$projectId, $from, $to, $metrics, array('dimensions' => $dimensions));
  55.  
  56. foreach($data['rows'] as $row) {
  57. $dataRow = array();
  58. foreach($_params as $colNr => $column) echo $column . ': '.$row[$colNr].'<br>';
  59. }
  60. $_SESSION['token'] = $client->getAccessToken();
  61. } else {
  62. $authUrl = $client->createAuthUrl();
  63. print "<a class='login' href='$authUrl'>Zaloguj mnie!</a>";
  64. }
  65.  



Pozdrawiam
Arcio