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

Python工具开源专栏

前言

  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



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

相关推荐

  1. prometheus-altermanager之webhook

    2024-04-30 09:22:05       70 阅读
  2. Linux服务监控自动巡检脚本--推送告警

    2024-04-30 09:22:05       36 阅读
  3. 监控指定任务,结束通知

    2024-04-30 09:22:05       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 09:22:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 09:22:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 09:22:05       82 阅读
  4. Python语言-面向对象

    2024-04-30 09:22:05       91 阅读

热门阅读

  1. js执行顺序

    2024-04-30 09:22:05       25 阅读
  2. Visual Studio Installer 运行python 汉字

    2024-04-30 09:22:05       27 阅读
  3. 使用WSGI服务器在生产环境中运行Flask应用程序

    2024-04-30 09:22:05       30 阅读
  4. Jenkins下拉取gitlab的branches和tags的字段说明

    2024-04-30 09:22:05       30 阅读