Python调用企业微信API实现实时告警通知

Finn
Finn
发布时间:2026-10-12| 3人浏览过
原创

本文详解如何利用Python调用企业微信API发送实时告警。通过注册企业应用获取CorpID和Secret,调用gettoken接口获取Access Token,再使用message/send接口发送消息。文中提供了完整的Python代码示例,包括Token获取、消息构造及发送逻辑,帮助开发者快速实现手机端的实时通知功能。

常见的系统报警方式包括邮件、电话、短信以及微信通知。

短信和电话通常涉及费用(若有免费渠道欢迎分享),而邮件通知往往存在延迟,因此最终选择微信作为通知渠道。

此处所指微信为企业微信。若已注册个体户执照,可较为便捷地注册并开通企业微信账号。

第一步:新建应用

登录网页版企业微信后台(https://work.weixin.qq.com/)。

进入 应用管理 -> 应用 -> 点击创建应用。

上传应用Logo,填写应用名称,并设置可见范围,即可完成告警应用的创建。

第二步:获取Secret

使用Python发送告警请求,主要涉及两个核心接口。

第一个接口用于获取Token:

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}

第二个接口用于发送消息:

https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}

上述流程中,最关键的两个参数是corpid和secret。

  • corpid:用于唯一标识你的企业。
  • secret:应用级的密钥,程序依靠它确定向该企业下的哪个应用发送消息。

corpid可通过 我的企业 -> 企业信息 页面获取。

secret的获取相对复杂,需点击之前创建的应用,选择 查看 secret。

配置完成后,点击发送测试即可将消息推送到你的企业微信。

最后,将获取到的corpid和secret填入代码中的常量位置。

import json
import datetime
import requests

CORP_ID = ""
SECRET = ""

class WeChatPub:
    s = requests.session()

    def __init__(self):
        self.token = self.get_token()

    def get_token(self):
        url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"
        rep = self.s.get(url)
        if rep.status_code != 200:
            print("request failed.")
            return
        return json.loads(rep.content)['access_token']


    def send_msg(self, content):
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
        header = {
            "Content-Type": "application/json"
        }
        form_data = {
            "touser": "@all",
            "toparty": " PartyID1 | PartyID2 ",
            "totag": " TagID1 | TagID2 ",
            "msgtype": "textcard",
            "agentid": 1000002,
            "textcard": {
                "title": "服务异常告警",
                "description": content,
                "url": "URL",
                "btntxt": "更多"
            },
            "safe": 0
        }
        rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)
        if rep.status_code != 200:
            print("request failed.")
            return
        return json.loads(rep.content)

随后即可通过send_msg函数发送消息。

wechat = WeChatPub()
now = datetime.datetime.now()
timenow = now.strftime('%Y年%m月%d日 %H:%M:%S')
wechat.send_msg(f"<div class=\"gray\">{timenow}</div> <div class=\"normal\">阿里云 cookie 已失效</div><div class=\"highlight\">请尽快更换新的 cookie</div>")

只要企业微信未关闭通知权限,手机将立即弹出该告警信息。

经过简单几步即可对接企业微信,实现手机实时告警,推荐拥有企业微信的用户使用。

当然,存在更多更优的实现方案,本文仅展示其中一种选择。

至此,关于Python实现发送警告通知到企业微信的方法详解介绍完毕。如需了解更多Python发送企业微信告警的相关内容,请搜索本站历史文章或继续浏览后续文章,感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。