[TOC]
获取uuid和二维码:
- 在公众号输入8,即可返回二维码图片;
- 生成uuid;
- 生成二维码;
- redis中保存要登陆用户的信息;
- 返回二维码。
后台守护进程:
- 开启一个守护线程:
- 获取redis中保存的用户信息;
- 判断如果未登陆则继续执行以下操作,如果已经登陆了,返回,不做任何操作。
- loginService.login()
- 代码登陆逻辑,如果登陆了,将状态setAlive置为已经登陆,若未登陆,sleep1秒继续。
- 将联系人信息保存到redis中
- webWxInit()
- 获取user信息,并保存到数据库。
- 获取用户的联系人信息,并保存到数据库;
- 获取SyncKeyBean信息,并保存到数据库;
- wxStatusNotify()
- 微信通知状态改变,手机端提示网页端登陆成功。
- startReceiving()
- 开启消息接收。
- 开启新线程:
- syncCheck() 检查是否有新消息
- 状态为0(收到正常报文):
- webWxSync() 联网获取新消息;
- 通过初始化过去的SyncKey参数进行获取,返回成功后,要把新返回的SyncKey保存到数据库中,下次用新SyncKey进行获取新信息。
- 对获取到的新信息进行操作。 MsgCenter.produceMsg();
- 保存消息到数据库。
- webWxSync() 联网获取新消息;
- 状态为0(收到正常报文):
- syncCheck() 检查是否有新消息
- webWxGetContact() 获取好友列表
- WebWxBatchGetContact()
- setUserInfo() 缓存本次好友信息。
- CheckLoginStatusThread开启登陆状态线程。
2017.09.04
做好微信机器人,在微信公众平台界面发送8将返回一个二维码,扫码登陆后即可开启机器人。
机器人功能: //TODO
* 集成聊天机器人功能。
* 备份聊天记录。
* 爬取所有用户,并分析用户联系人的男女比例,整合头像。
* 爬取公众号文章。
* 撤回消息备份
* 关键词监听
* 消息搜索
* 信息分析
* 查看/删除文件[文件名] e.g. 查看文件[123345234.mp3]
* 撤回附件列表 (查看都有哪些保存在电脑中的已撤回附件)
* 清空附件列表 (清空已经保存在电脑中的附件)
* 添加关键词[关键词] e.g. 设置关键词[在不在]
* 删除关键词[关键词] e.g. 删除关键词[在不在]
* 清空关键词 清空已经设置的所有关键词
* 查看关键词 查看目前设置的关键词
* 添加签到口令#公众号:签到口令# e.g. 添加签到口令#招商银行信用卡:签到#
* 删除签到口令#公众号# e.g. 删除签到口令#招商银行信用卡#
* 查看签到口令 查看已经存在的公众和和对应的签到口令
* 清空签到口令 清空所有签到口令
* 截图 截取当前屏幕发送到文件助手
* 添加自动回复#针对的关键词:回复内容# e.g.添加自动回复#在不在:我现在有事情,待会儿回复你#
* 删除自动回复#针对的关键词# e.g.删除自动回复#在不在#
* 清空自动回复 清空所有的自定义回复规则
* 关闭自动回复
* 打开自动回复
* 退出程序
备份聊天功能:
* 发送 “开启**回复” 即可回复 ** 信息
后台将配置记录到sql中,并缓存到redis中。