Offlineimap:从unix pass(或gpg文件)读取刷新令牌的python代码

Offlineimap:从unix pass(或gpg文件)读取刷新令牌的python代码

我使用 Offlineimap 来组织我的电子邮件,为了使用我的工作帐户,我现在必须使用 OAuth2 身份验证。

我成功获得了刷新令牌,因此如果我oauth2_refresh_token相应地设置变量,offlineimap 就会起作用。但是,我想存储加密的刷新令牌(我使用 unix pass,将其存储为 gpg 加密文件)。

我无法设法使用 来oauth2_refresh_token_eval设置从 pass 或相应的 gpg 文件中读取刷新令牌的 python 代码,可能是因为我完全缺乏 python 知识。我尝试使用与 相同的代码remotepasseval(对于后者来说效果很好):

def get_pass(account): 
       return check_output("pass email/" + account, shell=True).splitlines()[0]

但我收到以下错误:

TypeError: a bytes-like object is required, not 'str'

事实上,offlineimaprc 模板在这里指定返回值oauth2_refresh_token_eval“必须是字节”(无论这意味着什么)。

在这种情况下使用的正确代码是什么?

答案1

这对我有用:

def get_token(account):
    return check_output("pass " + account, shell=True).decode().splitlines()[0]

相关内容