V3 API hizmet Uygulamaları ve Google Analytics:-Sunucu Kimlik Doğrulaması OAuth2?
Rutin olarak kendi GA hesabımdan Google Analytics verileri çekmek için bir sunucu uygulaması yapmaya çalışıyorum. Not, sunucu tarafında kişisel bir uygulama kendi veri erişim, yani-son kullanıcı bu uygulama erişim yok.
Gibi, gibi Google API Console benim başvuru kayıt oldumHizmet Uygulamabana verdi., ^strong>İstemci KİMLİĞİve birÖzel Anahtar. Hizmet Uygulamaları kullanmayın anladığım kadarıylaUygulama GizliveYönlendirme URL-son kullanıcı, sunucu ve Sunucu Kimlik Doğrulaması bu akış içinde hiçbir yanı yok. Nitekim, Konsol API Google bana bir Sır verdi ve Yönlendirmek için bir URL bana sor vermedi.
Ne yazık ki, Google's PHP Client API içinde Servis Uygulaması kimlik doğrulaması için nasıl anlamaya olamaz. Web uygulamaları kimlik doğrulaması hakkında kapsamlı bir belge yokilebir son kullanıcı.
Google belgelerine it is possible to authenticate server-to-server by signing a JWT request with the private key öneriyor. Ben sadece PHP istemci API (kaynak göz attım ve definitely a script var, ancak bu özel anahtar ile bir istek imzalar.) içinde yapmak için nasıl anlamaya olamaz
Bir şey mi kaçırıyorum? Nasıl benim özel anahtar ile Hizmet Uygulaması ve Google PHP istemci API için kimlik doğrulaması yapabilir miyim?
Açıklık getirmek için düzenlenmiş
CEVAP
21 Temmuz 2012 UPDATE
Google Analytics API V3 şimdi OAuth2 simgeleri bir tarafından döndürülen destekler .p12-JWT imzalı isteği. Yanişimdi API w/ hizmet hesaplarını Analytics kullanabiliriz.
Şu anda her geçen gün ölçümleri 4 yıl yapıyorcehennem için sadece.
Burada bir hızlı 'n' dirty adım adım:
Google API Console gidin ve yeni bir uygulama oluşturun
Hizmetlerisekme, flipGoogle Analyticsgeçin
API Erişimisekmesini tıklayınBir OAuth2 oluşturun.0 İstemci KİMLİĞİ
adınızı girin, bir logo yüklemek ve tıklatınGelecek
seçinHizmet hesabıseçeneği ve basınİstemci KİMLİĞİ oluşturun
özel anahtarınızı yükleyin
Şimdi geri döndünAPI Erişimisayfa. Adlı bir bölüm göreceksinizHizmet hesabıbir ileİstemci KİMLİĞİveE-posta adresi
E-posta adresi gibi bir şey . kopya ^em>####@developer.gserviceaccount.com)
GA Admin adresini ziyaret edinkendi özellikleri için bir kullanıcı olarak bu e-posta Ekle
Bu bir zorunluluktur; aksi takdirde şifreli hataları alırsınız.
Github üzerinden Google PHP Client API en son alın
git submodule add https://github.com/google/google-api-php-client.git google-api-php-client-read-only
''(Güncellenmiş tüm sınıf adları ile ilgili ipuçları için teşekkürler) rulo: . n Rock
// api dependencies require_once(PATH_TO_API . 'Google/Client.php'); require_once(PATH_TO_API . 'Google/Service/Analytics.php'); // create client object and set app name $client = new Google_Client(); $client->setApplicationName(APP_NAME); // name of your app // set assertion credentials $client->setAssertionCredentials( new Google_Auth_AssertionCredentials( APP_EMAIL, // email you added to GA array('https://www.googleapis.com/auth/analytics.readonly'), file_get_contents(PATH_TO_PRIVATE_KEY_FILE) // keyfile you downloaded )); // other settings $client->setClientId(CLIENT_ID); // from API console $client->setAccessType('offline_access'); // this may be unnecessary? // create service and get data $service = new Google_Service_Analytics($client); $service->data_ga->get($ids, $startDate, $endDate, $metrics, $optParams);
Bu, belirsiz belgeler, most Google APIs do not support service accounts yet Google Analytics de dahil olmak üzere rağmen gibi görünüyor. Onlar Özet OAuth2 simgeleri ile döndü .p12 JWT talep imzaladı. Yani şu andan itibaren, senkullanamazsınız bir Google API V3 Analytics hizmet hesabı.
Çözüm:
Google API console oluşturmak, biristemciuygulama.
Google PHP Client API örnekler
client_auth_url
oluşturmak için adımları*,client_secret
*5,kullanarak izleyin ve 7**Google giriş cURL kullanarak. (Çerez dosyası kullandığınızdan emin olun!)
CURL
client_auth_url
açın ve formu doldurun. Emin sencurl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
ve set yapmakcurl_setopt($ch, CURLOPT_HEADER, 1);
authorization_code
yanıtLocation:
Başlığı olacak., *,
redirect_uri
, *client_secret
13 ve bu aktivasyon kodunu kullanarak 4, Google's OAuth2 Token machine isteği sonrası Adım. Yazı alanlarıgrant_type = "authorization_code"
içerir emin olun.Yaşasın, artık asla sona erecek
refresh_token
access_token
bir çalışma var! Post, *,redirect_uri
*client_secret
19 senin, Google's OAuth2 Token machine taleprefresh_token
access_token
süresi ve alacaksın ne zaman bir yeni bir tane.
Google için özel kimlik Doğrulaması Bi...
Uygulama *için OAuth2 ile kimlik doğru...
Gmail Hata :SMTP sunucusu güvenli bir ...
OAuth kimlik doğrulaması ve kaynak sun...
Sunucu tarafı ile Google Analytics ola...