Python
Offlineimap:python 程式碼從 unix pass(或 gpg 文件)讀取刷新令牌
我使用offlineimap 來組織我的電子郵件,為了使用我的工作帳戶,我現在必須使用OAuth2 身份驗證。
我成功地獲得了一個刷新令牌,因此如果我
oauth2_refresh_token
相應地設置變數,則 offlineimap 可以工作。但是,我想儲存加密的刷新令牌(我使用 unix pass,將其儲存為 gpg 加密文件)。我無法設法使用
oauth2_refresh_token_eval
設置從 pass 或相應的 gpg 文件中讀取刷新令牌的 python 程式碼,可能是因為我完全缺乏 python 知識。我嘗試使用與 for 相同的程式碼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
“必須是字節”的返回值(無論這意味著什麼)。在這種情況下使用的正確程式碼是什麼?
這對我有用:
def get_token(account): return check_output("pass " + account, shell=True).decode().splitlines()[0]