This commit is contained in:
Flatlogic Bot 2026-02-07 19:09:40 +00:00
parent 26e52deb33
commit 1bd025b08b
4 changed files with 10 additions and 3 deletions

View File

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

View File

@ -92,6 +92,7 @@ def handle_webhook_event(data):
Main entry point for processing Facebook webhook POST data.
"""
if data.get('object') != 'page':
logger.info(f"Webhook event received but 'object' is not 'page': {data.get('object')}")
return
for entry in data.get('entry', []):
@ -99,6 +100,8 @@ def handle_webhook_event(data):
sender_id = messaging_event.get('sender', {}).get('id')
recipient_id = messaging_event.get('recipient', {}).get('id')
logger.info(f"Processing messaging event: sender={sender_id}, recipient={recipient_id}")
if not sender_id or not recipient_id:
continue
@ -118,6 +121,7 @@ def handle_webhook_event(data):
message_text = messaging_event['postback'].get('payload', "")
if not message_text:
logger.info("No message text or postback payload found in event.")
continue
# 3. Get or Create Session
@ -132,13 +136,13 @@ def handle_webhook_event(data):
sender_type='user',
message_text=message_text
)
logger.info(f"Logged user message: {message_text[:20]}...")
# 5. Determine Next Node
next_node = get_next_node(session, message_text)
if next_node:
# 6. Send Flow Reply
# Always log the attempt and update session for dev visibility
bot_text = next_node.content.get('text', '[Non-text message]')
MessageLog.objects.create(
session=session,
@ -152,6 +156,7 @@ def handle_webhook_event(data):
# Actual delivery attempt
send_fb_message(sender_id, fanpage.access_token, next_node.content)
logger.info(f"Sent flow reply: {bot_text[:20]}...")
else:
# 9. Trigger AI Fallback
ai_reply_text = get_ai_fallback_response(message_text, session)
@ -165,3 +170,4 @@ def handle_webhook_event(data):
# Actual delivery attempt
send_fb_message(sender_id, fanpage.access_token, {"text": ai_reply_text})
logger.info(f"Sent AI fallback reply: {ai_reply_text[:20]}...")