gpt4 book ai didi

python - 我从哪里获得 Authorized Gmail API 服务实例? ( python ,Gmail API)

转载 作者:太空狗 更新时间:2023-10-30 00:13:57 25 4
gpt4 key购买 nike

我正在尝试从我的 Gmail API 代码调用以便创建草稿,但我不知道从哪里获得“授权的 Gmail API 服务实例”。这是我的代码:

def CreateDraft(service, user_id, message_body):
CreateDraft('SERVICE THING NEEDS TO BE HERE','me','thisisbody')
"""Create and insert a draft email. Print the returned draft's message and id.

Args:
service: Authorized Gmail API service instance.
user_id: User's email address. The special value "me"
can be used to indicate the authenticated user.
message_body: The body of the email message, including headers.

Returns:
Draft object, including draft id and message meta data.
"""
try:
message = {'message': message_body}
draft = service.users().drafts().create(userId=user_id, body=message).execute()

print 'Draft id: %s\nDraft message: %s' % (draft['id'], draft['message'])

return draft
except errors.HttpError, error:
print 'An error occurred: %s' % error
return None

有谁知道在哪里可以找到授权的 Gmail API 服务实例?我有一个客户端 ID 和密码,但这与此无关,对吧?

最佳答案

所以我想通了。我做了以下事情:

1) 将 SCOPES 更改为:

SCOPES = 'https://mail.google.com/' 

2) 在您的计算机 (Windows 7) 上转到“C:\Users\YOURUSERNAME\.credentials

3) 删除文件“gmail-quickstart”

4)再次运行代码(quickstart.py)

5) 当消息在您的浏览器中弹出时,单击接受。

6) 检查邮件,如果您希望通过 api 发送电子邮件,您应该在其中包含您的消息。

凭据文件似乎拥有权限。更改您的权限然后删除该文件似乎可以使其完美运行。所以总的来说,如果您希望通过 api 发送邮件,您的代码应该看起来像这样:

import httplib2
import os

from apiclient import discovery
import oauth2client
from oauth2client import client
from oauth2client import tools

try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None

SCOPES = 'https://mail.google.com/'
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'Gmail API Quickstart'


def get_credentials():
"""Gets valid user credentials from storage.

If nothing has been stored, or if the stored credentials are invalid,
the OAuth2 flow is completed to obtain the new credentials.

Returns:
Credentials, the obtained credential.
"""
home_dir = os.path.expanduser('~')
credential_dir = os.path.join(home_dir, '.credentials')
if not os.path.exists(credential_dir):
os.makedirs(credential_dir)
credential_path = os.path.join(credential_dir,
'gmail-quickstart.json')

store = oauth2client.file.Storage(credential_path)
credentials = store.get()
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
flow.user_agent = APPLICATION_NAME
if flags:
credentials = tools.run_flow(flow, store, flags)
else: # Needed only for compatability with Python 2.6
credentials = tools.run(flow, store)
print 'Storing credentials to ' + credential_path
return credentials

import base64
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import mimetypes
from httplib2 import Http

from apiclient import errors

from apiclient.discovery import build
credentials = get_credentials()
service = build('gmail', 'v1', http=credentials.authorize(Http()))

def SendMessage(service, user_id, message):
"""Send an email message.

Args:
service: Authorized Gmail API service instance.
user_id: User's email address. The special value "me"
can be used to indicate the authenticated user.
message: Message to be sent.

Returns:
Sent Message.
"""
try:
message = (service.users().messages().send(userId=user_id, body=message)
.execute())
print 'Message Id: %s' % message['id']
return message
except errors.HttpError, error:
print 'An error occurred: %s' % error


def CreateMessage(sender, to, subject, message_text):
"""Create a message for an email.

Args:
sender: Email address of the sender.
to: Email address of the receiver.
subject: The subject of the email message.
message_text: The text of the email message.

Returns:
An object containing a base64 encoded email object.
"""
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
return {'raw': base64.b64encode(message.as_string())}

testMessage = CreateMessage('EMAIL ADDRESS', 'EMAIL ADDRESS', 'subject', 'YOUR MESSAGE')

testSend = SendMessage(service, 'me', testMessage)

关于python - 我从哪里获得 Authorized Gmail API 服务实例? ( python ,Gmail API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32136330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com