企业微信开发文档---企业微信机器人长连接开发

一、建立长连接完整流程

官方文档地址:https://developer.work.weixin.qq.com/document/path/101463

二、开发操作步骤

2.1 建立连接,编写对应的回调函数

复制代码
def start_websocket_connection() -> None:
    """发起 WebSocket 连接并保持运行。"""
    ws = websocket.WebSocketApp(
        WS_URL,
        on_open=on_open,  # 订阅鉴权
        on_message=on_message, # 收到服务端任意消息时触发。
        on_error=on_error,     # 连接/收发出现异常时触发。
        on_close=on_close,  # 连接关闭时触发
    )
    ws.run_forever()

2.2 on_open函数,发送订阅鉴权请求

复制代码
#请求示例:
{
    "cmd": "aibot_subscribe",
    "headers": {
        "req_id": "REQUEST_ID"
    },
    "body": {
        "bot_id": "BOTID",
        "secret": "SECRET"
    }
}

2.4 ws.send函数,发送消息给企业微信服务器

只负责发送,返回消息的on_message的回包里面

2.5 on_message函数,响应示例

复制代码
# 订阅成功后的响应示例
{
    "headers": {
        "req_id": "REQUEST_ID"
    },
    "errcode": 0,
    "errmsg": "ok"
}

# 用户发勇消息的响应示例
{
    "cmd": "aibot_msg_callback",
    "headers": {
        "req_id": "REQUEST_ID"
    },
    "body": {
        "msgid": "MSGID",
        "aibotid": "AIBOTID",
        "chatid": "CHATID",
        "chattype": "group",
        "from": {
            "userid": "USERID"
        },
        "msgtype": "text",
        "text": {
            "content": "@RobotA hello robot"
        }
    }
}
字段 类型 说明
cmd string 命令类型,固定值 aibot_msg_callback
headers.req_id string 请求唯一标识,回复消息时需透传
body.msgid string 本次回调的唯一性标志,用于事件排重
body.aibotid string 智能机器人 BotID
body.chatid string 会话 ID,仅群聊类型时返回
body.chattype string 会话类型,single 单聊 / group 群聊
body.from.userid string 消息发送者的 userid
body.msgtype string 消息类型

2.6 订阅成功保持心跳

复制代码
{
    "cmd": "ping",
    "headers": {
        "req_id": "REQUEST_ID"
    }
}


threading.Event() 是 Python 标准库中用于线程间简单信号通信的同步原语。它内部维护一个布尔标志(初始为 False),线程可以等待该标志变为 True,也可以由其他线程将其设置为 True 或重置为 False。


wait(timeout=None)	阻塞当前线程,直到内部标志为 True。如果指定 timeout(秒),超时后即使标志仍为 False 也会返回 False。
set()	    将内部标志设为 True,并唤醒所有正在 wait() 的线程。
clear()	    将内部标志重置为 False。
is_set()	返回当前标志的状态(True/False)。
heartbeat_thread.is_alive()  用于判断该线程是否正在运行,(True/False)。

2.7消息回调和事件回调

维度 aibot_msg_callback (消息回调) aibot_event_callback (事件回调)
触发时机 用户主动发送一条消息内容时(文本、图片、语音、文件等) 用户与机器人发生交互动作,但不产生消息文本时,用户进入与机器人的单聊界面、点击快捷回复按钮、对机器人回复进行"点赞/点踩"、机器人被添加到群聊
相关推荐
wechatbot8884 天前
企业微信HTTP协议接口完整接入教程|全量消息收发 API 实战
网络协议·http·微信·企业微信·ai编程
wechatbot8884 天前
企微第三方自动化开发:原生能力无阉割 API 开放平台介绍
后端·ios·微信·企业微信·ai编程·ipad
地球@+jdhb447 天前
企业私域运营新趋势:快手短视频平台跳转小程序企微卡片链路搭建成为商家运营重点
小程序·企业微信
ITyunwei09878 天前
ITIL 5 落地前,先补齐工单数据底座的 4 步
运维·企业微信
9624569 天前
从 ERP 变更记录到企业微信实时通知:标准工时变更通知系统工程复盘
企业微信
随性而行3609 天前
企业微信二次开发如何接入大模型工具?API接口实现智能任务调用的技术思路
java·前端·人工智能·python·微信·机器人·企业微信
爱签AI电子合同9 天前
电子合同大批量怎么测?并发与批量处理维度专项测评
服务器·数据库·人工智能·企业微信·电子签名
本人手速666+10 天前
企微开发API如何设计客户冻结状态?WeComApi 在删除、投诉和异常客户场景中的自动化边界
运维·分布式·自动化·企业微信·企微外部群开发·wecomapi·企业微信二次开发
AlexCookie10 天前
低空周报(第五期)2026年9月21日‑9月27日|多地新版适飞空域落地,西安低空大会集中产业对接,eVTOL政企签约释放商业化信号
经验分享·企业微信·创业创新·低空经济·行业周报
爱签AI电子合同10 天前
电子合同上手成本怎么测?易用性维度专项测评
服务器·人工智能·智能合约·企业微信