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) 效果:
定时推送的方式大家可以参考定时发送邮件
预警推送的话大家自行在代码中添加条件就可以了
来源:https://blog.csdn.net/wuyanleiluo/article/details/101348003
