Я пытаюсь настроить API gmail для автоматической отправки электронных писем с помощью примера кода Google.При попытке отправить электронное письмо я получаю сообщение об ошибке 401.
Я настроил быстрый запуск и предоставил ему доступ к моей почте Gmail для всех целей.Я могу получить доступ к своей учетной записи через API для других целей, таких как получение меток, но не отправка электронных писем.Я несколько раз пытался удалить и переделать свой токен, и я настроил SCOPES, чтобы включить отправку электронных писем, и это отображается в моей учетной записи Google.
def create_message(sender, to, subject, message_text):
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
return {'raw': base64.urlsafe_b64encode(message.as_bytes())}
with open('token.pickle', 'wb') as token:
creds=pickle.load(token)
service = build('gmail', 'v1', credentials=creds)
results = service.users().labels().list(userId='me').execute()
labels = results.get('labels', [])
print(labels)
#this script works up to here
message = service.users().messages().send(userId='me', body=create_message('myemail@gmail.com', 'testemail@gmail.com', 'Test', '')).execute()
print('Message Id: %s' % message['id'])
print(message)
Как и ожидалось, этикетки печатаются правильно, но я получаюследующая ошибка при попытке отправить сообщение:
HttpError:
, что приводит к:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}