美文网首页
Python 钉钉机器人

Python 钉钉机器人

作者: 是阿离 | 来源:发表于2017-10-23 21:55 被阅读0次

问题

找一个能够能够将本地主机监控日志发送到移动端的工具。微信不允许调用web接口,找到了钉钉。

简单使用

主要测试了读取本机文件通过钉钉机器人向钉钉群组发送信息
1、下载桌面版钉钉,在桌面版钉钉中新建一个测试群组,添加一个自定义机器人。
2、在本地新建一个dingTalkSend.py文件,主要包含获取告警文件并进行告警信息格式化,通过钉钉机器人将告警信息发送给移动端与PC端
3、将dingTalkSend.py放置在后台,每隔15分钟读取告警文件并调用钉钉机器人
发送告警信息的主要代码为:

class dingRobot():

    def __init__(self):
        self.url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx"

    def request(self, url, method, data=None, head={}):
        request = urllib2.Request(url=url, headers=head)
        request.get_method = lambda: method
        httpRes = urllib2.urlopen(request, data)
        content = httpRes.read()
        httpRes.close()
        return content

    def postStart(self, infoContent):
        data = {}
        data['msgtype'] = 'markdown'
        data['markdown'] = {}
        data['markdown']['title'] = '监控信息'
        data['markdown']['text'] = infoContent
        data = json.dumps(data)
        head = {"Content-Type": "application/json"}
        content = self.request(self.url, "POST", data, head)
        return content

    def dingStart(self, warnInfoDict):
        print itype
        for infoItem in warnMessageDict['pending']:
            self.postStart(infoItem)
        for infoItem in warnMessageDict['ok']:
            self.postStart(infoItem)
  • __init__()中初始化自己的钉钉机器人,其中access_token=xxxxxxxx是在钉钉中创建机器人时生成的串
  • post_start()中定义了发送信息的样式,钉钉支持text、link、markdown、ActionCard等
  • ding_start():通过该方法传入待发送信息{string, []}

调用方法为:

    ddRobot = dingRobot()
    ddRobot.dingStart(warnMessageDict)

测试结果:

钉钉机器人

参考文章

钉钉API 自定义机器人
运用钉钉机器人功能发送自动化结果报告

相关文章

网友评论

      本文标题:Python 钉钉机器人

      本文链接:https://www.haomeiwen.com/subject/dklzuxtx.html