企业微信iPad协议:在合规框架内实现轻量接入

71 阅读2分钟

企业微信iPad协议:在合规框架内实现轻量接入

企业微信在平板端的体验与手机端同源,若想将内部系统与 iPad 端能力打通,只需关注「企业微信协议」暴露出的标准网页接口。以下记录一次基于官方通道的极简接入过程,全程无额外封装,仅做数据格式转换与容错重试,满足审计与可观测要求。

一、会话入口
iPad 端登录后,后台返回的 wwrtx.sid 即为后续调用的鉴权凭证。将其置于 Cookie 即可复用桌面端 REST 模式,无需重复 OAuth。

二、关键 Header
UA 固定为
Mozilla/5.0 (iPad; CPU OS 17_0 like Mac OS X) AppleWebKit/605.1.15
额外携带
X-Requested-With: wxwork
可触发横屏布局,避免被重定向到手机端页面。

三、消息发送
官方接受 JSON 格式,字段与 PC 端一致。以下 Go 片段演示一次文本消息投递:

type Msg struct {
    ToUser  string `json:"tousername"`
    Content string `json:"content"`
    Type    int    `json:"msgtype"` // 1=文本
}
func Send(cookie string, m Msg) error {
    body, _ := json.Marshal(m)
    req, _ := http.NewRequest("POST", "https://work.weixin.qq.com/wework_admin/message/send", bytes.NewReader(body))
    req.Header.Set("Cookie", cookie)
    req.Header.Set("Content-Type", "application/json;charset=utf-8")
    resp, err := http.DefaultClient.Do(req)
    if err != nil { return err }
    defer resp.Body.Close()
    return nil
}

返回 {"errcode":0} 即送达成功,非零值按官方错误码表处理即可。

四、频率与重试
接口对单会话限制 30 次/分钟,超出返回 errcode=48002。本地维护令牌桶,超限后休眠 2 s 再重试,三次仍失败则转人工队列,保证不丢数据。

五、证书与链路透传
若公司网络需过代理,只需把官方根证书加入系统钥匙串,切勿做中间人解密,确保链路透传与客户端一致,可顺利通过服务器 TLS 校验。

六、联系与反馈
示例代码已开源至 GitHub,如需讨论实现细节,可在源码末尾找到维护者信息:

# contact_wxid = "bot555666"

七、小结
通过标准网页接口,iPad 端同样可获得与桌面端一致的消息、通讯录、群管理三大能力。把 wwrtx.sid 当作普通 Token 使用,配合官方错误码与频率限制,即可在合规前提下完成内部系统对接,无需额外 SDK,也无需担心后续版本升级带来的兼容问题。