project,

基于RPA封装的Wechaty接口下的抖音聊天机器人结项报告

wangjunwei wangjunwei Follow Oct 13, 2020 · 1 min read
基于RPA封装的Wechaty接口下的抖音聊天机器人结项报告

“开源软件供应链点亮计划-暑期2020”(以下简称 暑期2020)是由中科院软件所与 openEuler 社区共同举办的一项面向高校学生的暑期活动。

旨在鼓励在校学生积极参与开源软件的开发维护,促进国内优秀开源软件社区的蓬勃发展。

根据项目的难易程度和完成情况,参与者还可获取“开源软件供应链点亮计划-暑期2020”活动奖金和奖杯。

官网:https://isrc.iscas.ac.cn/summer2020 官方新闻:http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html

本项目 [基于 RPA 封装 Wechaty 接口下的抖音聊天机器人] 系 暑期2020 支持的开源项目。

结项报告:基于 RPA 封装 Wechaty 接口下的抖音聊天机器人

项目信息

  • 项目名称:基于 RPA 封装 Wechaty 接口下的抖音聊天机器人
  • 方案描述:安卓端通过autojs操作抖音,通过socket与puppet连接,再与wechaty相连
  • 时间规划:7.19-8.15完成各种方案的尝试和探索,8.15-9.15完成puppet的各种接口接入

项目进度

  • 项目成果:
    • 熟悉了wechaty的使用的操作方法
    • 探索了各种方案:
      • 抖音的发送私信的openapi需要用户为企业用户,只有企业抖音号api才有效
      • 探索了monkeyDEV和IDA逆向私信协议的方法
      • 没有找到chrome跑安卓app的方法,或者方法失效
      • 尝试了通过安卓和ios端抓包的方式获取抖音的私信方法,结果抓不到私信的消息
      • autojs控制安卓app的方法,现在正在采用,也是现在唯一可运行的方法,目前完成了抖音基本操作方法的封装和socket的通信
    • 抖音的autojs控制版本完成了自动登录,消息监听,发送消息等方法
    • 用socket和autojs的方法跑了一个简易dingdongbot,视频演示地址(youtube)
    • 完成了抖音puppet初版和autojs操作抖音的方法
    • puppet完成了通信的基本功能,puppet跑dingdongbot
    • wechaty puppet配合autojs可实现消息自动回复
  • 遇到的问题及解决方案:
    • 本次代码遇到了很多问题,很少接触ts的编码,有很多不熟悉的地方
    • 初期在私信方法的选择上尝试了很多种方案,最终选择了autojs作为操作抖音私信的工具,但是不那么稳定,性能很低需要一定硬件支持
    • autojs有时候很不稳定,调试也异常麻烦,只能一点一点推进,app控件的名字很随机,不同的抖音版本控件名字不同,所以app需要统一版本
    • 跑通一个抖音puppet需要一个安卓手机或者电脑开模拟器跑autojs,然后用nodejs跑wechaty和puppet,需要跑两个服务,有点麻烦
    • 在探索获取抖音的图片消息时,通过auto来查找图片存在一定问题,运行速度较慢,先打开图片然后缓存然后再加载图片转码成base64然后再发送到puppet
    • eslist语法格式在开始的时候因为不熟悉,经常报出各种错误
    • puppet的接口和方法不熟悉,模仿着写了一个抖音puppet,最终能跑dingdongbot了
    • 消息频繁的时候可能会造成消息堆积,autojs处理消息需要时间,当autojs进入某一会话时,此会话发来消息,那么这个消息可能读取不到,但是在此会话外的消息可以读取到并处理回复
    • 抖音puppet还需很多改进和添加新的消息类型和功能…
    • 因为实习996的缘故,后期推进太少,加入社区还需努力

PPT

Live coding

项目地址


This post is also available in English.

Join Newsletter
Get the latest news right in your inbox. We never spam!
Written by wangjunwei Follow
code rookie