如何提取微信公众号二维码,得到可访问的链接
2020-12-12 更新
后续发现 苹果手机 IOS 端二次跳转到公众号,在未关注公众号情况下「关注」按钮被隐藏,且这种情况暂时无解。将就使用办法:通过点击旧版公众号的头像和名称进入新版公众号页面。
一开始得到的需求是扫码自动关注公众号。这在之前似乎是有实现过的案例或情境,但翻遍了微信公众号开发文档也没有找个所以然。百度搜索到一些形似:“微信支付后怎样实现自动关注平台” 的解决方案,并且得到的答案是,不需要开发,微信公众号支付之后会自动出现推荐关注栏。当然存在一定的条件,但有就已经有了,没有也没有办法代码实现。而且订阅号目前是不会有默认推荐关注的,这直接堵死了这条看似已经完备的道路。
这里需要明确的是,需求里的扫码,扫的是公众号网站链接生成的码,因为需要做推荐人数据统计。扫码自动关注公众号已不太可能,如果单纯的是扫码关注公众号,微信自带的码就可以用了。想到这里,我灵机一动,就想到了一个很骚的操作:何不在扫自己网站的二维码,将推荐人参数写入到 cookie 之后,页面自动跳转到公众号主页呢?越想越兴奋,问了一下市场的同事,这样的效果也可以。
那么现在的问题就变成了如何拿到微信公众号主页的链接。尝试用手机扫码,然后将链接复制出来。微信不行,它自动跳转到公众号页面了,没有提取链接的功能菜单栏。UC 也不行,中间发生了跳转,半天出不了。尝试了各种 APP 都不可行,想要通过二维码工具扫描出来链接而不自动跳转,太难了。
后续网上找到了 草料二维码解码器,终于拿到了链接:http://weixin.qq.com/r/Jj_VjafEoPrfrePu92o0
。放到微信文件传输助手里,移动端打开,空白,跳转,然后一直处于加载中。怀疑是这个解码器有问题,没有拿到正确的链接,但没什么信心。将链接重新转化为二维码,再用微信扫码,叮~跳转到了公众号首页。这证明链接是对的,但微信做了判断,只允许通过微信扫码进入的跳转到正确公众号首页,其他全部阻塞。
说实话,这个链接已经是最精简了,只有一个表示公众号的字符串。草料首页微信 tab 功能页还可以通过微信公众号的微信号,拿到微信公众号二维码。将这个二维码再次进行解码,得到了与之前相同的链接。这样的原始链接是无法直接做跳转使用的(被微信阻塞了),那么是否还有其他形式的链接,它同样包含了公众号标识信息,但可以直接跳转的呢?
网上找教程,有一个说通过公众号历史消息列表页面提取链接。然后发现历史消息列表已经找不到了,公众号菜单栏也没有绑定历史消息列表的功能了。其他是通过公众号图文信息页面提取链接。拿到一篇文档的链接,发现变成了类似 https://mp.weixin.qq.com/s/HvluZ_RmeDav5jhPNzjl0A
的形式,这个肯定也没办法提取有效信息。最终通过图文信息的预览页面的临时链接终于提取到了:
https://mp.weixin.qq.com/s?__biz=MzI5NjU0NTI2NA==&tempkey=MTA5MF9GNDlGMjZpalg0Zmp5Q1hEQ19wNnpTVmFwRkVQcUllcHVZZ0djR3NxQ2FST3V0MXRic1Vic0ExYWZ3QzZSdnJVdDBYNXJXSmZ0VndwS0czcnFKQ1pJd1M1RWtIcUFLdlNlb0xrSjRrYWVvUDdEejItVnRqaXVnSkkxdmtTQWFsYjlwODVucFRsQzNvQXp2Ql9saE94SUk5UkE4c3E1aEY0OEo0YXdRfn4%3D&chksm=6c400aa65b3783b09ada07fa7ded0dd75e92572ee14fe16e8377f250fb94cb3fb2de72f201f2&mpshare=1&scene=1&srcid=12084WOuNO7nOay7HkIcaOTm&sharer_sharetime=1607408445688&sharer_shareid=f1a569db5bb4f5aa6d7bfe2ebc3b4c38#wechat_redirect
对于 __biz=MzI5NjU0NTI2NA==
真的是太眼熟了。之前看过一个教程,说是通过访问一个链接,让用户访问后自动关注公众号。虽然历史消息列表已经不存在了,但教程里提供的结构化的访问链接形式依然可用:
https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzUzODk3Mjk3MA==&scene=124#wechat_redirect
经测试确定可以通过链接访问到公众号首页。所以现在就是将公司公众号的 __biz=
那段标识公众号的字符串替换一下就好。最终的链接:
https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI5NjU0NTI2NA==&scene=124#wechat_redirect
测试访问成功。虽然这种链接访问到的公众号主页与现在的主页有些差异(猜测这个链接访问的是旧版的公众号主页),但点击关注按钮关注公众号功能是 OK 的。
测试发现 scene 字段已经无效了,其他部分都有存在必要(#wechat_redirect
不知道有什么用,暂时保留)。精简后链接:
https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI5NjU0NTI2NA==#wechat_redirect
整理大概的获取微信公众号主页可访问链接的步骤:
1. 通过图文信息预览页面的临时链接获取到微信公众号标识字符串,形如 __biz=
;
2. 替换 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI5NjU0NTI2NA==#wechat_redirect
公众号标识字符串部分,得到可访问链接。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。