oauth2,imap,gmail - 抓取邮件 - gmail api已关闭,无法找到对oauth2的引用

时间:2012-01-23 23:26:27

标签: gmail imap oauth-2.0 gmail-imap

  1. 我有一个要求(灵活)使用oauth2。 (现有架构/代码)
    1. 我需要对订阅者的电子邮件标题进行一些文本操作。
  2. 我尝试过的解决方案。

    我尝试下载java的示例代码,它正确连接到gmail的imap服务器。然而,它响应oath_version = 1并期望密码。我试图按摩代码来改变params,因为其他api就像他们的Contacts api oauth2一样没有成功。

    问题: (多部分)

    1. Api已关闭:http://code.google.com/googleapps/domain/email_migration/developers_guide_java.html任何在线参考都是理想的(自上周三以来已经至少停了半周) )。如果你想知道 - 是的,我在他们的论坛上发帖,然后在这里询问更新的链接。

    2. 有没有办法:a)发出oauth2请求和b)我可以看到的任何(最小的)代码exaples都会很棒。

    3. 提前感谢您阅读此帖。

1 个答案:

答案 0 :(得分:0)

以下是使用OAuth2协议从Google获取电子邮件的一个有效的Ruby示例:

imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false)
imap.authenticate('XOAUTH2', 'example@gmail.com', 'oauth2_access_token_goes_here')
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

注意:此示例使用ruby mail gemgmail_xoauth gem,因此您需要安装此代码示例才能使用。我还使用omniauthomniauth-google-oauth2宝石来处理用户登录和使用访问令牌。