最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用还得用,

虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合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.parsetimestamp = 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&timestamp='+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)
复制代码

推送效果是下面这样的:

最新教程:Python开发钉钉群自定义机器人相关推荐

  1. java调用钉钉的群自定义机器人

    1.创建钉钉群自定义机器人 2.创建好之后钉钉会返回wobhook地址,这个地址用来访问钉钉接口,如果之前选择了加签,这个地址需要再处理,否则不需要 .(点击设置说明按钮,进入钉钉的官方文档) 3.查 ...

  2. 从 0 到 1 使用 Python 开发一个钉钉群应答机器人

    很多时候,我们都希望计算机程序能够为我们自动化的处理一些学习.工作和生活上的任务,毕竟「偷懒」可是促进科技进步和社会发展的一大动力.基于这种需求,诞生了很多种自动化的工具,比如爬虫,自动地帮我们采集数 ...

  3. 机器人聊天软件c#_使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_132 最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用 ...

  4. 使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)

    最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用 ...

  5. 通过Webhook接入钉钉群自定义机器人

    在钉钉群中添加Webhook自定义机器人, 复制Webhook地址保存: https://oapi.dingtalk.com/robot/send?access_token=xxxxxx 安全设置:选 ...

  6. 【钉钉】通过自定义机器人向钉钉群发送消息

    一.创建自定义机器人获取webhook和加签 二.引入依赖 <!--钉钉服务端SDK--><dependency><groupId>com.aliyun</g ...

  7. 用python开发微信公众平台聊天机器人

    最近用python写了一个聊天机器人的微信公众号,网上找的开发文档参差不齐,官方文档也比较老旧,还有部分小问题.于是,分享一下我的思路. 开发环境 windows sever 2008+python3 ...

  8. 用Python打造个性化DIY 群聊机器人,打发你那无处安放的时间。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云 作者:Python进阶者 想要学习Python?有问题得不到第一 ...

  9. python快速入门教程-Python 开发 14 天快速入门

    专栏亮点 零基础学习,循序渐进:专栏将编程语言的学习路线提炼为基础.中级.高级三层,内容由易到难,循序渐进,简练而生动地为读者呈现知识点. 内容全面,提炼要义:从核心概念到高级知识点,包括基本数据结构 ...

最新文章

  1. java param request_SpringMvc之@RequestParam详解
  2. 广义动量定理之作用点的应用分析
  3. c#_where关键字
  4. Win7 MongoDB可视化工具Robo 3T 1.2.1(robomongo)的安装使用
  5. nuxt服务端php,nuxt服务端部署指南
  6. hadoop streaming编程小demo(python版)
  7. mysql中timestamp,datetime,int类型的区别与优劣
  8. 递归遍历文件及子文件夹下的文件(该代码是复制过来修改过的,如果有侵作者权的话,请作者联系我,立即删除)...
  9. mysql insert on update_我可以始终使用INSERT…ON DUPLICATE UPDATE进行简单的更新/插入吗?...
  10. java成员变量注释规范_java编程规范之java注释规范
  11. 数组中常见的问题,索引越界和空指针异常
  12. 申宝公司-两利好提振股市
  13. Landsat 数据其中 Collection 1/2 、Level 1/2、Tier 1/2的区别
  14. 反向传播公式推导,BP神经网络(Back Propagation)/误差逆传播算法推导
  15. 路由器DNS被劫持 解决办法、dns 被劫持怎么解决
  16. 速读原著-UnixLinux基础(七)
  17. 产品运营常踩的七大坑,你踩过吗?
  18. CSS开发技巧实用记(一)
  19. 苹果6如何截屏_苹果商量里需要花6元,才能买到的游戏:论如何建立一个修仙门派,到底好不好玩...
  20. 论文投稿指南——中文核心期刊推荐(环境科学)

热门文章

  1. linux文件的查看指令-cat-more-less
  2. AOP的实现方式比较,cglib vs jdk
  3. LVS学习笔记之三种模式的特点概括
  4. 中国版Azure 文件服务
  5. Hibernate 动态表名映射(数据库分表) NamingStrategy
  6. 关于SEL的简单总结
  7. connect.js源码解析
  8. 读书笔记:《一生的计划》
  9. 正则表达式——获取指定IP的物理地址(二)
  10. 简析LIVE555中的延时队列