2010-09-20 4 views
3

Je suis le example, je l'ai déjà autorisé ma demande (= obtenu le jeton d'accès) mais en essayant d'accéder aux résultats de la boîte de réception de cette:IMAP vers la boîte de réception Gmail avec XOAUTH

21:14.12 > NDIB1 AUTHENTICATE XOAUTH 
    21:14.17 < + 
    21:14.17 write literal size 480 
    21:14.74 < NDIB1 NO [ALERT] Invalid credentials (Failure) 
    21:14.74 NO response: [ALERT] Invalid credentials (Failure) 

C'est la code:

import xoauth 
import oauth2 as oauth 
import imaplib 

consumer = oauth.Consumer('anonymous', 'anonymous') 
access_token = oauth.Token(my_access_token, my_access_token_secret) 
user = my_gmail_address 
proto = "imap" # is it right??? 
xoauth_requestor_id = user # and this??? 
xoauth_string = xoauth.GenerateXOauthString(consumer, access_token, user, proto, xoauth_requestor_id, '', '') 
conn = imaplib.IMAP4_SSL('imap.googlemail.com') 
conn.debug = 4 
conn.authenticate('XOAUTH', lambda x: xoauth_string) 
conn.select('INBOX') 
print conn.list() 

Échec de l'appel conn.authenticate(). Une idée?

+0

Avez-vous jamais ce résoudre? J'ai le même problème. –

+0

Avez-vous besoin de spécifier un port? (993) – Malachi

Répondre

2

L'exemple ci-dessus utilise « anonyme » pour l'authentification mais, vous devez définir « Clé des consommateurs » et « Secret consommateurs » aux valeurs que vous avez déjà définies dans le panneau de commande « Gérer les domaines » à:

https://accounts.google.com/ManageDomains

Exemple:

consumer = oauth.Consumer(<OAuth-Consumer-Key>, <OAuth-Consumer-Secret>) 
+0

Cela n'est vrai que si vous avez votre propre domaine. La clé/secret «anonyme» est conforme à l'exemple de code Google pour OAuth à 3 pattes. –

Questions connexes