微信聊天机器人

项目地址:https://github.com/penghaitao918/WeChatReboot

前段时间闲着无聊,突然想起以前玩的QQ机器人,然后作为一条咸鱼,觉得还是有必要翻下身,于是就寻思能不能弄一个微信的聊天机器人给自己找点事。通过对WebChat的抓包,同时也查了一些资料,花了四个晚上终于整了出来。orz
 由于只是想做一个自动回消息的聊天机器人,所以像用户信息、好友列表、群组之类的接口就没有去弄了,可能以后有时间会继续接着做吧。同时也欢迎fork & pull request
 项目大致上分三个阶段,首先是登录,然后获取消息,最后发送消息。
Tip:
 项目用的是WebChat的协议 ,然后WebChat和PC客户端的微信是不能并存的,所以机器人会把客户端的微信顶下去。所以一直让我觉得这个机器人很鸡肋orz,然而这个是微信自己的设定,本咸鱼表示很无奈 -。-

登录

登录阶段一共是两部分,一个就是字面上的登录了;另一个是初始化信息,包括全局的参数信息和必要的个人信息。

登录

  1. 首先获取UUID,终端的唯一标识符;
  2. 然后通过UUID生成登录二维码;
  3. 最后手机微信上扫码确认登录。
获取UUID
微信聊天机器人_第1张图片

说明:
appid固定为wx782c26e4c19acffb
redirect_uri要进行URL编码化操作
fun固定为new
lang语言格式
1505468334967时间戳,java下System.currentTimeMillis()
200 表示成功
4aqV8YT42A==UUID

生成二维码
微信聊天机器人_第2张图片

说明:
 不需要传参数,直接拼接url字符串即可,返回的也直接就是二维码图片

轮询扫码结果
微信聊天机器人_第3张图片

说明:
loginicon固定为true
uuid上面第一步获取到的uuid
tip1表示未扫描,0表示已扫描(第一次传1就行,然而刚刚看了下代码好像我一直传的1。。尴尬 = =!)
r时间戳取反
_时间戳
window.code 扫描结果,201表示扫描成功,200表示确认登录,还有一个408,表示超时(一直没有扫码)
window.userAvatar用户头像base64编码
window.redirect_uri获取初始化信息的重定向Url

初始化

  1. 初始化全局参数
  2. 初始化个人信息及最近联系人列表
初始化全局参数
微信聊天机器人_第4张图片

说明:
 直接用上面获取的 window.redirect_uri拼接 &fun=new&version=v2&lang=zh_CN即可
 获取结果如下图

微信聊天机器人_第5张图片
Response


剩下的有时间再写,毕竟最近要发新版本有点忙 -。-

你可能感兴趣的:(微信聊天机器人)