This commit is contained in:
Flatlogic Bot 2026-02-07 18:05:13 +00:00
parent 6c3327bd3f
commit 5d275d310a
4 changed files with 33 additions and 1 deletions

View File

@ -4,6 +4,7 @@ from . import views
urlpatterns = [
path('', views.home, name='home'),
path('dashboard/', views.dashboard, name='dashboard'),
path('dashboard/webhook', views.webhook, name='webhook'),
path('fanpages/', views.fanpage_list, name='fanpage_list'),
path('flows/', views.flow_list, name='flow_list'),
]
]

View File

@ -1,5 +1,8 @@
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.views.decorators.csrf import csrf_exempt
from django.http import HttpResponse
import json
from .models import Fanpage, Flow, MessageLog, ChatSession
def home(request):
@ -30,3 +33,31 @@ def fanpage_list(request):
def flow_list(request):
flows = Flow.objects.all()
return render(request, 'core/flow_list.html', {'flows': flows})
@csrf_exempt
def webhook(request):
if request.method == 'GET':
# Facebook Webhook verification
mode = request.GET.get('hub.mode')
token = request.GET.get('hub.verify_token')
challenge = request.GET.get('hub.challenge')
if mode == 'subscribe' and token:
# Check if this token matches any Fanpage verify_token
# or the one specifically mentioned by the user
if Fanpage.objects.filter(verify_token=token).exists() or token == 'pages_messaging':
return HttpResponse(challenge)
return HttpResponse('Verification failed', status=403)
elif request.method == 'POST':
# Handle incoming messages
try:
data = json.loads(request.body.decode('utf-8'))
# Process the webhook payload here in the future
# For now, just return 200 OK
return HttpResponse('EVENT_RECEIVED')
except Exception as e:
return HttpResponse('Error processing request', status=400)
return HttpResponse('Method not allowed', status=405)