저는 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]