用Python开发钉钉群机器人,自动办公神器
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步。
注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。
例如:通过聚合Github、Gitlab等源码管理服务,实现源码更新同步;通过聚合Trello、JIRA等项目协调服务,实现项目信息同步;同时,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒、自动化测试的结果报告提醒、工作、生活日程安排(上班打卡、下班吃饭、健身、读书、生日、纪念日...)等等的提醒,通过自定义机器人聚合到钉钉中。
不过关于钉钉机器人网上的一些攻略年代都比较久远,代码很多都基于python2,为了与时俱进,我们尝试用python3.7来开发配置钉钉自定义机器人。
首先明确一点,钉钉自定义机器人早就不支持在手机端创建了,所以打开你的pc端或者mac端的钉钉客户端,在需要机器人的聊天群界面,点击智能群助手
随后点击添加机器人按钮
此时能看到很多已经封装好的第三方机器人,本次我们选择自定义机器人
值得一提的是,钉钉的机器人基于webhook协议,webhook呢是一个api概念,是微服务api的使用范式之一,也被称为反向api,即前端不主动发送请求,完全由后端推送,有机会会专独写一篇文章阐述webhook
在添加机器人界面里,填写一些机器人的信息
需要注意的是,在安全设置一栏里,我们选择加签的方式来验证,在此说明一下,钉钉机器人的安全策略有三种,第一种是使用关键字,就是说你推送的消息里必须包含你创建机器人时定义的关键字,如果不包含就推送不了消息,第二种就是使用加密签名,第三种是定义几个ip源,非这些源的请求会被拒绝,综合来看还是第二种又安全又灵活。
创建成功后,系统会分配给你一个webhook地址,这个地址需要保存一下,地址中有唯一的accesstoken
ok,那么怎么利用这个地址让你的机器人推送消息呢?查看官方文档: ding-doc.dingtalk.com/doc#/server…
发现文档居然还是python2.0的版本,好吧,我们自己来翻译成3.0
import time import hmac import hashlib import base64 import urllib.parse timestamp = str(round(time.time() * 1000)) secret = 'SEC90485937c351bfaed41fea8eda5f1e155bbf22842d5f9d6871999e05822fd894' secret_enc = secret.encode('utf-8') string_to_sign = '{}n{}'.format(timestamp, secret) string_to_sign_enc = string_to_sign.encode('utf-8') hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.parse.quote(base64.b64encode(hmac_code)) # print(timestamp) # print(sign) import requests,json #导入依赖库 headers={'Content-Type': 'application/json'} #定义数据类型 webhook = 'https://oapi.dingtalk.com/robot/send?access_token=f0ca7636f5812fe4815c97a72de9a7cc780c414c258b6c9a631036b1d0f49e3b×tamp='+timestamp+"&sign="+sign #定义要发送的数据 #"at": {"atMobiles": "['"+ mobile + "']" data = { "msgtype": "text", "text": {"content": '都谁没加到群里来?小心升不了班'}, "isAtAll": True} res = requests.post(webhook, data=json.dumps(data), headers=headers) #发送post请求 print(res.text) 复制代码
推送效果是下面这样的:
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里巴巴技术专家三画:如何画好架构图(文末赠书)
作者 |三画阿里巴巴技术专家 导读:技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也体现在优秀工程师在工作效率提升、产品性能优化和用户体验改善等经验方面的分享,以提高我们的专业能力。本文作者阿里巴巴技术专家三画,分享了自己和团队在画好架构图方面的理念和经验,首发于阿里内部技术分享平台,梓敬、鹏升和余乐对此文亦有贡献。 当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手、删了又来? 用一张图描述我的系统,并且让产品、运营、开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰。 先理清
- 下一篇
报告:美国AI投资占全球56% 中国第二增长最快
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 据外媒报道,由英国政府资助的科技企业家网络Tech Nation日前发布最新报告。报告显示了2015年至2019年各国企业在全球范围内获得的人工智能(AI)领域的投资情况。在这五年期间,美国吸引了全球56%的AI投资,紧随其后的是中国和英国。 Tech Nation在报告中使用了来自Dealroom、Pitchbook、Crunchbase、Aon Radford、GSMA和安永(EY)等多家机构的数据,并将英国科技行业的投资同世界上其他国家进行了对比。在报告前言中,英国首相鲍里斯·约翰逊(Boris Johnson)表示,这项研究“证实了英国作为欧洲头号科技国家的地位”,并补充说,英国在新兴技术领域处于领先地位。 约翰逊指出:“仅仅花了1年的时间,我们就打破了所有纪录,英国获得的新兴技术投资飙升了44%,超过120亿美元,比法国和德国的总和还要多。在新兴技术方面,我们获得的投资在欧洲排名第一,这些技术将改变每一个人的生活。” Tech Nation所囊括的“新兴技术”包括人工智能(AI...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装Docker,最新的服务器搭配容器使用