2016-03-10 20 views
9

Ho un Google Service Account che la mia app utilizza per recuperare i dati da Google Analytics.Come posso autorizzare un account del servizio Google senza il file delle credenziali predefinito?

Quando ho creato l'account Ho scaricato un file client_secrets con tutte le informazioni necessarie per l'autorizzazione tramite OAuth, e ho registrato il percorso di questo file in una variabile d'ambiente chiamata GOOGLE_APPLICATION_CREDENTIALS secondo Google's documentation.

posso ora ottenere un client autenticato come questo:

authorization = Google::Auth.get_application_default(scopes) 

Questo metodo legge le credenziali fuori del file, che funziona a livello locale, ma la mia app è ospitato su Heroku dove archiviazione di file è impossibile.

The documentation states che posso fornire questo file (impossibile), eseguire la mia app su un servizio Google ufficiale (non lo farà), o riscontrare un errore.

Come posso autenticare il mio account di servizio senza il file client_secrets?

risposta

15

Ho trovato la risposta nello source code della gemma google-auth-library-ruby.

Si scopre che c'è un'altra opzione: prendere i valori dal file client_secrets e metterli nelle variabili di ambiente che si chiama GOOGLE_ACCOUNT_TYPE, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_EMAIL e GOOGLE_PRIVATE_KEY rispettivamente.

Se queste chiavi vengono popolate, le credenziali verranno caricate da lì. Non un sussurro di questo nei documenti, però.

Problemi correlati