diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 16bfba7..3ca26c7 100644 Binary files a/core/__pycache__/urls.cpython-311.pyc and b/core/__pycache__/urls.cpython-311.pyc differ diff --git a/core/__pycache__/utils.cpython-311.pyc b/core/__pycache__/utils.cpython-311.pyc index a449e26..3ca6288 100644 Binary files a/core/__pycache__/utils.cpython-311.pyc and b/core/__pycache__/utils.cpython-311.pyc differ diff --git a/core/urls.py b/core/urls.py index 71c48db..5cf4e32 100644 --- a/core/urls.py +++ b/core/urls.py @@ -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'), -] +] \ No newline at end of file diff --git a/core/utils.py b/core/utils.py index bfb31b2..d7917e4 100644 --- a/core/utils.py +++ b/core/utils.py @@ -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]}...") \ No newline at end of file