Я работаю над простым скриптом для отправки электронных писем через API GMail, а старый скрипт, который я нашел для доступа к их интерфейсу SMTP, не работал.run_flow жалуется на получение минимальных трех аргументов
Таким образом, я использовал следующий сценарий из их quickstart page начать сначала с чтением:
#! /usr/bin/env python
#
import httplib2
from apiclient.discovery import build
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client.tools import run
CLIENT_SECRET = '.client.json'
OAUTH_SCOPE = 'https://www.googleapis.com/auth/gmail.readonly'
STORAGE = Storage('gmail.storage')
flow = flow_from_clientsecrets(CLIENT_SECRET, scope=OAUTH_SCOPE)
http = httplib2.Http()
credentials = STORAGE.get()
if credentials is None or credentials.invalid:
credentials = run(flow, STORAGE, http=http)
http = credentials.authorize(http)
gmail_service = build('gmail', 'v1', http=http)
threads = gmail_service.users().threads().list(userId='me').execute()
if threads['threads']:
for thread in threads['threads']:
print 'Thread ID: %s' % (thread['id'])
Бег это дает NotImplementedError
, как показано на this question.
Поэтому я импортировал и вызывал run_flow
вместо run
, так как я не устанавливал gflags
для продолжения. Тем не менее, я получаю следующее сообщение об ошибке:
TypeError: run_flow() takes at least 3 arguments (3 given)
Я понимаю, из связанного вопроса, argparse
должно помочь. Я мог бы добавить вызов к parser
, который использует этот вопрос, но я бы не знал, какие аргументы передать в командной строке.
Кто-нибудь успешно реализовал что-то с этим, кто мог бы помочь?
не уверен, что «они отключили их интерфейс SMTP» означает, но я уверяю вас, Google не отключил их SMTP-интерфейс. :) –
Хмм, я устал, когда писал это: P Я думаю, что я хотел сказать, что старый скрипт Python, связанный с Google с использованием libsmtp, больше не работает. : P – icedwater