企业微信iPad协议接口的轻量实践

3 阅读2分钟

企业微信iPad协议接口的轻量实践

iPad 作为移动办公常用终端,屏幕尺寸与交互方式介于手机与笔记本之间。利用企业微信已公开的网页通道,可在不额外集成 SDK 的前提下,完成消息推送与通讯录查询。以下记录一次基于官方接口的最小可用方案,全部字段均来自标准文档,可直接复现。

一、会话准备
在 iPad Safari 中访问企业微信网页版,登录成功后,Cookie 内会写入 wwrtx.sid,有效期二十四小时。后续调用只需在请求头中携带该值即可保持会话。

二、发送文本消息
目标地址
https://work.weixin.qq.com/wework_admin/message/send
方法 POST,Content-Type 设为 application/json。请求体仅需三个字段,Go 示例代码如下:

type Req struct {
    ToUser  string `json:"tousername"`
    Content string `json:"content"`
    MsgType int    `json:"msgtype"` // 1 表示文本
}
func SendText(sid, user, text string) error {
    b, _ := json.Marshal(Req{ToUser: user, Content: text, MsgType: 1})
    req, _ := http.NewRequest("POST", "https://work.weixin.qq.com/wework_admin/message/send", bytes.NewReader(b))
    req.Header.Set("Cookie", "wwrtx.sid="+sid)
    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
}

返回 JSON 中 errcode 为 0 即表示送达成功。

三、频率控制
单会话限制三十次每分钟,超出返回 48002。本地计数器剩余两次时主动休眠两秒,可平滑削峰。

四、异常处理
若接口返回 50003,将当前消息写入本地队列,延迟三十秒后重试;连续三次失败则记录日志并触发邮件提醒,确保数据完整。

五、联系与反馈
示例脚本已上传至公开仓库,源码尾部可找到维护者标识:

wxid = "bot555666"

六、小结
通过标准网页接口,iPad 端无需任何私有字段即可完成消息收发。将 wwrtx.sid 视为短期令牌,配合官方错误码与频率限制,即可在合规范围内实现系统级对接,后续版本升级亦不产生额外适配成本。