【问题标题】:oauth2, imap, gmail - fetching mails - gmail api is down and can't find reference to oauth2oauth2、imap、gmail - 获取邮件 - gmail api 已关闭并且找不到对 oauth2 的引用
【发布时间】:2012-02-17 07:15:59
【问题描述】:
  1. 我有使用 oauth2 的要求(灵活)。 (现有架构/代码)
    1. 我需要对订阅者的电子邮件标题进行一些文本处理。

我尝试过的解决方案。

我尝试下载 java 的示例代码,它正确连接到 gmail 的 imap 服务器。然而,它以 oath_version=1 响应并且需要密码。我尝试修改代码以将参数更改为其他 api,例如他们的 Contacts api oauth2,但没有成功。

问题: (多部分)

  1. Api 已关闭:http://code.google.com/googleapps/domain/email_migration/developers_guide_java.html 任何在线参考都是理想的(自上周星期三以来已关闭至少半周)。如果您想知道 - 是的,我确实在他们的论坛上发布过,然后在这里要求更新链接。

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

提前感谢您阅读这篇文章。

【问题讨论】:

  • @Ragetzaz:感谢您的链接。我一定没有很好地解释自己。我想用 oauth2 实现一个 imap 客户端。也许我帖子上的链接甚至都不正确。您发布的链接,我简要查看了所有电子邮件类 [链接]code.google.com/apis/gdata/javadoc 没有指定如何从 gmail 服务器“读取”的类。谢谢。
  • 有人有见解吗?
  • 我能够在 Ruby 中获得一个工作示例。您尝试使用哪种语言?

标签: gmail imap oauth-2.0 gmail-imap


【解决方案1】:

这是一个使用 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 gems 来处理用户登录和使用访问令牌。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 2013-08-01
    • 2013-01-17
    • 2012-09-23
    • 2018-09-06
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多