一次企业微信接口对接的实践记录(含收发消息示例)

最近在做一个和企业微信相关的小工具,过程中除了官方接口,也接触到另一种实现方式(一般被称为 企业微信iPad协议 / 企业微信协议接口)。

这篇主要记录一下实际对接“收消息 + 发消息”接口的过程,偏实操,不做过多概念讨论。


一、整体接入方式

从使用角度来看,这类接口基本就是一个标准服务:

  • HTTP 请求发送消息

  • WebSocket / 回调接收消息

开发体验上,其实和普通 IM 接口类似。


二、发送文本消息(接口示例)

从文档来看,发送文本消息是一个标准 POST 请求:

请求地址


POST /wxwork/SendTextMsg
Content-Type: application/json

参数说明(简化理解)

参数 类型 说明
uuid String 实例标识
send_userid long 接收方ID
isRoom bool 是否群聊
content String 消息内容

示例代码(Node.js)


const axios = require("axios");

async function sendText() {
const res = await axios.post("http://你的地址/wxwork/SendTextMsg", {
uuid: "1753cdff-0501-42fe-bb5a-2a4b96297fb",
send_userid: "7881302555913738",
isRoom: false,
content: "测试消息"
});

console.log(res.data);
}

sendText();


返回结构(简化)


{
"data": {
"receiver": "xxx",
"sender": "xxx",
"msg_id": 1066230,
"msgtype": 2,
"content": "测试消息"
},
"errcode": 0,
"errmsg": "ok"
}


三、接收消息(事件流)

相比发送接口,接收消息更有意思一点

从文档可以看到,消息是通过事件形式推送的,比如文本消息结构如下:


{
"receiver": 1688855587446404,
"sender": 7881302555913738,
"content": "3243243",
"msgtype": 2,
"send_time": 1724034152,
"msg_id": 1011720,
"is_room": 0
}

字段说明(开发关注点)

重点关注几个字段:

  • sender:谁发的

  • receiver:发给谁

  • content:消息内容

  • msgtype:消息类型(2=文本)

  • is_room:是否群聊


简单处理逻辑示例


function onMessage(msg) {
if (msg.msgtype === 2) {
console.log("收到文本消息:", msg.content);

// 可以在这里做自动回复等逻辑
}
}

四、一个简单“收发联动”的例子

比如做一个最简单的自动回复:


async function handleMessage(msg) {
if (msg.msgtype === 2) {
await sendTextReply(msg.sender, "已收到:" + msg.content);
}
}

async function sendTextReply(to, text) {
await axios.post("http://你的地址/wxwork/SendTextMsg", {
uuid: "xxx",
send_userid: to,
isRoom: false,
content: text
});
}

五、实际使用中的一些体会

这里说点比较真实的开发感受:

1. 接口风格比较“直给”

  • 不需要复杂签名

  • 调用逻辑简单

  • 更像内部服务


2. 消息是“流式”的

和传统接口相比:

  • 不需要频繁轮询

  • 有事件就推送

  • 实时性更好


3. 更接近客户端行为

从消息结构来看:

  • 字段比较完整

  • 能拿到更多上下文信息

这一点在做记录或自动处理时会比较方便。


六、适合什么场景

结合这次实践,我觉得这类 企业微信协议接口 更适合:

  • 需要实时处理消息的系统

  • 自动回复 / 自动处理逻辑

  • 聊天数据记录分析

如果只是简单通知类,其实官方接口也够用。


七、总结

这次对接下来,一个比较直观的感受是:

这类企业微信iPad协议,本质就是把“客户端通信能力”转成接口,让服务端可以直接接入。

对开发来说:

  • 上手成本不高

  • 接入方式简单

  • 更偏“工程化接口”

Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐