Earyant的技术博客

欢迎来到Earyant的技术博客,在这里我将与你分享新技术。

微信机器人流程

[TOC]

获取uuid和二维码:

  • 在公众号输入8,即可返回二维码图片;
    • 生成uuid;
    • 生成二维码;
    • redis中保存要登陆用户的信息;
    • 返回二维码。

后台守护进程:

  • 开启一个守护线程:
    • 获取redis中保存的用户信息;
    • 判断如果未登陆则继续执行以下操作,如果已经登陆了,返回,不做任何操作。
    • loginService.login()
      • 代码登陆逻辑,如果登陆了,将状态setAlive置为已经登陆,若未登陆,sleep1秒继续。
      • 将联系人信息保存到redis中
    • webWxInit()
      • 获取user信息,并保存到数据库。
      • 获取用户的联系人信息,并保存到数据库;
      • 获取SyncKeyBean信息,并保存到数据库;
    • wxStatusNotify()
      • 微信通知状态改变,手机端提示网页端登陆成功。
    • startReceiving()
      • 开启消息接收。
      • 开启新线程:
        • syncCheck() 检查是否有新消息
          • 状态为0(收到正常报文):
            • webWxSync() 联网获取新消息;
              • 通过初始化过去的SyncKey参数进行获取,返回成功后,要把新返回的SyncKey保存到数据库中,下次用新SyncKey进行获取新信息。
              • 对获取到的新信息进行操作。 MsgCenter.produceMsg();
              • 保存消息到数据库。
    • 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中。

欢迎关注我的其它发布渠道