Python

Offlineimap:python 程式碼從 unix pass(或 gpg 文件)讀取刷新令牌

  • March 6, 2022

我使用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]

引用自:https://unix.stackexchange.com/questions/690163