【问题标题】:Gmail::Client::AuthorizationError only in Production for Rails App on HerokuGmail::Client::AuthorizationError 仅在 Heroku 上 Rails 应用程序的生产中
【发布时间】:2017-10-31 19:45:22
【问题描述】:

我有一个 RoR 应用程序,它使用 gmail gem 从我的收件箱中读取电子邮件。我已经部署到 Heroku,一切正常,除了连接到 gmail。

在我的本地计算机上,它可以毫无问题地连接(在我允许安全性较低的应用访问之后)。

使用基本的gmail登录方式;

Gmail.connect!('my_email@gmail.com','password')

我只在生产中收到以下错误。

Gmail::Client::AuthorizationError: Couldn't login to given Gmail account: my_email@gmail.com (Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure))

然后我会去https://www.google.com/accounts/DisplayUnlockCaptcha(正如其他答案所建议的那样),它会在短时间内正常工作,然后突然又停止工作。

我正在使用 Ruby v2.4.1、RoR v5.1.1 和 gmail gem v0.6.0 (https://github.com/gmailgem/gmail)

任何帮助都会很棒。

【问题讨论】:

    标签: ruby-on-rails ruby heroku gmail gmail-api


    【解决方案1】:

    您要部署到域吗?这可能是由以下事实引起的:

    Heroko 甚至不会为您提供 IP 地址范围 - 他们可以、可能而且会根据需要在 Amazon 区域之间移动测功机。

    您唯一的选择是某种具有静态 IP 的代理节点,它们与之通信,可以安全地与您的 Heroku 应用通信 - 或者考虑 Heroku 是否完全适合您。

    来源:Get a finite list of IP addresses for my Heroku App?

    您似乎登录 Google 并将 IP 列入白名单(就他们而言),然后测功机因某种原因稍后切换,因此 Google 不再将您的测功机 IP 列入此应用的白名单.

    【讨论】:

    • 嗯,有道理,谢谢!我会研究一些不同的托管选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 2012-08-13
    相关资源
    最近更新 更多