| 1234567891011121314151617181920212223 |
- from __future__ import annotations
- from gateway.core.channels.feishu.types import IncomingFeishuEvent
- class DefaultUserIdentityResolver:
- """
- 飞书用户身份解析:feishu:{tenant_key}:{app_id}:{open_id}。
- 无 open_id 时退化为 chat_id,便于群场景或异常事件仍可按会话隔离。
- """
- def __init__(self, *, tenant_fallback: str = "_") -> None:
- self._tenant_fallback = tenant_fallback
- def resolve_user_id(self, event: IncomingFeishuEvent) -> str:
- tenant = event.tenant_id or self._tenant_fallback
- app = event.app_id
- if event.open_id:
- return f"feishu:{tenant}:{app}:{event.open_id}"
- if event.chat_id:
- return f"feishu:{tenant}:{app}:chat:{event.chat_id}"
- return f"feishu:{tenant}:{app}:unknown"
|