查看“Python钉钉提醒”的源代码
←
Python钉钉提醒
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==钉钉简介== 钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台 [1] ,提供PC版,Web版,Mac版和手机版,支持手机和电脑间文件互传。 [2] 钉钉因中国企业而生,帮助中国企业通过系统化的解决方案(微应用),全方位提升中国企业沟通和协同效率。 服务器发生故障之后,编写python代码自动发送给公司钉钉群,可实现运维报警的快速化、方便性。 [[文件:python21051301.png|400px]] ==实训步骤== ===创建钉钉机器人=== 群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步;进入一个钉钉群,点击右上角的“群设置”进入群设置页面; [[文件:python21051302.png|500px]] 选择群机器人点击进入,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群,如果需要的话,可以为机器人设置一个头像。点击"完成添加",完成后会生成Hook地址,点击“复制”按钮,即可获得这个机器人对应的Webhook地址; [[文件:python21051303.png|500px]] [[文件:python21051304.png|500px]] [[文件:python21051305.png|500px]] [[文件:python21051306.png|500px]] ===安装依赖库=== pip install requests ===推送信息到机器人=== 获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息,发起POST请求时,必须将字符集编码设置成UTF-8;msgtype:消息类型,可以根据自己的使用场景选择合适的消息类型,如text文本、link连接、markdown等;atMobiles:自定义机器人发送消息时,可以通过手机号码指定“被@人列表”,在“被@人列表”里面的人员收到该消息时,会有@消息提醒;isAtAll:bool类型,true为@所有人,否则为false; <nowiki> import requests import json def send_msg(text,url): headers = {'Content-Type': 'application/json;charset=utf-8'} json_text = { "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ "" ], "isAtAll": False } } return requests.post(url, json.dumps(json_text), headers=headers).content if __name__ == '__main__': url = 'https://oapi.dingtalk.com/robot/send?access_token=60bd4b5e21d82db59a36c2e9633aa251e57a9246abc00f6f1eca67e6d1f322d2' send_msg('马老师好,2号服务器异常,请处理',url)</nowiki> ==原代码== <nowiki> import requests import json class DingTalk_Base: def __init__(self): self.__headers = {'Content-Type': 'application/json;charset=utf-8'} self.url = '' def send_msg(self,text): json_text = { "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ "" ], "isAtAll": False } } return requests.post(self.url, json.dumps(json_text), headers=self.__headers).content class DingTalk_Disaster(DingTalk_Base): def __init__(self): super().__init__() # 填写机器人的url self.url = 'https://oapi.dingtalk.com/robot/send?access_token=60bd4b5e21d82db59a36c2e9633aa251e57a9246abc00f6f1eca67e6d1f322d2' if __name__ == '__main__': ding = DingTalk_Disaster() ding.send_msg('马老师好,1号服务器异常,请处理')</nowiki> ==拓展功能== 钉钉机器人加签功能: <nowiki> import base64 import hashlib import hmac import time import urllib.request ##钉钉sha256签名 timestamp = round(time.time() * 1000) secret = 'this is secret' secret_enc = bytes(secret,encoding='UTF-8') string_to_sign = '{}\n{}'.format(timestamp, secret) string_to_sign_enc = bytes(string_to_sign,encoding='utf-8') hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.request.quote(base64.b64encode(hmac_code)) print(timestamp) print(sign)</nowiki> 参考文档:https://zhuanlan.zhihu.com/p/67471713
返回至
Python钉钉提醒
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息