我正在使用gmail gem为gmail制作命令行工具。
def login
$username = ask 'Enter your username:'
$password = ask 'Enter your password:'
gmail = Gmail.connect!($username, $password)
say 'User Authorized!'
end
def mail
gmail = Gmail.connect!($username, $password)
to_mail = ask 'Enter email-id:'
subject_mail = ask 'Enter subject:'
body_mail = ask 'Enter body:'
email=gmail.compose do
to to_mail
subject subject_mail
body body_mail
end
gmail.deliver(email)
gmail.logout
end
使用thor gem创建不同的方法,但我无法为这两个命令创建单个登录。我怎样才能做到这一点?
为什么我不能在邮件方法中访问$ username和$ password。
我想创建一个命令登录,然后在所有不同的方法中使用用户名和密码。
答案 0 :(得分:1)
每个命令都是一个新进程,因此最后一个命令中的数据实际上已经消失。你需要坚持下去。
由于它是在本地运行的命令行工具,您可以将用户的数据保存到本地文件中,例如〜/ .yourapp / config 。因此,下次您可以首先查找本地配置文件。
当然,您可以使用Google OAuth访问用户的Google数据,而不是直接询问用户的凭据。