
做账号和联系人管理先要分清管理对象在哪个层级。层级搞错了接口怎么调都会混乱。按抽象程度分三层管理对象。一、实例层——管理 wId 这个运行单元Eyun用 wId 标识一个微信实例一个 wId 对应一个登录的微信号。多开场景下程序同时管理多个 wId每个 wId 的消息、好友、群聊完全隔离。实例层的管理动作包括获取实例列表、查询实例在线状态、处理实例上下线。wId 是所有后续接口调用的必填参数管理好多实例是规模化运营的前提。二、账号层——管理登录态与身份每个 wId 背后是一个真实微信号账号层管的是这个号的登录态是否在线、Token 是否有效、掉线后怎么处理。Token 过期错误码 1002要重新获取实例掉线会触发状态事件回调。账号层稳定上面的业务才能稳定——这一层出问题所有接口调用都会失败。三、联系人层——管理好友数据联系人层是业务最常接触的好友列表、好友资料、备注标签、群成员。这些数据通过联系人接口和群接口获取通过事件回调保持增量更新。联系人数据建议落库存储本地维护一份。回调推增量同步接口拉全量两边对账保证数据一致。三层管理对照管理层级管理对象核心动作出问题的影响实例层wId多实例、隔离消息串号账号层登录态、Token在线监控、重连全部接口失效联系人层好友、群成员同步、更新、落库数据不准多实例管理示例INSTANCES [wId_001, wId_002, wId_003] def broadcast(text): # 给每个实例的所有人群发互不干扰 for wid in INSTANCES: for friend in get_contacts(wid): sendText(wid, friend[wxid], text) app.post(/webhook) def webhook(): d request.json wid d[wId] # 回调里带 wId区分是哪个实例 route_by_instance(wid, d) return {code: 1000}落地建议三层从下往上依赖实例层要先理清有几个 wId、怎么隔离账号层要盯稳在线监控、掉线告警联系人层才能做准数据同步、落库。很多项目直接跳到联系人层结果实例串号、掉线不知数据再准也没用。