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 开发个人微信号在运维开发中的使用


1 回复

我理解你想用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)

实际运维中常用场景:

  1. 监控告警推送(Zabbix/Prometheus告警转发)
  2. 定时任务执行结果通知
  3. 服务器状态查询(通过特定指令返回负载、磁盘等信息)
  4. 日志关键词监控推送

建议用企业微信方案更稳定。

回到顶部