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

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

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

请求只表达一次投递

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

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/

相关推荐
%471 小时前
DAY41
pytorch·python
敲代码还房贷1 小时前
VMware17 + Ubuntu22.04 共享 完整步骤
linux·python·ubuntu
大鹏说大话1 小时前
美业微信会员系统哪个好
开发语言
测试19982 小时前
Selenium 无法定位元素的几种解决方案
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
半亩码田2 小时前
C#转Python第3.6篇:Python 的 @property 比 C# 的 get/set 更灵活
java·python·c#
程序员与背包客_CoderZ2 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
欧叶冲冲冲2 小时前
Python常见数据结构的CRUD(LeetCode高频版速查)
数据结构·python·leetcode
钱栈up2 小时前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
william_yangshun2 小时前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言