python+flask监控钉钉通讯录变更+webhook告警

server/2024/9/26 3:20:34/

Python工具开源专栏

Py0005 python+flask监控钉钉通讯录变更+webhook告警

  • Python工具开源专栏
  • 前言
  • 目录结构
  • 配置钉钉后台微应用的事件订阅
  • 配置钉钉群聊机器人的Webhook
  • 部分演示
  • 完整代码已在GitHub上开源

前言

  python+flask监听钉钉通讯录的变更,通过Webhook发送给钉钉群聊告警,以前端网站展示变更的详细数据。功能大致如下几点。(文末有github链接)

  1. 钉钉开放后台微应用配置事件订阅,通过公网调用本地网站的api。
  2. 通讯录的变更数据支持导出到Excel文档。
  3. 监听钉钉的通讯录事件,将事件内容写入MySQL,使用webhook发送告警到钉钉群聊。

版本迭代至V1.0
网站技术要点:面向对象、网络请求、轻量级Web应用框架flask、RESTful API、Webhook,使用了py库requestsDingtalkChatbotFlaskPyMySQL


目录结构

源代码目录结构:

Dingtalk-MonitorBook|——— assets	# 存放资源文件|——— logs	# 存放日志文件|——— public	# 存放前端站点的资源文件|——— components			# php组件包|——— css					# css资源文件|——— js					# js资源文件|——— layui				# layui js框架资源文件|——— template				# php模板文件|——— 404.html|——— 500.html|——— index.php			# php站点访问入口|——— src	# 存放后端站点的资源文件|——— api|——— callback_0001.py|——— getData.py|——— components|——— __init__.py			# 初始化模块包文件|——— DingCallbackCrypto3.py		# 处理钉钉回调数据的加解密|——— DingtalkOpenAPI.py	# 调用钉钉通讯录的网络请求工具类|——— LocalOpenAPI.py		# 调用本地存储钉钉通讯录数据的工具类|——— MySQLHandle.py		# 处理MySQL数据库的工具类|——— cron|——— cron_action_webhook.py		# 定时执行数据库记录和钉钉群聊通讯录变更告警推送|——— cron_clear_tempfile.py		# 定时清除早于当前时间的temp缓存文件|——— utils|——— __init__.py			# 初始化模块包文件|——— utils_config.py		# 参数配置表|——— utils_const.py		# 常量表|——— utils_func.py		# 常用函数工具类|——— utils_logging.py		# log日志工具类|——— utils_mysqli.py		# 操作mysql的函数工具类|——— dingtalk_monitorbook_service.py	# py主程序源文件,启动flask Web框架|——— getCallBack.py			# 处理钉钉事件订阅的回调数据|——— readme.md|——— LICENSE|——— requirements.txt	# py项目的依赖项

执行文件的目录结构:

 |——— dingtalk_monitorbook_service.py	# py主程序源文件,启动flask Web框架

配置钉钉后台微应用的事件订阅

1
2


配置钉钉群聊机器人的Webhook

3


部分演示

前端的页面展示
1


webhook推送告警到钉钉群聊
2



完整代码已在GitHub上开源

源码已在GitHub上开源:Dingtalk-MonitorBook



参考来源:钉钉文档-事件订阅总览


http://www.ppmy.cn/server/24423.html

相关文章

使用CSgetshell到3389端口远程桌面

中间使用了这个Akagi64.exe提权,网上可以找到,高版本的cs网上也可以找到。

Docker(Docker的安装和介绍,常用命令,镜像制作,服务编排,docker私服)

目录 一、简介 1. docker简介 1 什么是docker 2 容器和虚拟机对比 2. 安装docker 1 docker相关概念 2 安装docker 1 安装docker 2 设置注册中心(仓库) 3. 小结 二、常用命令【重点】 1. 服务管理 2. 镜像管理 1 语法说明 2 使用练习 3. 容器管理 1 容器介绍 2…

opencv_22_图像卷积操作

void blur_demo(Mat& image); void ColorInvert::blur_demo(Mat& image) { Mat dst; blur(image, dst, Size(13, 13), Point(-1, -1)); imshow("图像模糊", dst); }

动手学深度学习3.4 softmax回归-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:09 Softmax 回归 损失函数 图片分类数据集【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址…

技术速递|Java on Azure Tooling 3月更新 - Java on Azure 开发工具未来六个月路线图发布

作者:Jialuo Gan - Program Manager, Developer Division At Microsoft 排版:Alan Wang 大家好,欢迎阅读 Java on Azure 工具的三月更新。在本次更新中,我们将分享未来几个月对 Java on Azure 开发工具的投资。此外,我…

每周一算法:单源次短路

题目描述 “您的个人假期”旅行社组织了一次比荷卢经济联盟的巴士之旅。 比荷卢经济联盟有很多公交线路。每天公共汽车都会从一座城市开往另一座城市。沿途汽车可能会在一些城市(零或更多)停靠。 旅行社计划旅途从 S S S 城市出发,到 F …

用Typescript写自动化工作流

项目地址:acao 挺早之前写过一个工具帮我构建项目并发布到指定平台,主要流程就是获取项目根目录下的配置文件,然后根据配置文件在本地通过 docker 构建一个镜像然后 push 到镜像仓库,最后通过 ssh 连接指定的服务区执行发布任务 …

使用WSGI服务器在生产环境中运行Flask应用程序

文章目录 一、问题描述二、解决思路1、使用Gevent的WSGIServer2、使用WSGIRef的WSGIServer 一、问题描述 在开发Flask应用程序时,有时会在终端看到以下警告信息: WARNING: This is a development server. Do not use it in a production deployment. U…