Проблема аутентификации при отправке электронных писем с помощью Gmail API в Django с использованием Django Rest Framewo ⇐ Python
Проблема аутентификации при отправке электронных писем с помощью Gmail API в Django с использованием Django Rest Framewo
класс SendEmailView(APIView): сериализатор_класс = SendEmailSerializer Permission_classes = [IsAuthenticated]
def post(self, request): пользователь = запрос.пользователь если не user.gmail_credentials: return Response({"ошибка": "Gmail не связан"}, status=status.HTTP_400_BAD_REQUEST) creds = Credentials.from_authorized_user_info(json.loads(user.gmail_credentials)) если creds.expired: creds.refresh(Запрос()) сервис = сборка ('gmail', 'v1', учетные данные = кредиты) to_email = request.data.get("кому") тема = request.data.get("тема") message_text = request.data.get("сообщение") если не все([to_email, тема, текст_сообщения]): return Response({"ошибка": "Отсутствуют поля"}, status=status.HTTP_400_BAD_REQUEST) пытаться: сообщение = MIMEText(текст_сообщения) сообщение['to'] = to_email message['from'] = user.email # Замените адресом отправителя сообщение['тема'] = тема raw_message = base64.urlsafe_b64encode(message.as_string().encode("utf-8")).decode("utf-8") message_body = {'raw': raw_message} send_message = service.users().messages().send(userId='me', body=message_body).execute() return Response({"message_id": send_message['id']}, status=status.HTTP_200_OK) кроме исключения как e: return Response({"ошибка": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) { "ошибка": { «код»: 401, "message": "В запросе отсутствуют необходимые учетные данные для аутентификации. Ожидается токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации. См. https://developers.google.com/identity/ ... le-project." , "ошибки": [ { "message": "Требуется вход.", "домен": "глобальный", «причина»: «требуется», "location": "Авторизация", "locationType": "заголовок" } ], "статус": "НЕ АУТЕНТИФИЦИРОВАН", "подробности": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "причина": "CREDENTIALS_MISSING", "домен": "googleapis.com", "метаданные": { "method": "caribou.api.proto.MailboxService.GetMessage", "сервис": "gmail.googleapis.com" } } ] }
Я пытаюсь отправить электронное письмо через Django, но постоянно получаю ту же ошибку.
класс SendEmailView(APIView): сериализатор_класс = SendEmailSerializer Permission_classes = [IsAuthenticated]
def post(self, request): пользователь = запрос.пользователь если не user.gmail_credentials: return Response({"ошибка": "Gmail не связан"}, status=status.HTTP_400_BAD_REQUEST) creds = Credentials.from_authorized_user_info(json.loads(user.gmail_credentials)) если creds.expired: creds.refresh(Запрос()) сервис = сборка ('gmail', 'v1', учетные данные = кредиты) to_email = request.data.get("кому") тема = request.data.get("тема") message_text = request.data.get("сообщение") если не все([to_email, тема, текст_сообщения]): return Response({"ошибка": "Отсутствуют поля"}, status=status.HTTP_400_BAD_REQUEST) пытаться: сообщение = MIMEText(текст_сообщения) сообщение['to'] = to_email message['from'] = user.email # Замените адресом отправителя сообщение['тема'] = тема raw_message = base64.urlsafe_b64encode(message.as_string().encode("utf-8")).decode("utf-8") message_body = {'raw': raw_message} send_message = service.users().messages().send(userId='me', body=message_body).execute() return Response({"message_id": send_message['id']}, status=status.HTTP_200_OK) кроме исключения как e: return Response({"ошибка": str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) { "ошибка": { «код»: 401, "message": "В запросе отсутствуют необходимые учетные данные для аутентификации. Ожидается токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации. См. https://developers.google.com/identity/ ... le-project." , "ошибки": [ { "message": "Требуется вход.", "домен": "глобальный", «причина»: «требуется», "location": "Авторизация", "locationType": "заголовок" } ], "статус": "НЕ АУТЕНТИФИЦИРОВАН", "подробности": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "причина": "CREDENTIALS_MISSING", "домен": "googleapis.com", "метаданные": { "method": "caribou.api.proto.MailboxService.GetMessage", "сервис": "gmail.googleapis.com" } } ] }
Я пытаюсь отправить электронное письмо через Django, но постоянно получаю ту же ошибку.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ищете рекомендации по созданию сводных карточек Gmail для электронных писем с заказами.
Anonymous » » в форуме Html - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-