Python第三方包之DingDingBot钉钉机器人
这个是作者自己封装的一个钉钉机器人的包,目前只支持发文本格式、链接格式、markdown格式的消息,我们可以在很多场景用到这个,比如告警通知等
安装
pipinstallDingDingBot
使用方法
fromDingDingBot.DDBOTimportDingDing #初始话DingDingBOtwebhook是钉钉机器人所必须的 dd=DingDing(webhook='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx') #发送文本消息 print(dd.Send_Text_Msg(Content='test:测试数据')) #发送链接消息 print(dd.Send_Link_Msg(Content='test',Title='测试数据',MsgUrl='https://www.baidu.com',PicUrl='https://cn.bing.com/images/search?q=outgoing%e6%9c%ba%e5%99%a8%e4%ba%ba&id=FEE700371845D9386738AAAA51DCC43DC54911AA&FORM=IQFRBA')) #发送Markdown格式的消息 print(dd.Send_MardDown_Msg(Content="#测试数据\n"+">testone",Title='测试数据'))
源码
#!/usr/bin/python
#-*-coding:UTF-8-*-
'''
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@
'''
importrequests,json
classDingDing():
"""
#钉钉官方文档
Refertoofficialdocumentation:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
"""
#初始化
def__init__(self,webhook):
self.webhook=webhook
self.session=requests.session()
self.session.headers={"Content-Type":"application/json;charset=utf-8"}
defSend_Text_Msg(self,Content:str,atMobiles:list=[],isAtAll:bool=False)->dict:
"""
:paramcontent:要发送的内容
:paramatMobiles:@指定的人,这里必须是列表,且参数为手机号
:paramisAtAll:@全体成员
:return:
"""
try:
data={
"msgtype":"text",
"text":{
"content":Content
},
"at":{
"atMobiles":atMobiles,
"isAtAll":isAtAll
}
}
response=self.session.post(self.webhook,data=json.dumps(data))
ifresponse.status_code=='200':
result={"status":True,"message":"Messagehasbeensent"}
returnresult
else:
returnresponse.text
exceptExceptionaserror:
result={"status":False,"message":f"Failedtosendmessage,Errorstack:{error}"}
returnresult
defSend_Link_Msg(self,Content:str,Title:str,MsgUrl:str,PicUrl:str=''):
"""
:paramContent:链接的内容
:paramtitle:链接的标题
:paramMsgUrl:待跳转页面的url
:paramPicUrl:消息所展示的图片
:return:
"""
try:
data={
"msgtype":"link",
"link":{
"text":Content,
"title":Title,
"picUrl":PicUrl,
"messageUrl":MsgUrl
}
}
response=self.session.post(self.webhook,data=json.dumps(data))
ifresponse.status_code=='200':
result={"status":True,"message":"Messagehasbeensent"}
returnresult
else:
returnresponse.text
exceptExceptionaserror:
result={"status":False,"message":f"Failedtosendmessage,Errorstack:{error}"}
returnresult
defSend_MardDown_Msg(self,Content:str,Title:str,atMobiles:list=[],isAtAll:bool=False):
"""
:paramContent:Markdown格式的文本,仅支持下面的格式
'''
标题
#一级标题
##二级标题
###三级标题
####四级标题
#####五级标题
######六级标题
引用
>Amanwhostandsfornothingwillfallforanything.
文字加粗、斜体
**bold**
*italic*
链接
[thisisalink](http://name.com)
图片

无序列表
-item1
-item2
有序列表
1.item1
2.item2
'''
:paramTitle:这个Markdown的标题
:paramatMobiles:@指定的人,这里必须是列表,且参数为手机号
:paramisAtAll:@全体成员
:return:
"""
try:
data={
"msgtype":"markdown",
"markdown":{
"title":Title,
"text":Content
},
"at":{
"atMobiles":atMobiles,
"isAtAll":isAtAll
}
}
response=self.session.post(self.webhook,data=json.dumps(data))
ifresponse.status_code=='200':
result={"status":True,"message":"Messagehasbeensent"}
returnresult
else:
returnresponse.text
exceptExceptionaserror:
result={"status":False,"message":f"Failedtosendmessage,Errorstack:{error}"}
returnresult
到此这篇关于Python第三方包之DingDingBot钉钉机器人的文章就介绍到这了,更多相关PythonDingDingBot内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!