Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Google Analytics API offline
htk
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.07.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
htk
post
Post #2





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 8.07.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 03:07