Python一些可能用的到的函数系列131 发送钉钉机器人消息

news2024/11/14 14:55:08

说明

来自顾同学的助攻

钉钉机器人可以用来发送一些重要的系统消息,例如磁盘将满等等。原本还可以有更强的功能,就是监听群里的消息,然后做出反应,不过这个好像要买企业版,贵的毫无意义。

钉钉发消息有几种模式,一种是按关键字过滤的,还有一种是按签名发送的。这次顾同学帮我梳理了按签名发送的函数。

内容

前提准备:有钉钉群组,并按签名方式创建了机器人,这时候会得到两个东西:

  • 1 webhook_url: 这个是用于发送消息的接口
  • 2 secret: 签名秘钥

以下函数在每次发送消息时生成签名,然后将消息发送到指定的(机器人所在)的群组

import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
# 钉钉 Webhook 和加签密钥
webhook_url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxx'
secret ='SECxxxx'
# 生成签名
def generate_sign(secret):
    timestamp = str(round(time.time() * 1000))
    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_plus(base64.b64encode(hmac_code))
    return timestamp, sign
# 发送信息到群里面
def send_dingtalk_message(webhook, secret, message):
    try:
        timestamp, sign = generate_sign(secret)
        url = f"{webhook}&timestamp={timestamp}&sign={sign}"
        headers = {'Content-Type': 'application/json'}
        data = {
            "msgtype": "text",
            "text": {
                "content": message
            }
        }
        print(f"Sending message to URL: {url}")
        print(f"Message content: {data}")
        response = requests.post(url, headers=headers, data=json.dumps(data))
        print(f"Response: {response.status_code}, {response.text}")
        return response.status_code, response.text
    except Exception as e:
        print(f"Error sending message: {e}")
        return None, str(e)

send_dingtalk_message(webhook_url, secret, 'test')

在这里插入图片描述

非常好用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2094689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python中pip源配置

文章目录 1、前言2、pip下载源配置 1、前言 conda环境的源配置,相关博客有很多,这里不再赘述。在我使用梯子后,使用pip进行库安装,总是出现错误情况,如下所示: 2、pip下载源配置 因此,在这里进…

Django+Vue农产品销售系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…

「Claude3.5」全面超越「gpt-4o」,我用它做了个贪吃蛇,玩了一整天!

大家好,我是凡人。 就在昨天晚上Anthropic在X上连续发了4条动态来高调宣布他们的Claude 3.5 Sonnet中杯的版本已经全面向公众开放使用,大批的技术博主连夜测试,纷纷给出的不低的评价。 而这还仅仅是开胃小菜,官方宣称今年晚些时候…

37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中

37集【重要】编译ESP-RTC工程并运行在01-RTC开发板中 开发板样子这样的: 还有配套的外壳: 开发板介绍文档如下,有需要的可以联系三哥,三哥介绍这位大拿给你: https://www.kdocs.cn/l/cqAyZ0T3Q06Y 我们把d:\Espre…

单片机编程魔法师-消息处理

消息机制 消息处理的编程思路是当某件事产生后只发送一条事件产生消息以通知相应执行机构执行的一种编程思路。 消息定义 什么是消息,消息是一个指示,可以是数字,字符串,字符或者是任何形式的其他标识符 消息定义的形式与消息…

模型 冯/诺依曼思维模型

系列文章 分享 模型,了解更多👉 模型_思维模型目录。分解问题,创新整合,高效解决。 1 冯/诺依曼思维模型的应用 1.1 景区创建5A级旅游景区提升规划 在面对如何将某个景区创建为5A级旅游景区的复杂任务时,可以采用冯诺…

MySQL7 SQL执行顺序、SQL语句执行顺序、学生选课表练习

文章目录 一、SQL执行顺序二、MySQL执行过程三、SQL执行顺序四、学生选课表练习创建表1. 查询” 01 “课程比” 02 “课程成绩高的学生的信息及课程分数2. 查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩3. 查询在 SC 表存在成绩的学生信息4. 查询所有同学的…

大二必做项目贪吃蛇超详解之中篇游戏设计与分析

贪吃蛇系列文章 上篇win32 中篇设计与分析 文章目录 贪吃蛇系列文章1. 地图1. 1 <locale.h>本地化1. 2 类项1. 3 setlocale函数1. 4 宽字符的打印1. 5 地图坐标 2. 蛇身和食物3. 数据结构设计4. 游戏流程设计5. 核心逻辑实现分析5. 1 游戏主逻辑5. 2 GameStart5. 2. 1 S…

51单片机——蜂鸣器

1、蜂鸣器简介 蜂鸣器是一种将电信号转换为声音信号的器件&#xff0c;常用来产生设备的按键音、报警音等提示信号。 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 。 有源蜂鸣器&#xff1a;内部自带振荡源&#xff0c;将正负极接上直流电压即可持续发声&#xff0c;频率…

Python青少年简明教程:列表(List)、元组(tuple)和字典(dict)

Python青少年简明教程&#xff1a;列表&#xff08;List&#xff09;、元组&#xff08;tuple&#xff09;和字典&#xff08;dict&#xff09; 在Python中&#xff0c;列表&#xff08;List&#xff09;、元组&#xff08;Tuple&#xff09;和字典&#xff08;Dict&#xff09…

防火墙基本原理入门篇,小白一看就懂!

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

基于FPGA实现SD卡的数据读写(SD NAND FLASH)

文章目录 存储芯片 SD卡 FPGA实现SD NAND读写 设计思路 程序架构 代码实现 实验结果 存储芯片 目前市面上的存储芯片&#xff0c;大致可以将其分为3大类&#xff1a; EEPROM EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器…

package.json文件解析

【图书介绍】《Node.jsMongoDBVue.js全栈开发实战》-CSDN博客 《Node.jsMongoDBVue.js全栈开发实战&#xff08;Web前端技术丛书&#xff09;》(邹琼俊)【摘要 书评 试读】- 京东图书 (jd.com) 本节主要介绍package.json文件的作用及文件中各个选项的含义。 2.4.1 node_mod…

【一个简单的整数问题】

问题 TLE代码 #include <bits/stdc.h> using namespace std; const int N 1e510; int b[N]; void add(int l, int r, int d) {b[r1] - d;b[l] d; } int query(int x) {int retval 0;for(int i 1; i < x; i){retval b[i];}return retval; } int main() {int n, m…

【Kubernetes】持久卷声明 PVC

持久卷声明 PVC 1.持久卷和持久卷声明的区别2.在 Pod 中使用持久卷声明3.storageClass 详解 持久卷声明&#xff08;Persistent Volume Claim&#xff0c;PVC&#xff09;&#xff0c;是用户对 Kubernetes 存储资源的一种请求。 通过使用 持久卷声明&#xff08;PVC&#xff0…

yolo训练策略--使用 Python 和 OpenCV 进行图像亮度增强与批量文件复制

简介 在计算机视觉和深度学习项目中&#xff0c;数据增强是一种常用的技术&#xff0c;通过对原始图像进行多种变换&#xff0c;可以增加数据集的多样性&#xff0c;从而提高模型的泛化能力。本文将介绍如何使用 Python 和 OpenCV 实现图像的亮度增强&#xff0c;并将增强后的…

驱动(RK3588S)第二课时:引导程序和内核

目录 一、引导程序&#xff08;uboot&#xff09;1、uboot介绍2、A 系列通用芯片启动流程3、uboot的配置与使用 二、内核&#xff08;kernel&#xff09;1、内核的介绍2、内核的配置、裁剪和编译 三、其他知识点 一、引导程序&#xff08;uboot&#xff09; 1、uboot介绍 ubo…

PDF转CAD必备工具:四款转换神器对比推荐

随着数字办公的普及&#xff0c;我们常常需要处理不同格式的文档。在工程和设计领域&#xff0c;PDF转CAD的转换工具更是必备之选。本文将为大家介绍四款高效、便捷的PDF转CAD工具&#xff1a; 一、福昕PDF在线转换器 直通车&#xff08;粘贴到浏览器打开&#xff09;&#x…

软件测试 - 性能测试 (概念)(并发数、吞吐量、响应时间、TPS、QPS、基准测试、并发测试、负载测试、压力测试、稳定性测试)

一、性能测试 目标&#xff1a;能够对个人编写的项目进行接口的性能测试。 一般是功能测试完成之后&#xff0c;最后做性能测试。性能测试是一个很大的范围&#xff0c;在学习过程中很难直观感受到性能。 以购物软件为例&#xff1a; 1&#xff09;购物过程中⻚⾯突然⽆法打开…

PCB设计中” 铺铜的方式“导致电焊机设计失败

发现这个问题的背景 在看到网上视频设计一个小电池的点焊机很容易&#xff0c;在一些需要电力的小设计少不了点焊&#xff0c;就想尝试一下。当然其中遇到很多坑&#xff0c;后面会一起总结。这里遇到的一个小坑&#xff0c;但让人有点苦笑不得。 首先&#xff0c;点焊需要大…