0

Я пытаюсь подключиться к почтовому ящику gmail через API-интерфейс python. У меня есть рабочий пример для подключения к каталогу api для выполнения операций обслуживания пользователей, которые настроены и работают почти одинаково с этим кодом. Таким образом, я прошел через всю консоль разработчика и настройки безопасности для моего пользователя учетной записи службы, у которого есть почтовый ящик с тестовым электронным письмом, сидящим в нем, ожидающим, когда я прочитаю его с помощью этого кода. В настоящее время, мой вопрос заключается в том, что линии:gmail api http connection failed для правильно сконфигурированной учетной записи службы с делегированным доступом к домену

gmail_service = build('gmail', 'v1', http=http)
Броски:
File "./gmail_test.py", line 29, in <module> gmail_service = build('gmail', 'v1', http=http) NameError: name 'http' is not defined

Не совсем уверен, что я пропускаю как почти идентичны, специально предназначенные для доступа администратора SDk работает.

во всяком случае, вот код:

import urllib2 
from httplib2 import Http 
from googleapiclient.discovery import build 
from oauth2client.client import SignedJwtAssertionCredentials 

client_email = '<private>@developer.gserviceaccount.com' 
with open("Unsubscribe Processing.p12") as f: 
    private_key = f.read() 

creds = SignedJwtAssertionCredentials(
    client_email, 
    private_key, 
    { 
    'https://www.googleapis.com/auth/gmail.readonly' 
    }, 
    sub='[email protected]') 

auth = creds.authorize(Http()) 

gmail_service = build('gmail', 'v1', http=http) 

results = gmail_service.users().labels().list(userId='[email protected]').execute() 
labels = results.get('labels', []) 

if not labels: 
    print 'No labels found.' 
else: 
    print 'Labels:' 
    for label in labels: 
     print label['name'] 


if __name__ == '__main__': 
    main() 

ответ

1

Вы не определили, что переменная http есть.

От https://developers.google.com/gmail/api/auth/web-server, это, кажется, как создать объект службы Gmail:

http = httplib2.Http() 
http = creds.authorize(http) 
gmail_service = build('gmail', 'v1', http=http) 
+0

Я на самом деле просто поймал, что сам. Забавно, как когда-то созданный хороший вопрос приводит вас к собственному ответу ... Во всяком случае, хороший улов, и спасибо! –

+0

Нет проблем! –

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