ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

个人微信API开发实战:双Token鉴权+多账号管理完整方案

2026/9/28 20:38:20 拓冰建站 浏览量
个人微信API开发实战:双Token鉴权+多账号管理完整方案 选好API只是开始真正动手开发时最先要搭对的就是鉴权层和多账号管理层。这两块是整个系统的地基写错了后期所有业务代码都要返工。这篇给一套可直接落地的完整方案。参考资料WTAPI框架 接口字段参考api文档weiti.apifox.cn 。一、四个凭证字段先理清WTAPI每次调用要带四个身份字段分两层请求头两个X-finder-TOKEN平台凭证、Authorization Bearer业务授权请求体两个appId租户、instanceId具体微信号。平台权限和业务权限解耦一个平台Token管多个appId一个appId挂多个instanceId。二、统一客户端鉴权只写一遍绝对不要在每个业务方法里手动拼请求头。封装一个客户端集中处理classWxClient:def__init__(self,token,bearer,app_id):self.token,self.bearer,self.app_idtoken,bearer,app_iddef_headers(self):return{X-finder-TOKEN:self.token,Authorization:fBearer{self.bearer},Content-Type:application/json,}defcall(self,path,instance_id,**params):body{appId:self.app_id,instanceId:instance_id,**params}rrequests.post(fhttps://wx.chuapi.com{path},headersself._headers(),jsonbody,timeout10).json()ifr.get(code)!1000:raiseRuntimeError(f接口异常:{r})returnr.get(data,{})Token从配置中心或环境变量注入禁止硬编码进代码或打进日志。三、多账号管理器实例多了需要一个管理器统一持有所有instanceId、做路由和健康检查classInstanceManager:def__init__(self,client,instance_ids):self.clientclient self.instances{i:unknownforiininstance_ids}self._idx0defpick(self):online[ifori,sinself.instances.items()ifsonline]ifnotonline:raiseRuntimeError(无可用在线实例)instonline[self._idx%len(online)]# 轮询self._idx1returninstdefmark(self,instance_id,status):self.instances[instance_id]status四、收发都按实例隔离发送时由管理器选号或业务指定号接收时回调带instanceId回复强制用同一个号defsend_text(self,to_wxid,content,instance_idNone):instinstance_idorself.mgr.pick()returnself.client.call(/finder/v2/api/postText,inst,toWxidto_wxid,contentcontent)会话状态、去重标记、聊天记录一律用instance_id:wxid复合键杜绝跨号串数据。五、Token轮换与最小权限生产环境提前设计轮换新旧Token设并行生效期应用侧支持热加载不重启鉴权失败率超阈值告警。权限上每个appId只开业务必需的接口自动回复号就不给删好友权限——权限收敛Token泄露时损失才可控。把这套统一客户端实例管理器复合键隔离Token轮换搭好从单号扩到几十号业务代码几乎不用改。