import logging import os import httpx from dotenv import load_dotenv load_dotenv() logger = logging.getLogger("cs_agent") WECOM_BOT_WEBHOOK = os.getenv( "WECOM_BOT_WEBHOOK", "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cc88bdef-a13f-4d7e-bdb6-ee51b68b8205", ).strip() class WecomBotService: def __init__(self, webhook_url: str = WECOM_BOT_WEBHOOK): self.webhook_url = str(webhook_url or "").strip() async def send_text(self, content: str) -> bool: text = str(content or "").strip() if not text: return False if not self.webhook_url: logger.warning("[WeComBot] 未配置 webhook,跳过发送") return False payload = { "msgtype": "text", "text": { "content": text[:3500], }, } try: async with httpx.AsyncClient(timeout=10.0) as client: response = await client.post(self.webhook_url, json=payload) if response.status_code != 200: logger.warning(f"[WeComBot] 发送失败 HTTP {response.status_code}: {response.text}") return False data = response.json() ok = int(data.get("errcode", -1)) == 0 if not ok: logger.warning(f"[WeComBot] 发送失败: {data}") return ok except Exception as e: logger.warning(f"[WeComBot] 发送异常: {e}") return False wecom_bot_service = WecomBotService()