钉钉创建单人群、双人群及钉钉自定义机器人的初步使用(附python3代码)


文章目录

  • 钉钉创建单人群、双人群及钉钉自定义机器人的初步使用(附python3代码)
    • 1. 前言
    • 2. 建单人群、两个人的群
    • 3. 添加群机器人-自定义
    • 4. 获取Webhook及安全设置
    • 5. python3代码个人模板
    • 6. 添加计划任务

1. 前言

一些自动化的过比如我服务器上某个东西编译好了,我的某个服务挂掉了提醒我看一下,还有诸如代码有了新的提交和issue,Jenkins打包完成等等,之前大多是使用发邮件的方式,但是我使用邮件比较少,某些时候可能漏掉了,所以目前测试了一下钉钉自定义机器人,感觉挺不错的,建一个单人群,结合shell+python,将编译过程、服务监听、打包等耗时操作等一些需要提醒的内容发送给钉钉单人群里面就可以了。

2. 建单人群、两个人的群

在手机上使用面对面建群的方式进行建群,然后就可以创建只有一个人的群:

建两个人的群也是类似方式,建完单人群之后就可以随意拉人了,拉一个人进来就是双人群。

3. 添加群机器人-自定义

一些天气、疫情相关的机器人可以在手机上直接通过群设置->智能群助手添加->添加机器人的方式添加,但是我们这里使用的自定义机器人只能在电脑端的钉钉上操作。

4. 获取Webhook及安全设置

添加自定义机器人时会有一个设置页面,添加完后也可以在机器人的设置页面查看如下设置。

安全设置一般使用加签即可,自定义关键词和IP地址有点麻烦,使用加签方式根据当前unix时间戳计算相关密钥进行签名即可,计算方式说明文档中也有python和java代码的示例。

5. python3代码个人模板

通过外部传参的方式传递webhook和消息内容,这样更加灵活一些,后续有需求的化再添加发送消息的格式和@的人也做一下区分(注意别忘记加密钥,说明文档中为This is secret,别忘记这个位置要换):

import base64
import hashlib
import hmac
import json
import sys
import time
import urllibimport requestsdef sign():timestamp = str(round(time.time() * 1000))secret = sys.argv[2]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_res = urllib.parse.quote_plus(base64.b64encode(hmac_code))print(timestamp)print(sign_res)return timestamp, sign_resdef send_ding_tolk_message():# 请求的URL,WebHook地址webhook = sys.argv[1]header = {"Content-Type": "application/json","Charset": "UTF-8"}text = sys.argv[3]message = {"msgtype": "text","text": {"content": text},"at": {"isAtAll": True}}message_json = json.dumps(message)# 计算签名密钥并修改urltimestamp, sign_res = sign()webhook += "&timestamp=" + timestamp + "&sign=" + sign_resprint(webhook)# 发送请求并打印info = requests.post(url=webhook, data=message_json, headers=header)print(info.text)def usage():if len(sys.argv) == 4:print(sys.argv[1], sys.argv[2], sys.argv[3])send_ding_tolk_message()else:print("外部传参错误;用法: 'python3 %s WebHook地址 加签的密钥 消息内容';示例:\"python3 dingtolk_rebot.py ""\"https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx\" \"xxxx\" \"你好\"\"\n" % (sys.argv[0]))sys.exit(-1)if __name__ == "__main__":usage()

使用方式(加签后需要添加密钥):

python3 dingtolk_robot.py "Webhook" "密钥" "中午吃了吗"

6. 添加计划任务

如果有服务器的话则还可以添加执行命令到计划任务中定时执行。

在/etc/cron.d下创建dingtalk文件,然后比如写入如下内容:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
40 8 * * *   root   python3 /root/work/dingtalk_robot.py "webhook" "签名密钥" "早,记得吃早饭啊"
30 11 * * *   root   python3 /root/work/dingtalk_robot.py "webhook" "签名密钥" "中午好,记得吃午饭啊"
30 17 * * *   root   python3 /root/work/dingtalk_robot.py "webhook" "签名密钥" "下午好,记得吃晚饭啊"
30 22 * * *   root   python3 /root/work/dingtalk_robot.py "webhook" "签名密钥" "晚安,做个好梦"
40 15 * * *   root   python3 /root/work/dingtalk_robot.py "webhook" "签名密钥" "计划任务测试"

钉钉创建单人群、双人群及钉钉自定义机器人的初步使用(附python3代码)相关推荐

  1. Linux创建线程读取双口数据,linux环境下读写一次双口ram尽然要十几个毫秒。(附驱动代码)...

    linux环境下读写一次双口ram尽然要十几个毫秒.(附驱动代码) 我用的双口ram是IDT70V28,手册上说的读写时间应该是几个纳秒,我写了个linux驱动,然后做测试,发现读写一次的时间尽然是十 ...

  2. python request模块 在钉钉中创建群聊机器人,一键发送消息,定时发送(详细步骤)

    0.安装requests模块 Linux下执行 pip3 install requests 1.request简介 Reqest是Python的HTTP库,内部采用urillib3模块,但是用起来比u ...

  3. 小白向 零基础创建并简单调用钉钉自定义机器人

    背景 鉴于钉钉最近的火爆,遭受广大学生"迫害"的钉钉一首[ 钉 钉 本 钉 ,在 线 求 饶 ]在B站火了起来 作为同是分期五星的用户,面对突如其来的求助被迫学习,简单调用钉钉自定 ...

  4. 钉钉与钉钉对接集成查询表单列表详情(宜搭)连通发起审批实例(官方)(钉钉【项目事项】未审核完成=>钉钉【工作延误记录表】)

    钉钉与钉钉对接集成查询表单列表详情(宜搭)连通发起审批实例(官方)(钉钉[项目事项]未审核完成=>钉钉[工作延误记录表]) 数据源平台:钉钉 钉钉(DingTalk)是阿里巴巴集团打造的企业级智 ...

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

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

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

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

  7. 最新教程:Python开发钉钉群自定义机器人

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

  8. 走进量子计算的大门——使用量桨PaddleQuantum创建单量子比特门

    使用量桨PaddleQuantum创建单量子比特门 一.量子计算概述 量子计算机为什么能同时存储0和1? 如何测量量子计算的结果 量子计算背后的哲学原理 二.量子计算的数学基础 1.量子比特 2.量子 ...

  9. Java实现钉钉自定义机器人接入

    Java实现钉钉自定义机器人接入 1. 钉钉自定义机器人接入概述 1.1 钉钉机器人简介 1.2 自定义机器人接入 2. 钉钉自定义机器人接入实现 2.1 场景介绍 2.2 调用频率限制 2.3 创建 ...

最新文章

  1. lte 中crs_LTE网络CRS功率配置及其影响研究
  2. 科大星云诗社动态20201206
  3. 基于倒谱法、自相关法、短时幅度差法的基音频率估计算法(MATLAB及验证)
  4. Java变长数组笛卡尔积_Java 8中的流作为流的笛卡尔积(仅使用流)
  5. centos 获取硬件序列号_如何在 Linux 上查找硬件规格
  6. Java学习进阶—高级编程
  7. linux core 永久生效,【调试】Core Dump是什么?Linux下如何正确永久开启?
  8. 树莓派(raspberry pi)系统开发
  9. 软件测试经典面试题(一)给你一个水杯如何测试
  10. 【2(2N+1)魔方阵 】
  11. go env 命令介绍
  12. 头条小程序服务器设置,今日头条小程序怎么开发?如何注册申请
  13. “飞思卡尔”智能车竞赛有感
  14. hp-unix操作系统root账号被锁定的两种解决方法:
  15. APP推广的十大法宝
  16. 怎么将文字转换图片?三个小技巧分享给大家
  17. 八百呼的手机录音系统,一个划时代的进步
  18. 世界地图nameMap
  19. 【转】编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
  20. 台式计算机卡拉ok点歌系统,台式机改造歌厅点歌系统几款实用范例

热门文章

  1. Flink 命令行提交参数
  2. 火车运煤算法--全面解析
  3. 为什么说每个软件工程师,都该懂大数据技术?
  4. python+html实现前后端数据交互界面显示
  5. antD布局不能占满屏幕问题
  6. java控制台打印乱码_java控制台输出出现乱码怎么解决
  7. Hadoop 集群在WebUI界面不能下载文件
  8. TextView实现水平滚动
  9. java月份下拉菜单_实现一个日期下拉菜单
  10. java布道师_我和 Spring 技术布道师的一天