Używam Oauth 2.0 firmy Google, aby uzyskać hasło dostępu użytkownika, ale nie wiem, jak go używać z imaplib, aby uzyskać dostęp do skrzynki odbiorczej.Uzyskaj dostęp do Gmail Imap przy użyciu tokenu dostępu OAuth 2.0
Odpowiedz
Poniżej znajduje się kod dla IMAP z OAuth 2,0
email = '[email protected]'
access_token = 'vF9dft4qmTc2Nvb3RlckBhdHRhdmlzdGEuY29tCg'
auth_string = 'user=%s\1auth=Bearer %s\1\1' % (email, access_token)
imap_conn = imaplib.IMAP4_SSL('imap.gmail.com')
imap_conn.debug = 4
imap_conn.authenticate('XOAUTH2', lambda x: auth_string)
imap_conn.select('INBOX')
więcej szczegółów: http://google-mail-oauth2-tools.googlecode.com/svn/trunk/python/oauth2.py
Kod został przeniesiony do github https://github.com/google/gmail-oauth2-tools/blob/master/python/oauth2.py –
IMAP nie obsługują dostępu do skrzynki bez hasła -> tak imaplib robi
IMAP obsługuje [SASL] (http://tools.ietf.org/html/rfc4959) jako rozszerzenie –
Obecnie można używać OAuth 1.0 w celu uzyskania dostępu do Gmaila przez IMAP i SMTP, ale OAuth 2.0 nie jest jeszcze obsługiwany. Tu jest link do więcej informacji: https://developers.google.com/google-apps/gmail/oauth_overview
Od 17 września 2012 r. Obsługiwany jest także OAuth 2.0. –
To jest coś, co już kopać wokół. Nie chciałem żonglować odświeżającymi tokenami dostępu, a co nie ja - w przykładzie Google odkryłem również, że jest zbyt dużo kodu standardowego. Postanowiłem po prostu napisać bardzo proste wrappery, które pozwalają na OAuth2 IMAP i SMTP, które wykorzystują obiekty Credentials i Flow z google-api-python-client.
Mam nadzieję, że to pomoże komuś.
Czy znalazłeś rozwiązanie? Patrzę na ponowne pisanie niektórych z obecnych bibliotek, aby po prostu użyć access_token. – Wasauce