Python设置机器人进行数据报送及预警

大憨熊 提交于 2019-11-30 11:56:43

python设置机器人进行数据报送及预警

大家平时工作时应该也会接触到自动化邮件的问题,这个实现方式我们之前也写过,但永远有不满足的需求方,比如最近就有人喊着邮件收取不方便要收短信、要收微信、要钉钉提醒了。
今天就跟大家分享一下如何在钉钉中设置机器人实现消息推送

获取自定义机器人webhook

在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。点击“完成添加”,完成后会生成Hook地址,如下图:


点击“复制”按钮,即可获得这个机器人对应的Webhook地址,其格式如下:
https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx

使用自定义机器人

获取到Webhook地址后,用户可以向这个地址发起HTTP POST 请求,即可实现给该钉钉群发送消息。注意,发起POST请求时,必须将字符集编码设置成UTF-8。
当前自定义机器人支持文本 (text)、链接 (link)、markdown(markdown)、ActionCard、FeedCard消息类型,大家可以根据自己的使用场景选择合适的消息类型,达到最好的展示样式。
自定义机器人发送消息时,可以通过手机号码指定“被@人列表”。在“被@人列表”里面的人员收到该消息时,会有@消息提醒(免打扰会话仍然通知提醒,首屏出现“有人@你”)。
当前机器人尚不支持应答机制 (该机制指的是群里成员在聊天@机器人的时候,钉钉回调指定的服务地址,即Outgoing机器人)。

以上内容摘选自钉钉开发文档,网址:https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq
那我们如何在python中设置机器人进行数据推送呢?

一、提取数据

首先定义一下数据发送的格式,以给人力同事发送公司整体薪资情况示例
数据用之前用过的,代码如下:

import pandas as pd import pymysql config = {           'host':'localhost',           'port':33061,           'user':'root',           'password':'root'           } db = pymysql.connect(**config) sql=("""SELECT SUM(SALARY) 薪资总额,count(1) as 总人数,         avg(SALARY) as 平均薪资 from  PER_INFO.S_EMP""") data=pd.read_sql(sql,db).to_dict("record")[0] data 

二、推送信息

import requests  def post_robot(token,data):      r = requests.post( url='https://oapi.dingtalk.com/robot/send?access_token=%s'% token,                        json=data)      print(r.text) content={     "msgtype": "text",      "text": {"content": txt},      "at": {"atMobiles": [],"isAtAll": True}         }  if  __name__=='__main__':     post_robot(token,content) 

效果:

定时推送的方式大家可以参考定时发送邮件
预警推送的话大家自行在代码中添加条件就可以了

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!