微信公眾帳號群發的圖文消息一般情況下是在微信公眾平台上編輯和產生的,個別帳號可以直接推送非微信公眾平台的圖文消息(現在也很少見了),而新注冊的微信個人帳號被直接綁定的騰訊新聞這種帳號並不是普通的公眾帳號,而是微信的一個插件。
我們先從一篇普通的微信公眾平台的圖文消息看看一篇圖文消息鏈接的組成元素:
昨天,「技術微談」公眾帳號推送了一篇圖文消息「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
這樣用戶就有可能提前閱讀到公眾帳號已經寫好並保存但還沒群發的素材了。