Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]GAPI - problem
Forum PHP.pl > Forum > Gotowe rozwiązania
siemieng
Witam, od dawna korzystam z statystyk google analytics, lecz dopiero niedawno natknąłem się na info o GAPI.

I tak z danych statystyk poszczególnych stron (mam z 6) chciałbym pobrać liczbę wizyt łącznie, czyli stworzyć licznik odwiedzin.

Znalazłem kilka tutoriali jak to uczynić, i tak wklejam:
  1. <?php
  2. define('ga_email','login@gmail.com');
  3. define('ga_password','password');
  4. define('ga_profile_id', '12938064');
  5.  
  6. require 'gapi.class.php';
  7. $ga = new gapi(ga_email,ga_password);
  8. $ga->requestReportData(ga_profile_id,array('browser','browserVersion'),array('pageviews'));
  9. ?>
  10.  
  11. <div id="statsWrap">
  12. <div id="statsDetailsWrap">
  13. <div id="statsCount">
  14. <?php echo $ga->getPageviews() ?>
  15. </div>
  16. <div id="statsMetric">
  17. pageviews
  18. </div>
  19. </div>
  20. <div id="byGoogle">By Google Analytics</div>
  21. </div>


Lecz ciągle generuje mi się błąd: Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Request failed, fopen provides no further information"' in C:\.www\_temp\google-analytics-counter\google-analytics-counter\simple\gapi.class.php:418 Stack trace: #0 C:\.www\_temp\google-analytics-counter\google-analytics-counter\simple\gapi.class.php(62): gapi->authenticateUser('login@gmail....', 'password') #1 C:\.www\_temp\google-analytics-counter\google-analytics-counter\simple\simple.php(44): gapi->__construct('login@gmail....', 'password') #2 {main} thrown in C:\.www\_temp\google-analytics-counter\google-analytics-counter\simple\gapi.class.php on line 418

I coś mi się chyba wydaje, że nie rozumie zasad wykorzystanie GAPI. Tak się zastanawiam czy to narzędzie jest dostępne dla wszystkich, czy tylko dla klientów komercyjnych google?questionmark.gif?

Jeśli dla wszystkich to co robię nie tak, jakie dane powinienem podać jako:
define('ga_email','yourGoogleEmail');
define('ga_password','yourGooglePass');
define('ga_profile_id','yourProfileID');

ja podaję: pełny adres gmail'a (login@gmail.com), hasło do niego oraz (i tu nie jestem pewien) identyfikator profilu: w kodzie śledzenia z google analytics otrzymałem: UA-12938064-1 - domyślam się, że to jest id profilu, próbowałem pisać 12938064, 129380641, '12938064-1', 'UA-12938064-1' i za każdym razem mam ten sam błąd (błędnej autoryzacji).

Dodam, że konto dla tej strony utworzyłem wczoraj, kod śledzenia został wykryty w google analytics, lecz jeszcze nie ma żadnych danych zgromadzonych, czyo jest powód, czy jak sądzę faktycznie czegoś nie rozumiem i coś źle robięquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif
nospor
przejrzałem przyklad u nich na stronie oraz porownalem kod.
Przyklad na stronie:
  1. $ga = new gapi('email@yourdomain.com','password');

Ma sie nijak do kodu klasy:
  1. public function __construct($auth_method) {
  2. $this->auth_method = $auth_method;
  3. }

smile.gif

Drążac dalej znalazłem:
  1. public static function authenticate($email, $password) {
  2. $auth_method = new gapiClientLogin();
  3. $auth_method->fetchToken($email, $password);
  4. return new gapi($auth_method);
  5. }

Ktore to dopiero zwraca obiekt gapi przy podaniu loginu i hasła.
Drążac dalej znalazlem przykład:
http://gapi-google-analytics-php-interface...mple.report.php
  1. define('ga_email','youremail@email.com');
  2. define('ga_password','your password');
  3. define('ga_profile_id','your profile id');
  4.  
  5. require 'gapi.class.php';
  6.  
  7. $ga = gapiClientLogin->authenticate(ga_email,ga_password);
  8.  
  9. $ga->requestReportData(ga_profile_id,array('browser','browserVersion'),array('pageviews','visits'));

Tak wiec na przyszlosc opieraj sie na aktualnych przykladach winksmiley.jpg
http://gapi-google-analytics-php-interface....com/svn/trunk/

choc przegladajac kod klasy wydaje mi sie ze powinno byc tak:
  1. $ga = gapiClientLogin::authenticate(ga_email,ga_password);
  2. //a nie
  3. //$ga = gapiClientLogin->authenticate(ga_email,ga_password);
siemieng
Poddaj się, naprawdę chyba czegoś nie rozumiem ;(

nospor, dzięki za rady, poszukałem nowej wersji klasy (http://code.google.com/p/gapi-google-analytics-php-interface/) ściągnąłem wersji gapi-1.3.zip i wedle pierwszego najprostszego przykładu:

  1. //example.account.php
  2. define('ga_email','youremail@email.com');
  3. define('ga_password','your password');
  4.  
  5. require 'gapi.class.php';
  6.  
  7. $ga = new gapi(ga_email,ga_password);
  8.  
  9. $ga->requestAccountData();
  10.  
  11. foreach($ga->getResults() as $result)
  12. {
  13. echo $result . ' (' . $result->getProfileId() . ")<br />";
  14. }


I dochodzę do wniosku, że podaje błędnie dane:
Co mam wpisać w youremail@email.com, to ma być adres poczty gmail, którym to loguję się do usługi google analytics i hasło do niego, czy też mam podać adres email w domenie której dane chce wyświetlić i dane do niego...

I dalej kolejny plik to example.filter.php, totaj potrzeba podać:
define('ga_email','youremail@email.com');
define('ga_password','your password');
define('ga_profile_id','your profile id');

I teraz czy your profile id to UA-12938064-1 fragment identyfikatora z kodu śledzącego na stronie, czy całośćquestionmark.gifquestionmark.gifquestionmark.gif

Ogólnie proszę pomoc w zrozumieniu jakie dane mam podać, żebym mógł pobrać dane statystyk z konta google analytics, ponieważ na razie wszystkie moje próby zakańczają się błędem autoryzacji......
nospor
az sobie pobralem te klase. dziala jak marzenie smile.gif

jako ID masz podac id raportu. Gdy wchodzisz w google analitics to masz link "Wyswietl raport". I ten link zawiera ID
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-2024 Invision Power Services, Inc.