v8
This commit is contained in:
parent
26e52deb33
commit
1bd025b08b
Binary file not shown.
Binary file not shown.
@ -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'),
|
||||||
]
|
]
|
||||||
@ -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]}...")
|
||||||
Loading…
x
Reference in New Issue
Block a user