""" 获取飞书群聊 ID 工具 使用步骤: 1. 确保机器人已加入目标群聊 2. 运行此脚本 3. 在群聊中发送任意消息(@机器人) 4. 脚本会输出群聊 ID """ import asyncio import logging import sys from pathlib import Path # 添加项目路径 sys.path.insert(0, str(Path(__file__).parent.parent.parent)) from agent.tools.builtin.feishu.feishu_client import FeishuClient from dotenv import load_dotenv load_dotenv() from config import FEISHU_APP_ID, FEISHU_APP_SECRET logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def on_message_received(event): """消息回调函数""" print("\n" + "=" * 60) print("📩 收到消息") print("=" * 60) print(f"群聊 ID (chat_id): {event.chat_id}") print(f"发送者 ID (sender_open_id): {event.sender_open_id}") print(f"发送者姓名: {event.sender_name or '未知'}") print(f"消息内容: {event.content}") print(f"聊天类型: {event.chat_type.value}") print("=" * 60) if event.chat_type.value == "group": print(f"\n✅ 请将以下群聊 ID 配置到 .env 文件:") print(f"FEISHU_AD_PROJECT_CHAT_ID={event.chat_id}") else: print(f"\n⚠️ 这是私聊消息,群聊 ID 是 {event.chat_id}") print() def main(): print("=" * 60) print("飞书群聊 ID 获取工具") print("=" * 60) print() print("📋 使用说明:") print("1. 确保机器人已加入目标群聊") print("2. 脚本启动后,在群聊中发送任意消息(建议@机器人)") print("3. 脚本会自动输出群聊 ID") print() print(f"飞书应用 ID: {FEISHU_APP_ID}") print() print("🚀 启动监听...") print("=" * 60) print() client = FeishuClient( app_id=FEISHU_APP_ID, app_secret=FEISHU_APP_SECRET ) # 启动 WebSocket 监听(阻塞模式) try: client.start_websocket( on_message=on_message_received, blocking=True ) except KeyboardInterrupt: print("\n\n✋ 用户中断,退出程序") except Exception as e: logger.error(f"监听失败: {e}", exc_info=True) print(f"\n❌ 启动失败: {e}") print("\n请检查:") print(" 1. FEISHU_APP_ID 和 FEISHU_APP_SECRET 是否正确") print(" 2. 机器人应用是否已启用事件订阅") print(" 3. 网络连接是否正常") if __name__ == "__main__": main()