微信公众帐号群发的图文消息一般情况下是在微信公众平台上编辑和产生的,个别帐号可以直接推送非微信公众平台的图文消息(现在也很少见了),而新注册的微信个人帐号被直接绑定的腾讯新闻这种帐号并不是普通的公众帐号,而是微信的一个插件。
我们先从一篇普通的微信公众平台的图文消息看看一篇图文消息链接的组成元素:
昨天,「技术微谈」公众帐号推送了一篇图文消息「Linode Hardware Issue 对传送门造成的问题及解决」,如果你要看到这篇文章,需要访问链接:
http://mp.weixin.qq.com/s?__biz=MzA5Njg3MjAzOA==&mid=201304287&idx=1&sn=02cb223a0e2ef2c238664c3617f04ca8
上面链接中的参数有__biz,mid,idx和sn四个参数,而这四个参数现在能唯一确定一篇微信公众平台的图文消息。
这四个参数的含义是:
-
__biz可以认为是微信公众平台对外公布的公众帐号的唯一id
-
mid是图文消息id
-
idx是发布的第几条消息(1就代表是头条位置消息)
-
sn是一个随机加密串(对于一篇图文消息是唯一的,如果你想问这个sn的生成规则是什么或者怎么破解,你基本上只能从微信公众平台开发团队才能得到答案)
而这个__biz参数能用来生成公众帐号的二维码,比如「技术微谈」的__biz是MzA5Njg3MjAzOA,那么技术微谈的二维码可以用如下链接生成:
http://mp.weixin.qq.com/mp/qrcode?scene=10000004&size=102&__biz=MzA5Njg3MjAzOA==
即可得到「技术微谈」的129x129尺寸的二维码:
而你只需要对上面这个链接改一下size这个参数的值就能得到任意尺寸的二维码图片,比如把size改成500即可得到如下516x516尺寸的二维码:
另外,对于除了__biz之外的三个参数,mid/idx/sn 可以分别写成 appmsgid/itemidx/sign,比如还是之前的这篇文章「Linode Hardware Issue 对传送门造成的问题及解决」,用如下链接一样可以访问到:
http://mp.weixin.qq.com/s?__biz=MzA5Njg3MjAzOA==&appmsgid=201304287&itemidx=1&sign=02cb223a0e2ef2c238664c3617f04ca8
而在早期,大概在一年半以前,只需要__biz, mid 和 idx三个参数即可确定一篇微信公众平台的图文消息:
比如这篇 「小道消息 by Fenng」的文章「业绩考核」的链接是:
http://mp.weixin.qq.com/s?__biz=MjM5ODIyMTE0MA==&mid=10000382&idx=1
微信后来增加一个参数sn(sign),这样做的原因是:
微信公众平台的图文消息首先在后台保存为了一篇素材才能发布,而这个素材也会生成一个链接,在早期这个素材的链接就是后来要发布的文章的链接,而从上面「业绩考核」这篇文章的链接你能猜出来,只需要改变mid(图文消息id)这个值,比如这篇文章的mid是10000382,对这个数字加上1或者2就极有可能是下一篇图文消息或者素材的链接,而实际上加2之后确实也是一篇文章:「说什么都不对」,链接是:
http://mp.weixin.qq.com/s?__biz=MjM5ODIyMTE0MA==&mid=10000384&idx=1
这样用户就有可能提前阅读到公众帐号已经写好并保存但还没群发的素材了。