IMAP-доступ к почтовому ящику Gmail с помощью XOAUTH - PullRequest
3 голосов
/ 21 сентября 2010

Я следую примеру , я уже авторизовал свое приложение (= получил токен доступа), но попытка доступа к папке входящих сообщений приводит к следующему:

  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 (). Есть идеи?

1 Ответ

2 голосов
/ 28 ноября 2011

В приведенном выше примере для идентификации используется «анонимный», но для «Ключа потребителя» и «Секрета потребителя» необходимо установить значения, которые вы уже установили в панели управления «Управление доменами» по адресу:

https://accounts.google.com/ManageDomains

Пример:

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