Voglio ottenere token oauth o xauth da GMail da utilizzare con gmail-oauth. Sto pensando di usare OmniAuth ma sembra non supportare ancora GMail, il che significa che con OmniAuth è impossibile. È corretto? Mi sto perdendo qualcosa?È possibile ottenere token Gmail oauth o xauth con OmniAuth?
risposta
Omniauth supporta OAuth e OAuth2, che saranno sia che consente di autenticare un account Google.
Ecco tutte le strategie è possibile utilizzare tramite omniauth: https://github.com/intridea/omniauth/wiki/List-of-Strategies
Ecco i due google OAuth gemme:
Come dalla documentazione del primo gioiello:
Aggiungere il middleware per un'applicazione Rails in config/inizializzatori/omniauth.rb:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google, CONSUMER_KEY, CONSUMER_SECRET
# plus any other strategies you would like to support
end
questo è fatto oltre Per l'istituzione del principale omniauth gem.
Ho avuto problemi, come te, utilizzando gemme esistenti con OAuth2 e Gmail poiché il protocollo OAuth1 di Google è ora deprecato e molte gemme non sono ancora state aggiornate per utilizzare il loro protocollo OAuth2. Finalmente sono riuscito a farlo funzionare usando Net::IMAP
direttamente.
Ecco un esempio pratico di recupero dell'e-mail da Google utilizzando il protocollo OAuth2. Questo esempio utilizza le gemme mail
, gmail_xoauth
, e omniauth-google-oauth2
.
Avrete anche bisogno di registrare la vostra app in Google's API console per ottenere i token API.
# in an initializer:
ENV['GOOGLE_KEY'] = 'yourkey'
ENV['GOOGLE_SECRET'] = 'yoursecret'
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['GOOGLE_KEY'], ENV['GOOGLE_SECRET'], {
scope: 'https://mail.google.com/,https://www.googleapis.com/auth/userinfo.email'
}
end
# ...after handling login with OmniAuth...
# in your script
email = auth_hash[:info][:email]
access_token = auth_hash[:credentials][:token]
imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false)
imap.authenticate('XOAUTH2', email, access_token)
imap.select('INBOX')
imap.search(['ALL']).each do |message_id|
msg = imap.fetch(message_id,'RFC822')[0].attr['RFC822']
mail = Mail.read_from_string msg
puts mail.subject
puts mail.text_part.body.to_s
puts mail.html_part.body.to_s
end
- 1. Ottenere un indirizzo Gmail con ... openid? OAuth?
- 2. accesso Gmail IMAP con OAuth 2.0 token di accesso
- 3. Come ottenere l'accesso OAuth a GMail?
- 4. Qual è la differenza tra BasicAuth, OAuth e XAuth?
- 5. Come ottenere token OAuth per jira
- 6. Android Twitter xAuth esempio con twitter4j
- 7. API Instapaper e Javascript XAuth
- 8. omniauth OAuthException & OAuth :: Non autorizzato
- 9. Implementazione Google OAuth con JQuery, è possibile?
- 10. Token Github Oauth per Golang
- 11. OAuth token di sicurezza
- 12. Zend Framework Twitter OAuth + Token
- 13. Richiesta token OAuth da BitBucket
- 14. Connessione a gmail tramite hwi/oauth-bundle
- 15. Qual è il link per google oauth token?
- 16. Twitter OAuth - Token di accesso non valido o scaduto
- 17. Come ottenere il token di accesso per google oauth?
- 18. Scadenza e rinnovo del token Facebook, con Koala e omniauth-facebook
- 19. Come utilizzare l'autenticazione http in oggetto con un token omniauth opzionale come token di autenticazione
- 20. come ottenere token di accesso oauth per Facebook utilizzando ruby
- 21. Il token di accesso OAuth 2.0 è scaduto e un token di aggiornamento non è disponibile
- 22. Perché Twitter restituisce un "Impossibile autenticare firma o token oauth?"
- 23. Facebook graphApi oAuth - come ottenere il token di accesso?
- 24. Come implementare oAuth PHP per il feed Atom di Gmail?
- 25. OmniAuth usando google OAuth 2 strategia fallimento portata
- 26. Come ottenere creare un token di accesso in ruby su rotaie per contatti gmail
- 27. È possibile utilizzare OAuth 2.0 senza un server di reindirizzamento?
- 28. Come utilizzare il token di aggiornamento per ottenere un nuovo token di accesso (django-oauth-toolkit)?
- 29. Come ottenere un token di accesso google fittizio per testare oauth google api?
- 30. ottiene token oauth con client php ufficiale tumblrs
Penso che la domanda riguardi ottenere il token di accesso, non solo l'autenticazione. Questo access_token è utile per usare google apis. – robermorales
Ah, ho letto di più che l'OP sentiva di non poter fare l'autenticazione con omniauth via google, così si chiedevano se avessero bisogno di eseguire il proprio. Omniauth ha estensioni per l'autenticazione via google, ma è un gradino sopra l'implementazione di base. – jstim