我正在为客户编写一个定制的备份解决方案,我可以轻松验证和检索电子邮件。当访问令牌过期时会出现问题,我使用刷新令牌来获取新的访问令牌,这工作正常,但后来我遇到了问题,我需要继续获取消息,但出现 imap 错误
vendor/bundle/ruby/3.1.0/gems/net-imap-0.4.6/lib/net/imap.rb:2569:in get_tagged_response': Session invalidated - AccessTokenExpired (Net::IMAP::ByeResponseError)
我已检查新的访问令牌是否已创建并在未来的日期/时间到期
那么我打电话
imap.authenticate('XOAUTH2',customer_email,customer_access_token)
但我收到上述错误。
我没有使用 imap = Net::IMAP.new
创建新的 imap 。所以我想知道是否不能重用 imap 对象,而必须创建一个新的对象,或者是否有一种方法可以重置错误。
感谢@arnt和@Max的评论
经过进一步研究,它不允许您重用该对象,因此您必须使用 imap = Net::IMAP.new