""" 端到端测试:审批消息发送到个人和项目群 验证配置:个人(ou_498988d823b61ab89c9afe4310f85bb4)+ 项目群(oc_7940ec97cde40b245cff9cb606ff1ac7) """ import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent.parent.parent)) from dotenv import load_dotenv load_dotenv() from agent.tools.builtin.feishu.feishu_client import FeishuClient from config import ( FEISHU_APP_ID, FEISHU_APP_SECRET, FEISHU_OPERATOR_OPEN_ID, FEISHU_AD_PROJECT_CHAT_ID ) print("=" * 70) print("端到端测试:审批消息发送验证") print("=" * 70) print() print(f"飞书应用 ID: {FEISHU_APP_ID}") print(f"个人 Open ID: {FEISHU_OPERATOR_OPEN_ID}") print(f"项目群聊 ID: {FEISHU_AD_PROJECT_CHAT_ID}") print() # 检查配置 if not FEISHU_OPERATOR_OPEN_ID: print("❌ 错误:FEISHU_OPERATOR_OPEN_ID 未配置") sys.exit(1) if not FEISHU_AD_PROJECT_CHAT_ID: print("❌ 错误:FEISHU_AD_PROJECT_CHAT_ID 未配置") sys.exit(1) client = FeishuClient( app_id=FEISHU_APP_ID, app_secret=FEISHU_APP_SECRET ) # 模拟审批消息 test_message = """📋 **广告调控决策审批(测试)** 请求ID: test_e2e_20260418_001 时间: 2026-04-18 00:30 🔶 待审批操作(3 个): ---------------------------------------- ⏸️ 暂停: 1 个 ⬇️ 降价: 2 个 前 3 个示例: 1. 广告 ID: 12345 | R500_test_ad_1 | 操作: pause 理由: 动态ROI为1.5,低于R500组中位数30% 2. 广告 ID: 12346 | R500_test_ad_2 | 操作: bid_down 3% 理由: 动态ROI为2.2,低于R500组中位数11% 3. 广告 ID: 12347 | R330_test_ad_1 | 操作: bid_down 5% 理由: 动态ROI为1.8,低于R330组中位数15% --- 💬 **请回复以下内容进行审批**: - 回复 "通过" → 批准所有操作 - 回复 "拒绝" → 拒绝所有操作 - 回复 "广告12345不要暂停" → 修改决策 📊 详细报表将随后发送(Excel在线表格) """ print("测试 1/2:发送消息到个人") print("-" * 70) try: result_personal = client.send_message(to=FEISHU_OPERATOR_OPEN_ID, text=test_message) print("✅ 发送成功!") print(f" 消息 ID: {result_personal.message_id}") print(f" 接收者: {FEISHU_OPERATOR_OPEN_ID}") print() except Exception as e: print(f"❌ 发送失败: {e}") print() print("测试 2/2:发送消息到项目群聊") print("-" * 70) try: result_group = client.send_message(to=FEISHU_AD_PROJECT_CHAT_ID, text=test_message) print("✅ 发送成功!") print(f" 消息 ID: {result_group.message_id}") print(f" 群聊 ID: {result_group.chat_id}") print() except Exception as e: print(f"❌ 发送失败: {e}") print() print("=" * 70) print("验证步骤:") print("=" * 70) print() print("1️⃣ 检查个人飞书消息,应该收到上述测试消息") print("2️⃣ 检查项目群聊,应该收到相同的测试消息") print("3️⃣ 在任一位置回复'通过'或'拒绝',系统应能识别") print() print("如果两处都收到消息,说明配置成功!✅") print()