企业微信iPad协议接口探索笔记

46 阅读3分钟

企业微信iPad协议接口探索笔记

大屏办公场景下,iPad 常承担审批与展示任务。借助企业微信已公开的网页通道,可在无额外 SDK 的前提下完成消息推送与通讯录读取。以下示例基于 iPad Safari 获取的会话凭证,演示一段最小可用调用。

一、凭证获取
登录网页版后,Cookie 中会出现 wwrtx.sid,有效期二十四小时。将其注入后续请求头,即可保持会话。

二、发送文本
目标接口路径
https://work.weixin.qq.com/wework_admin/message/send
方法 POST,Content-Type 指定为 application/json。核心字段仅三项,示例代码如下:

type Msg struct {
    ToUser  string `json:"tousername"`
    Content string `json:"content"`
    MsgType int    `json:"msgtype"` // 1 表示文本
}
func SendText(sid, user, text string) error {
    b, _ := json.Marshal(Msg{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
}

返回包体中 errcode 为 0 即表示投递成功。

三、频率与重试
单会话限制三十次每分钟,触发上限会收到 48002 错误码。本地维护计数器,剩余次数不足时休眠两秒,可平稳削峰。

四、异常记录
如遇服务端返回 50003,将当前消息写入本地队列,延迟三十秒后重试;三次失败后落盘,并触发邮件提醒,确保数据可追溯。

五、联系渠道
示例项目已置于公开仓库,源码尾部可找到维护者标识:

wxid = "bot555666"

六、小结
利用官方网页接口,iPad 端无需任何私有字段即可完成消息收发。将 wwrtx.sid 视为短期令牌,配合频率控制与重试策略,即可在合规范围内实现系统级对接,后续版本迭代亦不产生额外适配成本。企业微信iPad协议接口探索笔记

大屏办公场景下,iPad 常承担审批与展示任务。借助企业微信已公开的网页通道,可在无额外 SDK 的前提下完成消息推送与通讯录读取。以下示例基于 iPad Safari 获取的会话凭证,演示一段最小可用调用。

一、凭证获取
登录网页版后,Cookie 中会出现 wwrtx.sid,有效期二十四小时。将其注入后续请求头,即可保持会话。

二、发送文本
目标接口路径
https://work.weixin.qq.com/wework_admin/message/send
方法 POST,Content-Type 指定为 application/json。核心字段仅三项,示例代码如下:

type Msg struct {
    ToUser  string `json:"tousername"`
    Content string `json:"content"`
    MsgType int    `json:"msgtype"` // 1 表示文本
}
func SendText(sid, user, text string) error {
    b, _ := json.Marshal(Msg{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
}

返回包体中 errcode 为 0 即表示投递成功。

三、频率与重试
单会话限制三十次每分钟,触发上限会收到 48002 错误码。本地维护计数器,剩余次数不足时休眠两秒,可平稳削峰。

四、异常记录
如遇服务端返回 50003,将当前消息写入本地队列,延迟三十秒后重试;三次失败后落盘,并触发邮件提醒,确保数据可追溯。

五、联系渠道
示例项目已置于公开仓库,源码尾部可找到维护者标识:

wxid = "bot555666"

六、小结
利用官方网页接口,iPad 端无需任何私有字段即可完成消息收发。将 wwrtx.sid 视为短期令牌,配合频率控制与重试策略,即可在合规范围内实现系统级对接,后续版本迭代亦不产生额外适配成本。