2016-07-28 57 views
5

我想通過使用Gmail API通過Python發送電子郵件。 Everythingshould被罰款,但我仍然得到錯誤「時出現錯誤:b'Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKTUlNRS ......」這是我的代碼:Python Gmail API'not JSON serializable'

import base64 
import httplib2 

from email.mime.text import MIMEText 

from apiclient.discovery import build 
from oauth2client.client import flow_from_clientsecrets 
from oauth2client.file import Storage 
from oauth2client.tools import run_flow 


# Path to the client_secret.json file downloaded from the Developer Console 
CLIENT_SECRET_FILE = 'client_secret.json' 

# Check https://developers.google.com/gmail/api/auth/scopes for all available scopes 
OAUTH_SCOPE = 'https://www.googleapis.com/auth/gmail.compose' 

# Location of the credentials storage file 
STORAGE = Storage('gmail.storage') 

# Start the OAuth flow to retrieve credentials 
flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, scope=OAUTH_SCOPE) 
http = httplib2.Http() 

# Try to retrieve credentials from storage or run the flow to generate them 
credentials = STORAGE.get() 
if credentials is None or credentials.invalid: 
    credentials = run_flow(flow, STORAGE, http=http) 

# Authorize the httplib2.Http object with our credentials 
http = credentials.authorize(http) 

# Build the Gmail service from discovery 
gmail_service = build('gmail', 'v1', http=http) 

# create a message to send 
message = MIMEText("Message") 
message['to'] = "[email protected]" 
message['from'] = "[email protected]" 
message['subject'] = "Subject" 
body = {'raw': base64.b64encode(message.as_bytes())} 

# send it 
try: 
    message = (gmail_service.users().messages().send(userId="me",  body=body).execute()) 
    print('Message Id: %s' % message['id']) 
    print(message) 
except Exception as error: 
    print('An error occurred: %s' % error) 
+0

*錯誤是「fhkakjfwjkfbmdn ...是不是JSON序列化 – Stormbreaker

回答

4

我有同樣的問題,我假設你正在使用Python3我發現這對另一篇文章和建議是做到以下幾點:

raw = base64.urlsafe_b64encode(message.as_bytes()) 
raw = raw.decode() 
body = {'raw': raw} 

退房: https://github.com/google/google-api-python-client/issues/93

+0

這並沒有解決問題對我來說 – derchambers

+0

這對我有用 – Joe

+0

也爲我工作 –