MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / do_POST

Method do_POST

scripts/get_chat_ids.py:31–106  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

29 """简单的 HTTP 处理器,用于捕获飞书事件的 chat_id"""
30
31 def do_POST(self):
32 content_length = int(self.headers.get('Content-Length', 0))
33 body = self.rfile.read(content_length)
34
35 try:
36 event = json.loads(body.decode('utf-8'))
37 event_type = event.get("type", "")
38
39 # 跳过 url_verification
40 if event_type == "url_verification":
41 challenge = event.get("challenge", "")
42 self.send_response(200)
43 self.send_header('Content-Type', 'application/json')
44 self.end_headers()
45 self.wfile.write(json.dumps({"challenge": challenge}).encode('utf-8'))
46 return
47
48 # 解析事件
49 header = event.get("header", {})
50 event_type = header.get("event_type", "")
51
52 if event_type == "im.message.receive_v1":
53 event_data = event.get("event", {})
54 message = event_data.get("message", {})
55 sender = event_data.get("sender", {})
56
57 chat_id = message.get("chat_id", "")
58 msg_type = message.get("msg_type", "")
59 content_raw = message.get("content", "{}")
60
61 # 解析消息内容
62 try:
63 content = json.loads(content_raw) if isinstance(content_raw, str) else content_raw
64 except json.JSONDecodeError:
65 content = {"text": content_raw}
66
67 text = content.get("text", "")
68 sender_type = sender.get("sender_type", "")
69 open_id = sender.get("sender_id", {}).get("open_id", "")
70 user_id = sender.get("sender_id", {}).get("user_id", "")
71
72 # 跳过 bot 消息
73 if sender_type == "app_bot":
74 return
75
76 # 打印 chat_id 信息
77 print("\n" + "="*60)
78 print(f"📱 收到消息!")
79 print("="*60)
80 print(f" chat_id: {chat_id}")
81 print(f" open_id: {open_id}")
82 print(f" user_id: {user_id or '(空)'}")
83 print(f" sender_type:{sender_type}")
84 print(f" msg_type: {msg_type}")
85 print(f" 消息内容: {text[:50]}...")
86 print("="*60)
87 print("\n👉 请将上面的 chat_id 复制到 roles.json 中对应的角色下")
88 print(" 例如:\"rolea\": { \"feishu_chat_id\": \"" + chat_id + "\" }\n")

Callers

nothing calls this directly

Calls 4

getMethod · 0.80
readMethod · 0.80
decodeMethod · 0.80
encodeMethod · 0.80

Tested by

no test coverage detected