from django.core.management.base import BaseCommand, CommandError from api_v1.utils.wecom_webhook import send_wecom_webhook_message class Command(BaseCommand): help = "发送企业微信机器人 webhook 文本消息(用于测试)" def add_arguments(self, parser): parser.add_argument("text", type=str, help="要发送的文本内容") parser.add_argument( "--msgtype", type=str, choices=["text", "markdown"], default="text", help="消息类型(默认 text)", ) parser.add_argument("--key", type=str, default=None, help="可选:临时覆盖 settings.WECOM_WEBHOOK_KEY") parser.add_argument( "--timeout", type=float, default=10.0, help="HTTP 超时(秒)", ) def handle(self, *args, **options): text = options["text"] msgtype = options["msgtype"] key = options["key"] timeout = options["timeout"] try: resp = send_wecom_webhook_message(content=text, msgtype=msgtype, key=key, timeout_seconds=timeout) except Exception as exc: raise CommandError(str(exc)) from exc # 企业微信成功时 errcode=0 if not resp.ok: raise CommandError(f"WeCom webhook 返回失败:errcode={resp.errcode}, errmsg={resp.errmsg}, raw={resp.raw}") self.stdout.write(self.style.SUCCESS(f"OK: {resp.raw}"))