微信公众平台开发模式的「分权」需求探讨

目前微信公众平台开发者模式配置里,接收消息的 URL 只能填写一个,所有粉丝(公众号订阅者)发来的消息,都将由微信服务器 POST 到这个 URL 上。

接收消息的URL设定

这是微信公众平台开放之初就已经定下来的设定,如今却越来越不合理起来。

单细胞生物的生态系统

从营销角度讲(我不懂营销,最多也是推己及人,推不到就意淫,以下讲到营销时,如有专业人士不爽,我双手支持),一个微信公众号可能是一个广告主,将文章开头的一段话翻译一遍,就是说,一个广告主只能请一个独家代理,这家代理会独揽大权,倾听该品牌所有消费者的声音并回复。

这不合理,市场的实际情况是代理公司分门别类,各有专攻,一个品牌主委托多家代理的情况很常见。即便某项业务的代理必须独家授权,品牌主的另一项业务也应该能够委托另一家代理。

一个公众号,往往代表的是一家企业、或一个品牌、或一个产品,是一个长久而稳定的品牌形象(当然不排除某个活动单独申请一个专用公众号的情况)。它下面会有各种各样的业务,需要委托给不同领域的专业代理公司去做。一个公众号是一个 APP(之前微信不记得谁说过的),但一个 APP 是一个五脏俱全的 APP,会有不同方面的需求。

而就像在文章开头所提到的,目前微信的规则是,一个品牌只能有一家代理。面对市面上服务各异的做微信公众平台的公司,往往只能望洋兴叹,选择一家服务,就必须放弃另一家服务,机会成本巨大。

微信公众平台提供分门别类的接口,不同代理公司利用其中某些接口,可以做出与自己业务相关的某些功能,形成一项小而精的微信服务。他们往往在一个领域内技术卓越,而在另一个领域内一无所知。而微信这边,是一个平台,一个生态系统,必须考虑市场主体间的这种复杂关系。

可以说,微信这个生态系统里,现在还只是考虑了一些单细胞生物。随着第三方平台的发展,许多单细胞生物进化了,然后对发现原来的生态系统提供的营养不够。

举个例子,某快消品牌的微信一直委托给一家公关公司运营,现在做一个 Campain ,需要对活动进行一次全面的监测获得完整分析报告,而这项服务是前边那家公关公司做不了的。好消息是,市面上有另一家监测技术更好的公司有这项微信业务。坏消息是,后者不提供消息相关的运营。甲方开始头疼了。

当然,并非没有解决方法。

折返接力的美丽与哀愁

微信公众号接收到的消息是通过的 HTTP 协议传递的,利用传递的规则,可以允许有多家代理存在。对于粉丝发来的一条消息,代理 A 看一个自己能否处理,如果处理不了,那么消息转(POST)给代理 B,代理 B 同样处理不了的话,转给代理 C。最后代理 C 完整解决了问题,再回复给代理 B,代理 B 再回复给代理 A,代理 A 再回复给微信服务器,微信服务器再回复给公众号粉丝。(这是在 Denis 开发的 Wordpress 微信机器人插件中得到的启示,在此感谢)

多级代理模式

上图中说的就是这么个意思:粉丝发来 hi,微信公众平台自然根据管理员设置的接收消息的 URL 把 hi 这条消息发送给代理 A,代理 A 自己不知道 hi 是什么意思,就问其他代理,最终代理 C 知道怎么回答,就顺着这条链回复回去,最终粉丝收到了 hi。

这个流程看上去,像个双向折返的接力赛,一棒一棒跑到终点,再一棒一棒跑回起点。折返接力看上去挺美好,好像解决了问题,但存在几个潜在的问题:

  1. 第一代理,也就是代理 A 的权力太大。作为公众号管理员最信任的代理,他掌管和调度着其他所有代理。(当然企业或品牌可以自己充当这个第一代理的角色,但现实是很少有人这么做)
  2. 如果某个环节出了问题,不太容易界定责任。需要多个代理间协调的事情比较多。
  3. 微信规定一条消息需要在 5 秒钟内完成回复。

微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。

如果图中转来转去的这个流程,在任何一个环节稍有耽搁,或者传输过程不顺畅,都会导致消息处理超时,粉丝收不到回复消息。

怎么办?

不以谁为中心,只为生态而设计

顾客分不同职责,有使用的,有买单的。微信客户端用户(公众号粉丝)是使用的顾客,微信公众平台用户(公众号)是买单的用户。都是用户,都重要,都是中心,又都不是中心。

不必以谁为中心,不必刻意去讨好谁。现实生活是怎样的,真实生态系统是怎么的,就照着来。参考营销里的做法(说到最后才明白,不只是营销),委托人有权决定自己的哪项需求委托给谁。

还用前边的快消品牌举例,他可以决定,把消息回复委托给代理 A,把监测分析委托给代理 B,而 A 和 B 之间可能没有通讯,甚至不知道对方的存在。这才是品牌主的真正需求。

具体到微信公众平台实际,可以朝哪些方向调整?

  1. 不同类型的 API 接口,可以单独授权。
  2. 接收消息的 URL,可以按类型分别填。比如文本消息让代理 A 处理,图片消息让代理 B 处理,二维码扫描消息让代理 C 处理。当然,几个 URL 可以相同,也可以让公众号管理员自己决定统一填,还是分开填。
  3. 统计分析数据(腾讯移动分析提供),可以开辟独立的入口和独立的接口,让第三方能通过授权获得。

或许,加入了精细权限划分的微信公众平台开发者模式配置页面,会长成这个样子:

权限分明的开发者模式配置

当然,这是个很粗鲁的改造,真要用的话,需要更多的设计和测试。

我只是想说,如果微信公众号要为品牌服务,那应该尽量让品牌主用着舒服。品牌主用着舒服,就能让自己的客户(微信用户)舒服。用户舒服了,微信也会舒服。

更多选择,更多欢笑。不是吗?

PS. 如果微信官方不考虑分权,那么我想未来可能会有一些主打分权需求的产品出现。不提供任何实际服务,只是帮忙分析粉丝发来的所有消息合理分配给不同的代理。市场巨大,不是吗?

阅读 62