python脚本实现接入企微机器人

server/2025/2/25 22:34:23/

企业微信中的群聊机器人在日常办公中无处不在,对提升工作效率、保证消息及时送达提供了重要的技术保障。例如:DevOps助手、JIRA、构建通知等;还常常使用在运维服务器中配合Prometheus监控体系及时发送告警信息等

文章目录

  • 源码示例
  • Demo源码处理逻辑
    • 步骤一:获取json格式的参数
    • 步骤二:将json中的信息进行解析

源码示例

例子:广播每日天气

python">from doctest import debug_script
from pydoc import describe
from flask import jsonify
import requests
import simplejsonurl = "http://t.weather.itboy.net/api/weather/city/101010100"  # 替换为你要请求的URL
robot_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX"def alert(shidu, pm25, quality, wendu, ganmao, forecast):content = "## **<font color=\"green\">天气预报</font>** \n>**湿度:** <font color=\"warning\">{0}</font>\n>**PM2.5:** <font color=\"warning\">{1}</font>\n>**空气质量:** {2}\n>**温度:** {3}\n>**感冒指数:** {4}\n>**日期:** {5}日\n>**最高温度:** {6}\n>**最低温度:** {7}\n>**风向:** {8}\n>**天气状况:** {9}\n {10}"params = simplejson.dumps({"msgtype": "text","text": {"content":content.format(shidu, pm25, quality, wendu, ganmao, forecast[0]['date'], forecast[0]['high'], forecast[0]['low'], forecast[0]['fx'], forecast[0]['type'], forecast[0]['notice']),"mentioned_list": ["@all"]}})return paramsdef webhook_url(params,url_key):headers = {"Content-type": "application/json"}"""*****重要*****"""url = "{}".format(url_key)r = requests.post(url,params,headers)# 发送GET请求
response = requests.get(url)
# 获取响应结果
data = simplejson.loads(response.text)
webhook_url(alert(data['data']['shidu'],data['data']['pm25'],data['data']['quality'],data['data']['wendu'],data['data']['ganmao'], data['data']['forecast']),  robot_url)

Demo源码处理逻辑

步骤一:获取json格式的参数

这个参数来自于你要处理的上游业务系统,例如你要实现一个服务器告警机器人,则你需要接收到告警的相关信息;例如你要实现一个广播天气情况的机器人,则你需要接收到天气相关json回参。

步骤二:将json中的信息进行解析

封装到符合企业微信机器人可以接收的消息格式中
企业微信机器人可以接受的消息格式:详见机器人配置说明
常用的两种:文本类型、markdown类型
文本类型:

{"msgtype": "text","text": {"content": "广州今日天气:29度,大部分多云,降雨概率:60%","mentioned_list":["wangqing","@all"],"mentioned_mobile_list":["13800001111","@all"]}
}

在这里插入图片描述
在这里插入图片描述

markdown类型:

{"msgtype": "markdown","markdown": {"content": "实时新增用户反馈<font color=\"warning\">132</font>,请相关同事注意。\n>类型:<font color=\"comment\">用户反馈</font>>普通用户反馈:<font color=\"comment\">117</font>>VIP用户反馈:<font color=\"comment\">15例</font>"}
}

在这里插入图片描述

在这里插入图片描述

使用区别:
markdown编辑内容模板更加丰富,可以突出重点;无法@人员
文本消息只能发送文本内容;支持@所有人/固定人员

(3)发送请求即可,发送成功后,企业微信机器人就会在群聊中发送自定义格式的消息内容。


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

相关文章

AWS云从业者认证题库 AWS Cloud Practitioner(2.21)

题库持续更新&#xff0c;上方二维码查看完整题库&#xff01; 公司希望减少开发人员用于运行代码的物理计算资源,通过启用无服务器架构&#xff0c;哪种服务可以满足该需求? A&#xff1a; Amazon Elastic Compute Cloud (Amazon EC2) B&#xff1a; AWS Lambda C&#xff1a…

Vosk语音识别包

Vosk介绍 Vosk作为一款开源的离线语音识别工具包&#xff0c;其核心特点可归纳为以下五个方面&#xff0c;结合多篇技术文档的实践与分析 一、离线高效识别 完全脱离网络依赖&#xff1a;所有语音处理均在本地完成&#xff0c;无需云端数据传输&#xff0c;既保障隐私安全又…

【quicker】调节PPT指定字号字体大小/快速调节WPS的PPT字体大小

在quicker的拓展动作中找不到直接指定字号大小方式的动作。 换个思路&#xff0c;既然无法通过alt键模拟&#xff0c;不如模拟右键菜单触发&#xff1f;尝试过失败了 所以有了第三种方法 &#xff0c;首先给字体窗口设置快捷键&#xff0c;此处设置的是altshiftf&#xff0c;然…

Qt学习 网络编程 TPC通信

一 基本网络端口 1 网络编程基本概念 通讯方式&#xff1a;信息的通讯时通过网络来进行&#xff0c;通讯方式有两种&#xff0c;TCP和UDP通信&#xff0c;TCP通讯是专用通道&#xff0c;指定某个信息只能走某个通道&#xff0c;UDP则是非专用通道&#xff0c;比如一个车队&am…

Docker Hub 使用规则与限制全解析

在容器化技术风靡的当下&#xff0c;Docker 无疑是其中的佼佼者&#xff0c;而 Docker Hub 作为其核心生态的重要组成部分&#xff0c;是无数开发者获取镜像、分享容器化应用的关键平台。不过&#xff0c;你真的了解如何在规则范围内充分利用它吗&#xff1f;今天&#xff0c;咱…

RTSP协议

一、RTSP 协议概述 RTSP&#xff08;Real-Time Streaming Protocol&#xff09;是一种应用层协议&#xff0c;用于控制实时流媒体传输&#xff08;如视频点播、直播&#xff09;。它本身不传输媒体数据&#xff0c;而是通过协商建立媒体会话&#xff0c;并通过 RTP/RTCP 协议传…

MySQL自动备份脚本

MySQL自动备份脚本 mysqldump命令将数据库中的数据备份成一个文本文件&#xff0c;表的结构和数据将存储在生成的文本文件中 基本语法 备份一个数据库下的多个表 # 备份一个数据库下的多个表# username表示用户名 # pwd表示密码 # localhost为数据库地址 # dbname表示数据库…

Linux System V - 消息队列与责任链模式

概念 消息队列是一种以消息为单位的进程间通信机制&#xff0c;允许一个或多个进程向队列中发送消息&#xff0c;同时允许一个或多个进程从队列中接收消息。消息队列由内核维护&#xff0c;具有以下特点&#xff1a; 异步通信&#xff1a;发送方和接收方不需要同时运行&#x…