Files

60 lines
2.3 KiB
Python

#!/usr/bin/env python3
"""Test Dify with full error details"""
import urllib.request, json, ssl
ctx = ssl.create_default_context()
BASE = "https://itsupport.servyou.com.cn"
def api(method, path, data=None, token=None, timeout=60):
url = f"{BASE}{path}"
body = json.dumps(data).encode() if data else None
req = urllib.request.Request(url, data=body, method=method)
req.add_header("Content-Type", "application/json")
if token:
req.add_header("Authorization", f"Bearer {token}")
try:
resp = urllib.request.urlopen(req, context=ctx, timeout=timeout)
raw = resp.read().decode()
try:
return resp.status, json.loads(raw)
except json.JSONDecodeError:
return resp.status, {"raw": raw}
except urllib.request.HTTPError as e:
raw = e.read().decode()
try:
return e.code, json.loads(raw)
except json.JSONDecodeError:
return e.code, {"raw": raw}
# Step 1: H5 mock login
print("=== Step 1: H5 Mock Login ===")
code, body = api("POST", "/api/h5/mock-login", {"employee_id": "emp001", "employee_name": "test"})
print(f" Status: {code}")
print(f" Response: {json.dumps(body, ensure_ascii=False)}")
h5_token = body.get("data", {}).get("token", "")
# Step 2: Get current conversation (with full error)
print("\n=== Step 2: Get Current Conversation ===")
code, body = api("GET", "/api/h5/conversations/current", token=h5_token)
print(f" Status: {code}")
print(f" Response: {json.dumps(body, ensure_ascii=False)}")
# Step 3: Try sending a message directly (POST /h5/conversations/current/messages)
# This should create a conversation if none exists
print("\n=== Step 3: Send Message (auto-create conversation) ===")
code, body = api("POST", "/api/h5/conversations/current/messages", {
"content": "hello"
}, h5_token, timeout=90)
print(f" Status: {code}")
print(f" Response: {json.dumps(body, ensure_ascii=False)[:500]}")
# Step 4: After sending, check conversation again
print("\n=== Step 4: Get Conversation After Message ===")
code, body = api("GET", "/api/h5/conversations/current", token=h5_token)
print(f" Status: {code}")
conv_data = body.get("data", {})
if conv_data:
print(f" Conversation ID: {conv_data.get('id')}")
print(f" Status: {conv_data.get('status')}")
print(f" AI reply count: {conv_data.get('ai_substantive_reply_count')}")