2010-09-20 2 views
3

Я после example, я уже санкционировали мое заявление (= получено маркер доступа), но при попытке получить доступ к результатам входящих сообщений в этом:IMAP в почтовый ящик Gmail с 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) 

Это код:

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() 

Он не работает при вызове conn.authenticate(). Есть идеи?

+0

ли вы когда-нибудь решить эту проблему? У меня та же проблема. –

+0

Вам нужно указать порт? (993) – Malachi

ответ

2

В приведенном выше примере используется «анонимный» для проверки подлинности, но, вы должны установить «Consumer Key» и «Consumer секретно» на значения, которые вы уже установили в панели управления «Управление доменами» по адресу:

https://accounts.google.com/ManageDomains

Пример:

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

Это справедливо только в том случае, если у вас есть собственный домен. «Анонимный» ключ/секрет соответствуют образцу кода Google для 3-стороннего OAuth. –

Смежные вопросы