【原】微信机器人项目笔记(一)
in 备忘 with 0 comment

【原】微信机器人项目笔记(一)

in 备忘 with 0 comment

金字塔是用一块块的石头堆砌而成的。 -- 莎士比亚

写在前面的话

最近我在学习Python,思前想后决定第一个小项目做微信机器人,这里还得提两个开源项目 wxBotweixinBot,受他们的启发,我也开始做这个工作,在实践过程中遇到了诸多的坎,在这里一一说明。

字符编码

python2在Unicode支持方面做的很不好,所以引发了诸多的问题,因为我还是python新手,所以我干脆选择了python3,但是在我的Mac上运行死活不可以,总是因为字符的问题直接crash。后来去了公司后,在Windows系统下却完美运行,这个例子告诉我们,除了语言本身,执行脚本的系统,编码的字符集以及terminal都会对脚本的运行产生影响。所以一定要注意!!

微信协议之二维码生成

在我们使用Chrome的调试工具去抓取web微信的请求时候,我看到了https://login.weixin.qq.com/qrcode/Yc4l7gdCaA==这样一条请求,换取了二维码。随后我就直接使用pyqrcode.create()将这个url变成了二维码,用手机去扫描,然而结果就是不可以,后来发现了https://login.weixin.qq.com/l/Yc4l7gdCaA==这个才是真正扫描的URL。

微信协议之等待扫码

网上有很多资料对这个URL的解释都近乎一致,https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=QZGKmF5Xzg==&tip=0&r=-213619558&_=1464797438192,大家都认为_是表示时间戳,但是我第一眼看就觉得不像,至少不是一个常规的时间戳,因为时间戳应该是10位数字,当然能否得到13位时间戳呢?是可以的算上毫秒就可以,那么微信的轮询真的是用时间戳?我只能说第一次绝对是时间戳,后面的循环就不是了,而是依次叠加一毫秒,大家可以去看看请求。

最后说两句,我觉得前人的经验是宝贵的,那么我们也不一定要一成不变,有时候去看看,走走前人走过的路,往往都会有新的收货

Comments are closed.