2011-09-21 9 views

risposta

11

Se si sta creando un'applicazione di account di servizio per accedere a Google Analytics.

  1. Registrarlo con Google tramite https://code.google.com/apis/console. Nella scheda Accesso API, fare clic su Crea ID client, selezionare Account servizio. Archivia il file chiave generato da Google e ricorda la password per quella chiave.
  2. Ecco po 'di codice per iniziare

    require 'rubygems' 
    require 'google/api_client' 
    
    api_client = Google::APIClient.new 
    path_to_key_file ="/path/to/key/file-privatekey.p12" 
    passphrase = "google_generated_password" 
    key = Google::APIClient::PKCS12.load_key(path_to_key_file, passphrase) 
    

Una volta che una chiave è disponibile, inizializzare l'assertore con il tuo ID cliente (email nella console API) e autorizzazione ambiti.

asserter = Google::APIClient::JWTAsserter.new(
    '[email protected]com', 
    'https://www.googleapis.com/auth/analytics.readonly', 
    key) 

# To request an access token, call authorize: 
api_client.authorization = asserter.authorize() 
puts api_client.authorization.access_token 

http://code.google.com/p/google-api-ruby-client/wiki/ServiceAccounts

+0

ottengo questo: 'Autorizzazione fallita. Messaggio del server: {"error": "invalid_grant"} '. Ho sentito dire alle persone di cambiare la modalità di concessione in modalità offline, ma c'è un modo per farlo dalla gemma rubino? – NullVoxPopuli

0

Ho risposto a qualcosa di simile in un paio di altri posti ho trovato che erano come questo ... così incassa la sua rilevante, per Ruby, usando il google-api-client (per qualsiasi apis di Google), ci sono alcuni dettagli con autenticazione quando si utilizza una chiave API anziché OAuth ...

Ho delineato questo processo (utilizzando un lato server chiave API) a the code abode.

È necessario impostare in modo esplicito il parametro authorzation su zero quando si costruisce il client, altrimenti la gem prova a utilizzare OAuth per l'autenticazione, quindi se si chiama da un server utilizzando solo una chiave API, si otterrà sempre un 401 Non autorizzato.

the code abode - google-api-client for ruby

Problemi correlati