2013-09-08 13 views
6

nodejs kullanıyorum ve google analytics'den bazı verileri görüntülemek istiyorum. Bu URL'ye erişen eğer olsun, Ancaknodejs üzerinden google analytics üzerinden erişme

https://www.googleapis.com/analytics/v3/data/ga?ids=ga%XXXXX&start-date=2013-08-17&end-date=2013-09-15&metrics=ga%3Avisits&key={YOUR_API_KEY} 

:

{"error":{"errors":[{"domain":"global","reason":"required","message":"Login Required","locationType":"header","location":"Authorization"}],"code":401,"message":"Login Required"}} 

nasıl giriş geçebilir google API kaşif üzerinde

, benim verileri almak için bu URL'yi bulmak ettik URL ile ve verilerime erişebilir miyim?

Teşekkürler!

+0

Aslında API anahtarınızı buraya koyuyor musunuz? '& key = {YOUR_API_KEY}' – datasage

+0

Evet yaptım. Ama görünüşe göre belirtmek istedim. Ben https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXXX88&metrics=ga:visits&start-date=2013-08-17&end-date=2013-09-15&access_token= 'çağırmak için isteği kullanabilirsiniz XXXXXXXX & access_type_token = taşıyıcı 've her şey çalışıyor. – sayam

+0

Ancak kodu yenilemeyi denediğimde, https: //accounts.google.com/o/oauth2/token? Client_secret = XXX & grant_type = refresh_token & refresh_token = YYYY ve client_id = ZZZZ 'isteklerini kullanarak istekte bulunmadığımda hata, geçersiz istek var.' – sayam

cevap

0

Content-Type öğesini application/x-www-form-urlencoded olarak mı ayarlıyorsunuz? Google API konsolundan

+0

Sonunda request.get kullanarak başarılı oldum. Ama yine de, bu kütüphanede bir göz atacağım, teşekkürler. – sayam

11

https://github.com/google/google-api-nodejs-client, Analytics API ve nihayet kurulum a aktive etmek gerekir: Hala Takılırsanız

, burada Google nodejs istemci kitaplığı (alfa) yayınladı dikkati çekiyor Servis Hesabı, daha sonra bir *.p12 dosyasını indirirsiniz. Bu *.p12 Dosyadan

, bunu yapmak için aşağıdaki çalıştırın *.pem dosyasına dönüştürmek gerekir:

openssl pkcs12 -in XXXXX.p12 -nocerts -nodes -out XXXXX.pem

Bir şifre sorulacaktır

, olması gerektiği notasecret

Artık ihtiyacınız olan *.pem dosyasını aldınız ve hesap e-postası, google api konsolunda görüntülenen hesap EMAIL ADDRESS.

(bkz: Analytics Google API Error 403: "User does not have any Google Analytics Account") analitik hesabına bu adresi eklemek unutmayın Aşağıdaki snippet'iyle gitmek için iyi olmalıdır

: xavier.seignard @

var googleapis = require('googleapis'), 
    JWT = googleapis.auth.JWT, 
    analytics = googleapis.analytics('v3'); 

var SERVICE_ACCOUNT_EMAIL = '[email protected]'; 
var SERVICE_ACCOUNT_KEY_FILE = __dirname + '/key.pem'; 


var authClient = new JWT(
    SERVICE_ACCOUNT_EMAIL, 
    SERVICE_ACCOUNT_KEY_FILE, 
    null, 
    ['https://www.googleapis.com/auth/analytics.readonly'] 
); 

authClient.authorize(function(err, tokens) { 
    if (err) { 
     console.log(err); 
     return; 
    } 

    analytics.data.ga.get({ 
     auth: authClient, 
     'ids': 'ga:XXXXXXXX', 
     'start-date': '2015-01-19', 
     'end-date': '2015-01-19', 
     'metrics': 'ga:visits' 
    }, function(err, result) { 
     console.log(err); 
     console.log(result); 
    }); 
}); 
0

Takip senin snippet ancak değişikliklerle p12 yerine bir json dosyası kullanıyorum (aşağıdaki kod). Ama şüphem var, nodejs'de huzurlu bir arka plan geliştiriyorum. Bu durumda, app.use() yapılan her istek için analitik bilgi elde etmek içi ga.get işlevini koymak için gerekli değildir?

var key = require('filename.json'); 
var authClient = new JWT(
key.client_email, 
null, 
key.private_key, 
['https://www.googleapis.com/auth/analytics.readonly']);