Gmail API выдает 401: ошибка входа требуется только для отправки писем - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь настроить 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"
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...