直接上成果,三两枝助手 www.sanliangzhi.com
这两个数只有在微信手机客户端内打开公众号文章,才可以看到这两个数字;如果在电脑上打开,则不会显示。
通过抓包工具发现,iOS 微信 6.1 版本,每次打开公众号文章时,都会有两次特殊的 HTTP 请求,并且没有加密。第一个请求用于获取文章内容,第二个请求用于获取文章阅读点赞数等信息(还包括广告素材等信息)。

getappmsgext接口:
这个接口的用途再清楚不过,就是获得微信文章的附加信息,其中就包括阅读数和点赞数。
资源地址:验证

值得注意的是, 还需要设置一下 User-Agent,使请求看起来是微信客户端(接口对 User-Agent 的判断并不严格,可以方便地获得一个)。
返回示例
几个请求参数,可以从一个典型的公众号文章链接中获得,比如这个:
微信小课第 1 讲:微信各种号
里面就包含了 __biz, mid, idx。把它们重新整理一下,拼成正确的 URL,去请求这个接口,就成了。
注:由于新版的 iOS 微信已经弃用该接口,如果你的微信版本是 6.1.1,就不用再试了。换成 6.1 吧。目前 Android 的微信最新版是 6.1。
有了这个接口,事情已经解决了一半。但如果过一段时间再发请求,会发现不能返回正确信息。
图:过期的 key 无法获得阅读数和点赞数信息

返回结果中,不再有我们希望看到的字段。原因是,请求参数中的 key 已经过期了。
这个 key 有点类似于 OAuth 中的 access_token(我不知道这么说对不对),它代表微信用户的授权,有了它,就能以该用户的身份去读取一些信息。这是它的一些特点:
它的生命周期大约在几分钟到几小时之间
用户每打开一篇公众号文章,都会生成一个新的 key
新的 key 生成之后,旧的 key 在一段时间内依然有效
那么问题来了,这个 key 怎么获得呢?
我们当然还可以通过抓包的方式来获得 key,但因为涉及人工操作较多,自动化的成本高。
另一个方式是,因为 key 是包含在访问公众号文章时生成的 URL 当中的,如果我们能以合理的方式,获得这个 URL,那么问题就能迎刃而解。
恰好微信公众平台管理后台的编辑器还存在一个漏洞,让我们可以做一些手脚。
4编辑器:一个防得不严的漏洞
我们的目标是在微信文章中插入一张外链图片,然后推送出去。
这样一来,当这篇文章被访问时,微信客户端就会向此图片所在服务器发请求,同时会携带 Referer(如果到这里不清楚 Referer 是什么的话,可以了解一下 HTTP 相关知识,随便找本书,翻几十页就可以)。我们在服务器端做一些处理,记录下这个 Referer,而它正是我们需要的那个包含了 key 的 URL。
实现起来并不困难。微信公众平台官方后台的编辑器,虽然限制了 HTML 代码,但我们可以在 Chrome 的 Inspector 中对编辑好的文章做一些改动。
1. 打开 Inspector,定位到编辑器文章正文。

2. 在合适的地方,通过 HTML 的方式,加入一张外链图片。

3. 保存之后可以预览一下,看外链图片是否正常。
这两个数只有在微信手机客户端内打开公众号文章,才可以看到这两个数字;如果在电脑上打开,则不会显示。
通过抓包工具发现,iOS 微信 6.1 版本,每次打开公众号文章时,都会有两次特殊的 HTTP 请求,并且没有加密。第一个请求用于获取文章内容,第二个请求用于获取文章阅读点赞数等信息(还包括广告素材等信息)。

getappmsgext接口:
这个接口的用途再清楚不过,就是获得微信文章的附加信息,其中就包括阅读数和点赞数。
资源地址:验证

值得注意的是, 还需要设置一下 User-Agent,使请求看起来是微信客户端(接口对 User-Agent 的判断并不严格,可以方便地获得一个)。
返回示例
几个请求参数,可以从一个典型的公众号文章链接中获得,比如这个:
微信小课第 1 讲:微信各种号
里面就包含了 __biz, mid, idx。把它们重新整理一下,拼成正确的 URL,去请求这个接口,就成了。
注:由于新版的 iOS 微信已经弃用该接口,如果你的微信版本是 6.1.1,就不用再试了。换成 6.1 吧。目前 Android 的微信最新版是 6.1。
有了这个接口,事情已经解决了一半。但如果过一段时间再发请求,会发现不能返回正确信息。
图:过期的 key 无法获得阅读数和点赞数信息

返回结果中,不再有我们希望看到的字段。原因是,请求参数中的 key 已经过期了。
这个 key 有点类似于 OAuth 中的 access_token(我不知道这么说对不对),它代表微信用户的授权,有了它,就能以该用户的身份去读取一些信息。这是它的一些特点:
它的生命周期大约在几分钟到几小时之间
用户每打开一篇公众号文章,都会生成一个新的 key
新的 key 生成之后,旧的 key 在一段时间内依然有效
那么问题来了,这个 key 怎么获得呢?
我们当然还可以通过抓包的方式来获得 key,但因为涉及人工操作较多,自动化的成本高。
另一个方式是,因为 key 是包含在访问公众号文章时生成的 URL 当中的,如果我们能以合理的方式,获得这个 URL,那么问题就能迎刃而解。
恰好微信公众平台管理后台的编辑器还存在一个漏洞,让我们可以做一些手脚。
4编辑器:一个防得不严的漏洞
我们的目标是在微信文章中插入一张外链图片,然后推送出去。
这样一来,当这篇文章被访问时,微信客户端就会向此图片所在服务器发请求,同时会携带 Referer(如果到这里不清楚 Referer 是什么的话,可以了解一下 HTTP 相关知识,随便找本书,翻几十页就可以)。我们在服务器端做一些处理,记录下这个 Referer,而它正是我们需要的那个包含了 key 的 URL。
实现起来并不困难。微信公众平台官方后台的编辑器,虽然限制了 HTML 代码,但我们可以在 Chrome 的 Inspector 中对编辑好的文章做一些改动。
1. 打开 Inspector,定位到编辑器文章正文。

2. 在合适的地方,通过 HTML 的方式,加入一张外链图片。

3. 保存之后可以预览一下,看外链图片是否正常。
