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