Python调用企业微信API发送消息的完整配置与实现

花开有时
花开有时
发布时间:2026-10-15 | 2人浏览过
原创

本文详解如何利用Python 3调用企业微信API发送工作通知。内容涵盖从注册企业微信、获取Corpid与Secret等关键凭证,到编写包含Token管理、消息发送逻辑的完整Python脚本。通过Linux环境下的路径配置与部门ID群发测试,提供从环境搭建到功能验证的全流程操作指南,帮助开发者快速实现自动化消息通知功能。

一、概述

本文旨在演示如何使用Python 3调用企业微信接口发送消息。作者使用的运行环境为Linux系统,Python版本为3.6.10。

二、Python脚本实现


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/8/20 上午12:42
# @Author  : wangying
# @Site    : 
# @File    : 企业微信.py
# @Software: PyCharm
 
#!/root/.virtualenvs/wechat/bin/python
# usage: send message via wechat
 
import requests, sys, json
import urllib3
urllib3.disable_warnings()
 
 
###填写参数###
 
# Corpid是企业号的标识
Corpid = "ww32a580fceb30f350"
 
# Secret是管理组凭证密钥
Secret = "QyBTbg1QL9lmNwaErqv1DMV0Y_G3lZre268E0hpTDqk"
 
# 应用ID
Agentid = "1000004"
 
# token_config文件放置路径
Token_config = r'/tmp/zabbix_wechat_config.json'
 
###下面的代码都不需要动###
 
 
def GetTokenFromServer(Corpid, Secret):
    """获取access_token"""
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid": Corpid,
        "corpsecret": Secret
    }
    r = requests.get(url=Url, params=Data, verify=False)
    print(r.json())
    if r.json()['errcode'] != 0:
        return False
    else:
        Token = r.json()['access_token']
        file = open(Token_config, 'w')
        file.write(r.text)
        file.close()
        return Token
 
 
def SendMessage(Partyid, Subject, Content):
    """发送消息"""
    # 获取token信息
    try:
        file = open(Token_config, 'r')
        Token = json.load(file)['access_token']
        file.close()
    except:
        Token = GetTokenFromServer(Corpid, Secret)
 
    # 发送消息
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    Data = {
        "toparty": Partyid,
        "msgtype": "text",
        "agentid": Agentid,
        "text": {"content": Subject + '\n' + Content},
        "safe": "0"
    }
    r = requests.post(url=Url, data=json.dumps(Data), verify=False)
 
    # 如果发送失败,将重试三次
    n = 1
    while r.json()['errcode'] != 0 and n < 4:
        n = n + 1
        Token = GetTokenFromServer(Corpid, Secret)
        if Token:
            Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
            r = requests.post(url=Url, data=json.dumps(Data), verify=False)
            print(r.json())
 
    return r.json()
 
 
if __name__ == '__main__':
    # 部门id
    Partyid = '20'
    # 消息标题
    Subject = '自应用程序代码测试'
    # 消息内容
    Content = 'str(sys.argv[3])'
    Status = SendMessage(Partyid, Subject, Content)
    print(Status)

脚本中需要重点配置Corpid、Secret和Agentid这三个参数,具体获取位置将在后续的企业微信设置章节中通过截图详细说明。

脚本首行指定了Linux环境下Python 3的解释器路径。若使用Windows系统,则无需此shebang行,只需确保Python路径已添加到系统环境变量PATH中即可。

#!/root/.virtualenvs/wechat/bin/python

# Corpid代表企业ID

Corpid = "ww34d7fed41a8d5dxx"

# Secret为管理组凭证密钥

Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"

# Agentid标识应用ID

Agentid = "1000002"

# Token_config用于存储Token信息,路径可自定义,但需确保脚本拥有该路径的写入权限。

Token_config = r'/tmp/zabbix_wechat_config.json'

三、企业微信后台设置

1. 注册企业微信

访问企业微信官网:https://qy.weixin.qq.com/进行注册。

2. 进入管理后台

登录后台后,点击“创建应用”以新建内部应用。

3. 应用创建完成后

系统会自动生成该应用的Agentid和Secret,请记录这两个关键值。

4. 查看企业ID

在后台“我的企业”页面可找到企业ID,此即脚本中所需的Corpid。

5. 查看部门ID

本脚本支持按部门ID进行群发,因此需记录目标部门的ID以便后续调用。

四、脚本测试

直接运行命令:python manage.py runserver 即可启动服务进行测试。

以上即为使用Python实现企业微信消息发送的完整流程。如需了解更多Python与企业微信集成的技术资料,建议关注本站其他相关文章。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表