Python实现企业微信文本消息发送

用 Python 调文本投递,请求体并不复杂。生产事故多半出在超时策略和重试范围:本机脚本一次通过,迁到定时任务后出现双写或乱码。会写 requests 不够。进程模型和幂等键才决定这句会不会进会话两次。

Flask 视图里同步等待发送,页面一卡,操作方连点,就是多次提交。这个坑和字段名无关,和你把投递放在哪一类线程有关。

请求只表达一次投递

统一入口为 POST,请求头带 X-QIWEI-TOKEN。文本 method 为 /msg/sendText。guid、toId、content 为文档字段。toId 可以是 userId 或 roomId,调用方必须同时记录会话类型,不能只留一个无类型字符串。示例代码里如果没有类型,这示例不能进仓库。

python 复制代码
import os
import requests

API = "http://manager.qiweapi.com/qiwe/api/qw/doApi"
TOKEN = os.environ["QIWEI_TOKEN"]

def send_text(guid, to_id, content):
    headers = {
        "X-QIWEI-TOKEN": TOKEN,
        "Content-Type": "application/json",
    }
    body = {
        "method": "/msg/sendText",
        "params": {
            "guid": guid,
            "toId": to_id,
            "content": content,
        },
    }
    r = requests.post(API, headers=headers, json=body, timeout=20)
    r.raise_for_status()
    return r.json()

print(send_text("你的guid", "你的userid", "Python 连通测试"))

Token 从环境变量读取。示例脚本夹带生产凭证入库,测试句会在次日出现在真实会话。缺配置应拒绝启动,不要静默打默认号。timeout 必须显式给出:过短会把正常投递打成失败,过长会拖死工作线程。代理解密 HTTPS 后证书不对,表象像鉴权失败,先核对运行环境再改签名。

Web 线程同步投递会把连点变成多次提交

请求阶段只写入任务,由独立进程消费。字符编码须显式 UTF-8。Windows 计划任务默认代码页一变,手机显示乱码而通道仍报成功。日志也用 UTF-8,否则排障时中文变成问号,看起来像接口返回异常。

查询类接口可以有限重试。投递超时不能套同一装饰器。uuid4() 每次不同,不能充当幂等键,键应来自业务单号。虚拟环境和依赖要锁死。本机 http 库一套、服务器另一套,证书校验行为不同,会表现为本机通、服务器鉴权失败。

笔记本里重复执行同一单元格,效果等于人工双发。独立脚本连续跑三次更有用:一次成功;把超时压到极短后会话仍一条;错误会话类型能从回执中读出。换一台机器、换一个同事,按同样顺序,测试会话里只有该出现的那一句,并且任务表能对上单号。这才叫示例过关,不是 print 了成功。

查看企业微信 API 文档:

https://doc.qiweapi.com/

相关推荐
weixin_307779134 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
一水鉴天7 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
Frank_refuel7 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
海绵宝宝转agent8 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭8 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT8 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog8 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071579 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境10 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
\光辉岁月/10 小时前
5.java-数组
java·开发语言