Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Google Analytics API offline
Forum PHP.pl > Forum > PHP
htk
Witam,

Opiszę najpierw co chcę osiągnąć oraz co już zrobiłem.

Chcę stworzyć stronę, na której będzie przycisk odpowiadający za autoryzację z usługami Google (OAUTH). Po zalogowaniu w usługach Google mam dostęp do kont w ramach usługi Google Analytics. Wybieram więc, konto z widokiem, które mnie interesują i na tej podstawie wyświetlam np. ilośc odwiedzin, słowa kluczowe, itp. w określonym zakresie czasowym. Do tego momentu mam to zrobione.
Problem polega na tym, iż chcę bym za jakiś czas, np. następnego dnia nie musiał ponownie uzyskiwać autoryzacji do usługi Google (ponownie wpisywac loginu i hasła), lecz wcześniej zapamiętuję ID danego widoku z Google Analytics i na tej podstawie znowu wyświetlam dane z GA.

Będę wdzięczny za pomoc.
memory
Chcesz mieć internet bez internetu ? biggrin.gif. Dane offline wyświetli tylko maszyna lokalna więc dane trzeba gdzieś zapisać (Baza SQL itd).
htk
Chodzi mi o dostęp w trybie offline do Google Analytics, tzn. bez pnownego logowania. Takie rzeczy są możliwe, bo sam korzystam z narzędzia, które coś takiego mi umożliwia smile.gif

Czyli nikt, nic?
IProSoft
Jeśli już to nie chodzi Ci o dostęp offline, tylko bez ponownej autoryzacji, a to spora różnica ( chyba, że chcesz jak napisał kolega wyżej - internet bez internetu ).

Podobną funkcjonalność uzyskałem kiedyś z użyciem tej biblioteki: http://code.google.com/p/gapi-google-analy...-php-interface/

htk
Cały czas chodzi mi o dostęp offline GA (dla niekumatych: https://developers.google.com/accounts/docs...Server#offline).

Z pomocą przyszedł mi Krzysiek (http://krzysztof.dyszczyk.pl/offline-access-w-google-plus/) - jednak jego rozwiązanie wymagało poprawek.

Poniżej rozwiązanie:

  1. //standardowa autoryzacja
  2. $client = new Google_Client();
  3. $client->setApplicationName("XXX");
  4. $client->setDeveloperKey("XXX");
  5. $client->setClientId('XXX');
  6. $client->setClientSecret('XXX');
  7. $client->setRedirectUri('XXX');
  8. $client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
  9. $client->setAccessType('offline');
  10.  
  11. /**
  12. tutaj zakładam, że zdobywamy klasyczny access token, nie załączam tego kodu
  13. **/
  14.  
  15. // gdy już mamy token to zapisujemy go na później powiedzmy, że w pliku
  16. file_put_contents('access_token.txt', $_SESSION['token']);


Teraz, gdy potrzebujemy się połączyć z GA offline (bez ponownego logowania) wystarczy odświeżyć token na podstawie tego zapisanego w pliku:

  1. $access_token = file_get_contents('access_token.txt');
  2. $obj = json_decode($access_token);
  3. $json_token = $obj->{'access_token'};
  4. $client->refreshToken($json_token);


Przy standardowej autoryzacji należy jeszcze dodać:

  1. $client->setApprovalPrompt('force');


Pozwoli to na uzyskanie Refresh Tokena.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.