用Python开发指甲组机器人,自动化办公用品

云栖息地编号信息:[点击查看更多行业信息]

在这里,您可以找到来自不同行业的第一手云信息。你还在等什么?来吧。

最近,疫情相当严重。许多公司依靠阿里办公软件进行远程办公。虽然打钉的其他功能非常鸡肋,但机器人的功能仍然让人眼前一亮。它属于比较极客的功能,可以将第三方服务的信息聚合成钉组,实现信息的自动同步

用Python开发指甲组机器人,自动化办公用品

注意:许多人在学习Python时会遇到各种棘手的问题,没有人会轻易放弃。

例如,通过聚合Github、Gitlab和其他源代码管理服务,可以实现源代码更新同步。通过汇聚特雷洛、JIRA等项目协调服务,实现项目信息同步。同时,它支持对Webhook协议的自定义访问,并支持更多的可能性。例如,诸如操作和维护警报提醒、自动测试结果报告提醒、工作和生活安排(打卡、外出就餐、健身、阅读、生日、周年纪念等)的提醒。)通过定制机器人聚合成钉子。

然而,一些打钉机器人的在线策略有着悠久的历史,许多代码都是基于python2的。为了跟上时代的步伐,我们尝试使用python3.7来开发具有钉钉配置的定制机器人。

首先,要明确的是,打钉定制机器人在手机上长期不受支持,所以在你的电脑或mac上打开打钉客户端,点击需要机器人的聊天群组界面上的智能群组助手。

用Python开发指甲组机器人,自动化办公用品

然后单击添加机器人按钮。

用Python开发指甲组机器人,自动化办公用品

这时,我们可以看到许多包装好的第三方机器人。这一次,我们选择定制机器人。

用Python开发指甲组机器人,自动化办公用品

值得一提的是,钉住的机器人是基于webhook协议的。webhook是一个api概念,也是microservice api的使用范例之一。它也称为反向api,即前端不主动发送请求,而是由后端推送。该组织将专门在webhook上写一篇文章。

在添加机器人界面,填写一些机器人信息

用Python开发指甲组机器人,自动化办公用品

应该注意的是,在安全设置一栏中,我们选择签名的方法进行验证。在这里,我们解释说,有三个安全政策钉机器人。首先是使用关键字,这意味着您推送的消息必须包含您在创建机器人时定义的关键字。如果不包含关键字,就不能推送消息。第二是使用加密签名。第三是定义几个ip源。来自非这些来源的请求将被拒绝。总的来说,第二个是安全和灵活的。

用Python开发指甲组机器人,自动化办公用品

成功创建后,系统将为您分配一个需要保存的webhook地址,并且该地址中有一个唯一的访问令牌

好的,那么你如何使用这个地址让你的机器人发送信息呢?检查官方文件:ding-doc.dingtalk.com/doc#/server…

发现该文档实际上是python2.0版本。好吧,让我们自己把它翻译成3.0。

导入时间

导入hmac

导入hashlib

导入base64

导入urllib.parse

timestamp=str(round(time . time()* 1000))

sec 90485937 c 351 bfaed 41 fea8 EDA 5 f1 e 155 bbf 22842 D5 F9 d 6871999 e 05822 FD 894 '

secret _ enc=secret . encode( ' utf-8 ')

string_to_sign='{}n{} '。格式(时间戳、秘密)

string _ to _ sign _ enc=string _ to _ sign . encode( ' utf-8 ')

hmac_code=hmac.new(secret_enc,string_to_sign_enc,digestmod=hashlib.sha256)。文摘()

sign=URL lib . parse . quote(base64 . b64 encode(hmac _ code))

#打印(时间戳)

#打印(签名)

导入请求,json #导入依赖库

头={ '内容类型' : '应用程序/JSON'} #定义数据类型

web hook= ' https://oapi . ding talk.com/robot/send?access _ token=f0ca 7636 f 5812 Fe 4815 c 97 a 72 de 9 a 7 cc 780 c 414 c 258 b 6 c 9a 631036 B1 d 0f 49 E3 btamp= ' timestamp ' sign= ' sign

#定义发送的数据

# '在' : { '自动移动电话' : '[ ' '移动''] '

数据={

' msgtype ' : ' text ',

谁没有将“文本”: {“内容”:添加到群中?小心不要被提升。

' isAtAll ' :真}

Res=requests.post (webhook,data=json.dumps (data),headers=headers) #发送post请求

打印(res.text)

复制代码

推送效果如下:

用Python开发指甲组机器人,自动化办公用品

[云起在线教室]产品和技术专家每天分享!

课程地址:https://yqh.aliyun.com/live

立即加入社区,与专家面对面,并了解课程的最新进展!

[云栖在线课堂社区]https://c.tb.cn/F3.Z8gvnK

发布者:2020-04-14

作者:编程召唤野兽

这篇文章来自“51CTO”。如果你知道相关信息,你可以注意“51CTO”。