我想從Gmail中獲取oauth或xauth標記以與gmail-oauth一起使用。我正在考慮使用OmniAuth,但它似乎不支持GMail,這意味着OmniAuth是不可能的。那是對的嗎?我錯過了什麼嗎?是否可以使用OmniAuth獲取Gmail oauth或xauth標記?
5
A
回答
2
Omniauth支持OAuth和OAuth2,這兩個都允許您驗證Google帳戶。
這裏是所有的策略,你可以通過omniauth使用: https://github.com/intridea/omniauth/wiki/List-of-Strategies
這裏有兩個谷歌的OAuth寶石:
由於每第一個寶石的文檔:
中間件添加到一個Rails應用程序在配置//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
這除了來建立主omniauth gem完成。
1
我有麻煩,像你一樣,使用帶的OAuth2和Gmail現有的寶石,因爲谷歌的協議您好!OAuth1現在已經過時,許多寶石尚未更新使用他們的OAuth2協議。我終於能夠直接使用Net::IMAP
來工作。
以下是使用OAuth2協議從Google獲取電子郵件的工作示例。本例使用mail
,gmail_xoauth
,omniauth
和omniauth-google-oauth2
寶石。
您還需要在Google's API console註冊您的應用程序才能獲取您的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. 獲取XAuth以使用Node.JS和OAuth
- 2. 是否可以使用OAuth爲GMail發送郵件
- 3. 是否可以使用VBA獲取Gmail郵件?
- 4. 是否可以使用Gmail API從一段時間間隔獲取gmail?
- 5. 如何使用GsonHttpMessageConverter獲取oauth標記?
- 6. 使用... openid獲取Gmail地址? OAuth的?
- 7. 使用oAuth獲取gmail聯繫人
- 8. Twitter身份驗證OAuth或XAuth
- 9. 針對Gmail的omniauth oauth令牌無效
- 10. 是否可以標記塊?
- 11. 使用推特登錄。 OAuth或Xauth使用linq2twitter
- 12. Devise和OmniAuth記住OAuth
- 13. 是否可以使用Gmail-api獲取最近的10封電子郵件?
- 14. Rails 3使用omniauth獲取gmail聯繫人?
- 15. 是否可以使用MEF來獲取標記爲[Export]的類的System.Type?
- 16. 是否可以使用Facebook API獲取洞察指標
- 17. 使用Devise + OmniAuth的GitHub OAuth
- 18. 是否可以使用oauth從Facebook粉絲頁面獲取視頻?
- 19. 使用iPhone上的xAuth和/或Web上的OAuth連接到Twitter?
- 20. 是否可以使用omniauth-facebook rails gem保存多個用戶?
- 21. 是否可以使用簡單標識符來命名(或標記)FormStack字段?
- 22. 使用Jmeter xpath提取器獲取oauth標記
- 23. 使用oauth2獲取gmail
- 24. 如何使用ruby omniauth-twitter gem獲得oauth token和oauth token secret?
- 25. 是否可以在Mapbox標記中使用Font Awesome圖標?
- 26. 可以使用omniauth-google-oauth2從google日曆API獲取日曆信息嗎?
- 27. python&smtplib:是否可以使用oauth2通過gmail發送郵件?
- 28. 新的Omniauth 1.0.0是否可以與Devise一起使用?
- 29. 將某些郵件標記爲通過gmail API讀取(使用Oauth)
- 30. 是否可以拖動從geojson文件獲取座標的標記?
我認爲問題是關於獲取access_token,而不僅僅是驗證。這access_token是有用的使用谷歌apis。 – robermorales 2012-05-25 11:07:42
啊,我看它更多的是OP覺得他們無法通過谷歌做omniauth身份驗證,使他們,如果他們需要推出自己想知道。 Omniauth有通過谷歌認證的擴展,但它是基本實現之上的一個步驟。 – jstim 2012-05-25 23:15:41