前阵子接了个私活,客户是做电商的,想让自己的系统在订单状态变更时自动给客户发微信通知。一开始他想用公众号,后来发现个人微信更贴合他的业务场景——客户都在个人号上,打开率高,转化也更好。
于是我帮他调研了一圈个人微信API。说实话这东西水挺深,方案五花八门,功能边界也不是一两句话能说清。这篇把接入前必须搞懂的功能和概念整理出来,希望能帮你少走点弯路。
我会从功能概览、鉴权机制、方案选型三个维度展开,看完你应该能判断自己的业务要不要接入、怎么接入。
一、个人微信API能做什么
先说结论,个人微信API大概能覆盖这几类能力:
消息收发:文本、图片、语音、视频、文件、链接、小程序卡片
群聊管理:建群、拉人、踢人、@提醒、群公告
联系人管理:加好友、删好友、备注、标签分组
朋友圈:发图文、获取朋友圈列表、点赞、评论
账号管理:登录、登出、多开、状态查询
收付款:转账、收款、红包(部分方案支持)
对大多数业务场景来说,前两类——消息收发和群聊管理——是用得最多的,能覆盖电商通知、客服机器人、社群运营这些主流需求。
二、消息收发:最基础也是最常用的能力
消息收发是所有微信API方案的"基本盘",不管你用哪家的服务,这部分逻辑都差不多。发送是主动调接口,接收一般靠回调或者长轮询。
一个典型的发送文本消息的调用长这样:
import requests def send_text(token, w_id, wc_id, content): """ 发送文本消息 :param token: 接口鉴权Token :param w_id: 微信实例ID :param wc_id: 接收方wxid或群ID :param content: 消息内容 """ url = "https://api.example.com/sendText" headers = {"Authorization": f"Bearer {token}"} payload = { "wId": w_id, "wcId": wc_id, "content": content } resp = requests.post(url, json=payload, headers=headers, timeout=5) return resp.json()发送消息时要特别注意消息类型的区分。不同类型的消息走的接口不一样,参数也不一样:文本消息直接传content;图片、文件这类媒体消息要先上传拿到URL再发送;链接消息要传标题、描述、缩略图。新手最容易踩的坑就是拿发文本的接口去发图片,结果一直报错。
接收消息则是另一种玩法:服务商一般通过回调或长轮询把新消息推给你的服务,你拿到之后做业务处理。回调这块在后面接入流程那篇会细讲,这里先知道有这回事就行。
三、群聊管理:社群运营的核心
做社群的老板最爱这个。建群、拉人、自动@、群发,这些动作组合起来就是一套自动化运营流程。
举个例子,我给客户做的电商系统里有个"VIP客户群",新订单满一定金额自动拉客户进群、群里@发优惠券、群公告自动同步活动信息,全靠群管理接口串起来。这种玩法在私域运营里特别常见。
群管理接口一般包括:创建群、邀请入群、踢出成员、修改群名、群公告、@提醒、群消息发送。把这些组合起来,手动运营要花几个小时的活,写个脚本几秒钟就跑完。
四、朋友圈与联系人管理
朋友圈接口能做的事比想象中多:发图文、发视频、查列表、点赞、评论,基本上手动能做的事API都能做。做品牌曝光、内容分发的团队会比较关注这块。我帮客户做过一个"朋友圈自动同步"的功能,电商上新产品后自动在个人号朋友圈发一条图文,省了运营手动转发的功夫。
联系人管理则是加好友、打标签、改备注,做私域流量运营的同学应该懂这有多重要。给客户打上标签之后,后续群发、分层运营都能精准触达,比一锅炖效率高太多。比如给"高客单价"标签的客户单独发新品预告,转化率比群发所有人高好几倍。
五、接入前必须搞懂的鉴权概念
这块是新手最容易懵的地方。市面上常见的微信协议API方案(比如gewe、Eyun这类),鉴权模型大同小异,先把三个核心概念搞清楚:
Token:调用接口的"通行证",一般通过登录接口拿到,有效期有限,过期要重新登录
wId:微信实例ID,一个微信号对应一个wId,多开时每个号一个
wcId:对方账号ID,发消息时告诉接口"发给谁",可以是个人wxid也可以是群ID
简单说一句话:Token证明你是谁,wId证明用哪个微信发,wcId证明发给谁。这三个字段几乎贯穿所有接口,文档里翻一翻就懂。
举个实际场景:你有3个微信号分别服务不同业务线,每个号登录后拿到一个wId;要给某个客户发消息,就用对应微信的wId + 客户的wcId + Token三个字段一起调接口。多账号管理就是这么回事,理清这个关系后面所有接口调用都不会晕。
六、市面上有哪些方案
个人微信API方案大致分三类:
协议逆向:自己抓包逆向微信协议,技术门槛高、维护成本大,微信一升级就可能失效
Hook方案:基于PC端微信的Hook注入,灵活但容易被风控
第三方API服务:服务商把底层封装好,你直接调HTTP接口
我接的私活选的是第三方服务,理由很简单:客户不想养一个逆向团队,只想把通知发出去。市面上常见的个微API方案包括gewe、Eyun等,都是协议型API服务,开箱即用,适合不想折腾底层协议的开发者。
这三种方案怎么选?简单说:协议逆向适合专门做这块的服务商,Hook适合内部工具或者短期项目,第三方API服务适合绝大多数想快速跑通业务的团队。从成本上看,第三方服务看着要付费,但你算上自研的人力、维护、风控成本,其实便宜得多。
想了解具体接口长什么样,可以直接翻 Eyun开发文档,功能清单和字段说明都列得比较清楚,照着调一遍基本就懂了。和gewe这类同类服务对比着看也行,选一个文档最顺手的。
七、新手容易踩的坑
接入前再提醒几个点:
别只看功能列表:有些接口文档写得花里胡哨,实际调起来各种限制,先跑通核心的"发消息"和"收消息"再说
Token要缓存:别每次调接口都重新登录拿Token,容易被风控,而且慢
注意频率限制:发消息太快会被限流,建议加个本地队列控制速率,留出50%的余量
回调地址要公网可访问:本地开发用ngrok,上线要有公网IP或域名
新号先养几天:刚登录的微信号别一上来就大量发消息,先少量测试,让账号"热身"一下,降低被风控的概率
总结
接入个人微信API前,先把这几件事想清楚:
你的业务用得到哪些功能:消息收发够不够?要不要群管理、朋友圈?
鉴权模型搞懂没:Token、wId、wcId三个字段绕不过去
选哪种方案:自研协议还是用第三方服务,取决于团队能力和维护成本
接口文档读一遍:先翻 Eyun平台首页 看看功能概览,再决定要不要深入
把这些想清楚,后面接入就顺了。个微这块虽然概念多,但核心逻辑不复杂,找对服务商、读懂文档,半天就能跑通。
最后说一句,很多人在选方案上纠结很久,其实没必要。先用第三方服务把业务跑起来,赚到钱了再考虑要不要自研也不迟。我自己接的几个项目都是这个思路,没有一个客户因为用了第三方服务而后悔的,反而都是嫌自己折腾太晚了。