内容简介:基于flask框架实现web微信的登录以及收发消息。
实现思路:
1.获取验证码,并检测是否在手机端扫码并确认登录(长轮询)
2.用户数据初始化获取的授权信息,并根据获取的授权信息获取联系人信息
3.发送消息,根据接受者的ID,并携带登陆授权的认证发送POST请求
4.接受消息,用长轮询的方式,去想服务器端发送求,并检测返回值中的‘selector’值为0代表无新消息,2代表有新消息。无论为‘0’or‘2’,都会接着发长轮询请求,如果为‘2’就会向服务端请求新消息的内容。
需要注意的事项:
1.有的微信登录地址是wx.qq.com,有的却是wx2.qq.com。检测方法:先去wx.qq.com去登录一遍,登录成功后查看域名,上面是wx.qq.com/***还是wx2.qq.com/***,以此来判断适合的URL,否则获取的数据是空值。
2.微信的图片具有防盗链的功能。
问题原因:在获取图片的get请求中携带的请求头有‘Referer’or‘Host’,但是html页面在发送请求的时候请求头是自动生成的,是‘127.0.0.1:5000/***’这种格式的。
解决思路:自己在后台去模拟好请求头,在headers中添加相关的参数即可获取到图片的二进制数据,然后直接返回给前端HTML网页的img标签。
再说一点自己不会的模块吧:
1.循环打印出所有联系人你的头像,没有成功
解决办法:进一步学习函数的基础知识 和 flask模块。多加练习
2.接受消息的长轮询没做好,在访问页面期间必须有人来消息才不会出错,而且不能持续打印新消息,只能打印一次。
3.收发消息还是显示@****的ID识别号,不能根据ID转换成昵称,不符合人类观看。
这次作业做的不是很成功,我想还是我的知识储备太少了。 --Mobs
原文地址:https://www.cnblogs.com/mobs/p/9304258.html