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

最近疫情比较严重,很多公司依靠阿里旗下的办公软件钉钉来进行远程办公,当然了,钉钉这个产品真的是让人一言难尽,要多难用有多难用,真的让人觉得阿里的pm都是脑残才会设计出这种脑残产品,不过吐槽归吐槽,该用还得用,虽然钉钉别的功能很鸡肋,但是机器人这个功能还是让人眼前一亮,属于比较极客的功能,它可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github、Gitlab等源码管理服务,实现源码更新同步;通过聚合Trello、JIRA等项目协调服务,实现项目信息同步;同事,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒、自动化测试的结果报告提醒、工作、生活日程安排(上班打卡、下班吃饭、健身、读书、生日、纪念日...)等等的提醒,通过自定义机器人聚合到钉钉中。

不过关于钉钉机器人网上的一些攻略年代都比较久远,代码很多都基于python2,为了与时俱进,我们尝试用python3.7来开发配置钉钉自定义机器人。

首先明确一点,钉钉自定义机器人早就不支持在手机端创建了,所以打开你的pc端或者mac端的钉钉客户端,在需要机器人的聊天群界面,点击智能群助手

随后点击添加机器人按钮

此时能看到很多已经封装好的第三方机器人,本次我们选择自定义机器人

值得一提的是,钉钉的机器人基于webhook协议,webhook呢是一个api概念,是微服务api的使用范式之一,也被成为反向api,即前端不主动发送请求,完全由后端推送,有机会会单门写一篇文章阐述webhook

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

需要注意的是,在安全设置一栏里,我们选择加签的方式来验证,在此说明一下,钉钉机器人的安全策略有三种,第一种是使用关键字,就是说你推送的消息里必须包含你创建机器人时定义的关键字,如果不包含就推送不了消息,第二种就是使用加密签名,第三种是定义几个ip源,非这些源的请求会被拒绝,综合来看还是第二种又安全又灵活。

创建成功后,系统会分配给你一个webhook地址,这个地址需要保存一下,地址中有唯一的accesstoken

ok,那么怎么利用这个地址让你的机器人推送消息呢?查看官方文档: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

发现文档居然还是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&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)

推送效果是下面这样的:

原文转载自「刘悦的技术博客」 v3u.cn/a_id_132

到此这篇关于详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)的文章就介绍到这了,更多相关python3.7 钉钉群自定义机器人内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python3实现钉钉消息推送的方法示例

    背景 偶然发现一个python实现的按照农历/阴历推送消息提醒的程序,钉钉群消息推送.此处总结并对其可推送的消息做. DingtalkNotice 环境:python3.7 安装: pip install schedule #实现定时任务的模块 pip install DingtalkChatbot #python封装的各种消息的调用 pip install sxtwl #日历库 钉钉自定义机器人: 钉钉群机器人是一个高级扩展的功能,可以将第三方服务的信息聚合到钉钉群众,实现信息的自动化同步.1

  • python钉钉机器人运维脚本监控实例

    如下所示: #!/usr/bin/python3 # -*- coding:UTF-8-*- # Author: zhuhongqiang from urllib import request import json from sys import argv access_token = "xxx" def send_msg(mobile, item_name): """ 钉钉机器人API接口地址: https://open-doc.dingtalk.co

  • python项目对接钉钉SDK的实现

    钉钉SDK 对接sdk还是遇到不少问题的 钉钉python版SDK文档地址:https://dingtalk-sdk.readthedocs.io/zh_CN/latest/ 钉钉官方服务端文档:https://open-doc.dingtalk.com/microapp/serverapi2 为了避免调试出现不必要的参数错误,前期钉钉配置要做好,血和泪的教训

  • python3实现zabbix告警推送钉钉的示例

    自己写了一个简单的python脚本,用来推送zabbix告警到钉钉机器人,推送格式为markdown,有需要的可以自己修改markdown的格式及推送的值(zabbix宏) 环境如下,理论上zabbix版本不影响,可以看看官方宏定义是否有区别 python 3 zabbix 3.4.2 zabbix宏官方文档:https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location 配置 配置钉钉自

  • Python调用钉钉自定义机器人的实现

    前言:由于公司使用钉钉,之前告警都是使用邮箱,但是这种协同效率比较低,所以调用钉钉机器人来实现实时告警. 创建机器人:创建钉钉群,然后添加群机器人. python代码如下: #1.导包 import json import requests #2.钉钉机器人的调用 def dd_robot(msg): HEADERS = {"Content-Type": "application/json;charset=utf-8"} key = "钉钉机器人的KEY&

  • Python制作钉钉加密/解密工具

    又是很久没有写技术博客了,盖因最近都在学习知识,也没有总结出什么值得分享的内容,所以一直停笔至今.最近的工作和钉钉的开发打上了交到,官方并没有提供任何Python的SDK,于是只能全部自己写.现在我将其中实现起来相对费时间的"加密/解密/签名"部分分享出来,希望能帮助到一些人. 加密/解密的具体机制,可以参考 官方文档 . 在你的项目中安装这个扩展,可以使用: pip install dingtalk_crypto 安装. 使用方法,可以参考下面的测试代码: # -*- coding:

  • 钉钉群自定义机器人消息Python封装的实例

    一.钉钉群自定义机器人介绍 钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github.Gitlab等源码管理服务,实现源码更新同步:通过聚合Trello.JIRA等项目协调服务,实现项目信息同步:同事,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒.自动化测试的结果报告提醒.工作.生活日程安排(上班打卡.下班吃饭.健身.读书.生日.纪念日-)等等的提

  • Python实现钉钉订阅消息功能

    钉钉设置机器人 首先在钉钉设置钉钉机器人 群设置-> 智能群助手->添加机器人->自定义 添加完成,得到一个Webhook API地址 Python脚本实现推送钉钉消息 钉钉官方给出了机器人接口的文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq 但是该文档只实现了JAVA和PHP的示例.以下是python脚本的示例. # -*- coding: utf-8 -*- """Created on Mo

  • Python实现钉钉发送报警消息的方法

    钉钉开放平台传送门:https://open.dingtalk.com 我司使用钉钉作为内部通讯工具,基本上大家在电脑和手机上都开着,消息可以第一时间查看,报警消息的即时性要求比较高,所以适合用钉钉通知. 下面介绍如何用Python实现钉钉发送报警消息. 获取access token 要使用钉钉发送消息,首先需要获取access token,代码如下: def get_access_token(): url = 'https://oapi.dingtalk.com/gettoken?corpid

  • python 调用钉钉机器人的方法

    以text格式的消息为例:(只需修改content后的内容) Import json Import requests url='https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxx' HEADERS={"Content-Type":"application/json;charset=utf-8"} String_textMsg={"msgtype":"text&

随机推荐