GOOGLE ADS

пятница, 15 апреля 2022 г.

403 «В запросе недостаточно областей проверки подлинности» при создании черновиков в Google API с помощью Python

Я впервые работаю с Google API, новичок в кодировании в целом, и у меня есть вопрос, который, я уверен, очень прост, но я не могу найти ответ на него. Когда я запускаю следующий код -

credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('gmail', 'v1', http=http)
results = service.users().labels().list(userId='me').execute()
labels = results.get('labels', [])
if not labels:
print('No labels found.')
else:
print('Labels:')
for label in labels:
print(label['name'])
message_body = "This is the message"
message = {'message': message_body}
draft = service.users().drafts().create(userId='me', body=message).execute()

Я успешно могу перечислить метки в своей учетной записи gmail, но запрос на создание черновика возвращает сообщение об ошибке «Запрос не имеет достаточного запроса аутентификации». Я обнаружил, что для создания черновиков требуется одна из следующих областей:


  • https://mail.google.com/

  • https://www.googleapis.com/auth/gmail.modify

  • https://www.googleapis.com/auth/gmail.compose


но хоть убей, я не могу понять, что именно это означает или как это сделать, хотя я сделал все возможное, чтобы найти это где-нибудь.


Решение проблемы

Вероятно, в вашем коде есть глобальная переменная SCOPESсо значением, https://www.googleapis.com/auth/gmail.readonlyесли вы следуете Quickstart. Эти области используются, когда ваши пользователи перенаправляются в Google, чтобы дать вам access_tokenвозможность прочитать содержимое учетной записи gmail вашего пользователя.

Чтобы отправлять черновики и т. д., вам нужна одна из упомянутых вами областей, например https://mail.google.com/. Измените свое значение SCOPESна эту строку и удалите свои учетные данные, расположенные по адресу ~/.credentials/gmail-python-quickstart.json, как указано в кратком руководстве, чтобы получить новые учетные данные, которые могут делать больше, чем просто читать содержимое.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...