Python 开发个人微信号在运维开发中的使用
如今的互联网时代,各种信息泄露问题是层出不穷。保障信息安全就变得尤为重要。我们这次的公开课就来为大家展示“微信报警”功能。希望大家可以通过这次公开课可以对 Python 多一些了解和学习。
一、公开课主题:Python 开发个人微信号在运维开发中的使用
二、主要内容:
1 企业公众号
介绍开发微信公众号的后台逻辑,包括服务器验证逻辑、用户认证逻辑。
2 个人微信号
面对企业微信的种种限制,可以使用 Itchat 模块开发个人服务微信号,实现自动回复,群发报警消息等功能。
3 个人微信号代码演示
Itchat 模块代码实操,实现自动回复和执行指令的功能。
三、主讲师:蜗牛
非典型程序员,毕业之后接触了编程,从零基础成长至 BAT 高级工程师,为部门从零组建开发团队,带领完成多个大、中型项目,项目开发经验丰富并且深 悉初学者学编程的方法,为人热情,乐于分析,现任 51Reboot.com 的 Python 课程总监。
1 企业微信
( 1 )微信后台服务验证
( 2 )用户权限校验逻辑

2 功能 API 介绍
( 1 )自动回复
( 2 )发送消息
3 企业微信号的限制
必须是企业资质,运维团队很难专门申请
所有人都可以关注公共号,没法设置私有
必须是 Https 的服务
4 个人微信
使用 Itchat 模块,开发个人服务微信号
原理:抓包微信网页版开发的 sdk
优点: 个人微信号扩展,通过好友管理限制权限
用处:发送报警,自动回复,指定消息执行脚本,如重启 Nginx
四、最终实现的效果图
五、视频版公开课和实现代码请点击原文链接进行观看:
http://mp.weixin.qq.com/s/ELGI5kC0cWFbSNj2WlEqXw
Python 开发个人微信号在运维开发中的使用
我理解你想用Python开发个人微信号来做一些运维相关的自动化工作,比如接收告警、执行命令、查询状态等。
核心思路是使用itchat或wxpy这类库(虽然官方已停止维护,但个人号小规模使用仍可行),或者用企业微信的API(更稳定推荐)。这里给你一个基于企业微信的完整示例,因为个人微信容易被封号:
import requests
import json
class WeChatWorkBot:
def __init__(self, corp_id, corp_secret, agent_id):
self.corp_id = corp_id
self.corp_secret = corp_secret
self.agent_id = agent_id
self.access_token = self._get_access_token()
def _get_access_token(self):
url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={self.corp_id}&corpsecret={self.corp_secret}"
response = requests.get(url)
return response.json().get('access_token')
def send_message(self, content, to_user="@all"):
url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={self.access_token}"
data = {
"touser": to_user,
"msgtype": "text",
"agentid": self.agent_id,
"text": {"content": content},
"safe": 0
}
response = requests.post(url, data=json.dumps(data))
return response.json()
# 使用示例
if __name__ == "__main__":
# 需要先在企微后台创建应用获取这些参数
bot = WeChatWorkBot(
corp_id="你的企业ID",
corp_secret="你的应用Secret",
agent_id=你的应用AgentId
)
# 发送服务器告警
bot.send_message("【运维告警】服务器CPU使用率超过90%")
# 发送巡检报告
report = "每日巡检报告:\n1. 服务A: 正常\n2. 数据库: 正常\n3. 磁盘使用率: 85%"
bot.send_message(report)
如果想接收消息并自动回复,可以搭建一个webhook服务:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/wechat_webhook', methods=['POST'])
def handle_alert():
data = request.json
# 解析告警信息
alert_msg = data.get('message', '')
# 这里可以添加自动处理逻辑
if "磁盘满" in alert_msg:
# 自动清理临时文件等操作
auto_cleanup()
# 转发到企微
bot.send_message(f"收到告警: {alert_msg}")
return jsonify({"status": "ok"})
def auto_cleanup():
# 实现你的自动清理逻辑
pass
if __name__ == '__main__':
app.run(port=5000)
实际运维中常用场景:
- 监控告警推送(Zabbix/Prometheus告警转发)
- 定时任务执行结果通知
- 服务器状态查询(通过特定指令返回负载、磁盘等信息)
- 日志关键词监控推送
建议用企业微信方案更稳定。

