钉钉机器人添加markdown
This commit is contained in:
49
dingtalk.py
49
dingtalk.py
@@ -34,6 +34,7 @@ class DingTalkBot:
|
|||||||
url = f"{self.webhook}×tamp={timestamp}&sign={sign}"
|
url = f"{self.webhook}×tamp={timestamp}&sign={sign}"
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
|
||||||
def send_text(self, content: str, at_mobiles=None, is_at_all=False):
|
def send_text(self, content: str, at_mobiles=None, is_at_all=False):
|
||||||
"""
|
"""
|
||||||
发送文本消息
|
发送文本消息
|
||||||
@@ -65,9 +66,55 @@ class DingTalkBot:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"钉钉消息发送异常: {e}")
|
logger.error(f"钉钉消息发送异常: {e}")
|
||||||
|
|
||||||
|
def send_markdown(self, title: str, text: str, at_mobiles=None, is_at_all=False):
|
||||||
|
"""
|
||||||
|
发送markdown消息
|
||||||
|
|
||||||
|
:param title: 消息标题
|
||||||
|
:param text: markdown格式的消息内容
|
||||||
|
:param at_mobiles: 需要@的手机号组成的列表,可选
|
||||||
|
:param is_at_all: 是否@所有人,默认False
|
||||||
|
"""
|
||||||
|
at_mobiles = at_mobiles or []
|
||||||
|
data = {
|
||||||
|
"msgtype": "markdown",
|
||||||
|
"markdown": {
|
||||||
|
"title": title,
|
||||||
|
"text": text
|
||||||
|
},
|
||||||
|
"at": {
|
||||||
|
"atMobiles": at_mobiles,
|
||||||
|
"isAtAll": is_at_all
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
url = self._gen_signed_url() if self.secret else self.webhook
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.post(url, json=data, timeout=5)
|
||||||
|
response.raise_for_status()
|
||||||
|
result = response.json()
|
||||||
|
if result.get("errcode", -1) != 0:
|
||||||
|
logger.error(f"钉钉markdown消息发送失败: {result}")
|
||||||
|
else:
|
||||||
|
logger.info("钉钉markdown消息发送成功")
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"钉钉markdown消息发送异常: {e}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
webhook = "https://oapi.dingtalk.com/robot/send?access_token=fb70c1561d8beba94b4f11568f4bb15e3ae07ccbdc8ac19676434a9d1cd17546" # 填写你的webhook
|
webhook = "https://oapi.dingtalk.com/robot/send?access_token=fb70c1561d8beba94b4f11568f4bb15e3ae07ccbdc8ac19676434a9d1cd17546" # 填写你的webhook
|
||||||
secret = "SEC1ae7cd2f1a6f9da3611af37da3e7d954c1e8533fc073c6c8cc5e5af3b6e5926b" # 填写你的加签token(如果有),否则留空
|
secret = "SEC1ae7cd2f1a6f9da3611af37da3e7d954c1e8533fc073c6c8cc5e5af3b6e5926b" # 填写你的加签token(如果有),否则留空
|
||||||
dingtalk = DingTalkBot(webhook, secret)
|
dingtalk = DingTalkBot(webhook, secret)
|
||||||
dingtalk.send_text("测试消息")
|
dingtalk.send_text("测试消息")
|
||||||
|
|
||||||
|
# 测试markdown消息
|
||||||
|
markdown_content = """
|
||||||
|
## 系统通知
|
||||||
|
- **状态**: 正常运行
|
||||||
|
- **CPU使用率**: 65%
|
||||||
|
- **内存使用率**: 78%
|
||||||
|
|
||||||
|
> 详细信息请查看监控面板
|
||||||
|
"""
|
||||||
|
dingtalk.send_markdown("系统状态报告", markdown_content)
|
||||||
Reference in New Issue
Block a user