v3
This commit is contained in:
parent
6c3327bd3f
commit
5d275d310a
Binary file not shown.
Binary file not shown.
@ -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'),
|
||||
]
|
||||
]
|
||||
|
||||
@ -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)
|
||||
Loading…
x
Reference in New Issue
Block a user