我正在處理一個簡單的腳本通過GMail API發送電子郵件,而我發現訪問其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)
我從鏈接的問題是應該幫助理解。我可以添加該問題使用的parser
調用,但我不知道在命令行上傳遞什麼參數。
任何人都可以成功實施這個誰可以給予一些幫助?
不知道「他們已停用SMTP接口」的意思,但我向你保證,谷歌還沒有禁用的SMTP接口。 :) – 2014-10-20 16:15:15
嗯,當我寫這篇文章的時候,我感到很疲倦:P我想我的意思是說使用libsmtp連接到Google的舊Python腳本不再工作。 :P – icedwater 2014-10-21 01:30:52