Offlineimap: Unix 패스(또는 gpg 파일)에서 새로 고침 토큰을 읽는 Python 코드

Offlineimap: Unix 패스(또는 gpg 파일)에서 새로 고침 토큰을 읽는 Python 코드

저는 Offlineimap을 사용하여 이메일을 정리하고 있으며, 직장 계정을 사용하려면 이제 OAuth2 인증을 사용해야 합니다.

새로 고침 토큰을 성공적으로 얻었으므로 oauth2_refresh_token그에 따라 변수를 설정하면 오프라인imap이 작동합니다. 그런데 암호화된 새로 고침 토큰을 저장하고 싶습니다(저는 unix pass를 사용하고 gpg 암호화 파일로 저장합니다).

oauth2_refresh_token_eval패스나 해당 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'

실제로 오프라인imaprc 템플릿은 여기서 반환 값이 oauth2_refresh_token_eval"바이트여야 함"(그게 무엇을 의미하든)을 지정합니다.

이 상황에서 사용할 올바른 코드는 무엇입니까?

답변1

이것은 나에게 효과적입니다.

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

관련 정보