Может кому понадобится. Проблема была в csrf токене. Решил проблему но как по мне это костыль.
1 в файле урлов Api/urlls.py подключил
csrf_exempt:
from django.urls import path, include
from django.views.decorators.csrf import csrf_exempt
from Sites.views import SiteListView
from .views import messagePost
app_name= 'Sites'
urlpatterns = [
path('Site/all/', SiteListView.as_view()),
path('sendMessage/', csrf_exempt(messagePost)),
]
В файле Api/views.py для обработки запроса сделал обычную функцию котораю получает данные из request.body в формате json и после обработки также возвращает json:
from django.shortcuts import render
import json
import requests
from django.http import JsonResponse
from rest_framework.response import Response
def messagePost(request):
data = json.loads(request.body.decode())
responce=dict(error=0, message="Message send", success=True)
token = "TELEGRAM_TOKEN"
url = "https://api.telegram.org/bot"
channel_id = "CHAT_ID"
url += token
method = url + "/sendMessage"
text="Имя: \n "+str(data.get('name'))+"\n Email: \n "+str(data.get('email'))+"\n Телефон:\n "+str(data.get('phone'))+"\n Сообщение:\n "+str(data.get('message'))
r = requests.post(method, data={
"chat_id": channel_id,
"text": text
})
if r.status_code != 200:
responce['error'] = 5
responce['message']="Возникла ошибка"
return JsonResponse(responce)