KID-1912 / autojs6-douyin-sendMessage

基于autojs6实现抖音定时发送消息、表情到指定好友以实现单方面续火花;无需Root、支持解锁、自动关闭部分弹窗
23 stars 1 forks source link
autojs autojs6 douyin javascript tictok

autojs6-douyin-sendMessage

基于 AutoJs6 开发的抖音脚本,自动化发送消息、交互表情

功能预览

注: 本脚仅供学习,纯属个人娱乐,请勿修改用于其它用途

准备工作

安装 AutoJs6 apk

安装地址 https://github.com/SuperMonster003/AutoJs6/releases

选择 AutoJs6@6.x.x 下载第1个apk即可

软件设置

首次安装后启动 AutoJs App,按弹窗引导设置:

显示在应用上层

注: 不同设备可能有所差异

读取文件权限

由于需要读取js脚本运行,支持读取文件

无障碍服务

无障碍服务是脚本运行必备条件,请在AutoJs左侧菜单开启

如上图,还需勾选 前台展示 以及 修改系统设置(将用于脚本设置音量)

注: 由于手机安全性设置,少数情况AutoJS无障碍服务被关闭,需重新打开后运行

开机自启动

为实现手机关机下次开机脚本定时执行,在手机设置中允许AutoJs App自启动(自行设置)

使用说明

脚本准备

下载脚本

首先将项目 douyin.js 脚本文件下载后发送到手机,并在AutoJs App 导入

配置变量

点击 铅笔编辑 图标,修改脚本前两行变量

注意好友抖音昵称不要填错,需要全称

单次运行

点击三角形启动按钮,尝试单次运行(运行前请后台退出抖音app) 成功单次运行脚本即流程走通,则下一步设置定时运行,否则参考 常见问题 部分解决后继续

定时运行

在脚本拓展菜单设置定时任务,脚本将每天定时运行并成功完成后终止

注:

好友置顶:为提高成功进入好友聊天框概率,可在抖音 “好友详情” “更多” 开启 “置顶聊天”

建议使用闲置备用机,平时息屏,保证电量及时充电

常见问题

错误时中止脚本

每次运行脚本失败/卡住/手动停止后,必须在任务栏查看 “运行中任务”,及时清除正在运行的任务后重新运行脚本,否则脚本叠加无法正常运行

退出抖音后台

在完成消息发送后,脚本会打开应用管理设置,自动点击“结束运行”实现后台退出抖音

如果你的脚本卡在了这一步,可能是未查找到 强行关闭按钮(不同设备按钮文字不同),根据需要修改代码下方代码

// 退出app
function kill_app(packageName) {
  var name = app.getPackageName(packageName);
  app.openAppSetting(name);
  sleep(3000);
  clickWidgetByPosition(textMatches(/(结束运行|强行停止)/).untilFindOne());
  sleep(1000);
  clickWidgetByPosition(textMatches(/(.*确.*|.*定.*)/).untilFindOne());
  sleep(1000);
  home();
}

自定义

自定义文字内容

默认脚本调用接口,随机获取文字内容输入

你可以选择其它接口,可参考 https://github.com/vv314/quotes

或自定义 content 数据源逻辑

  // 输入内容
  clickWidgetByPosition(className("android.widget.EditText").untilFindOne());
  sleep(3000, 100);
  // 数据源
  var content = "";
  var res = http.get("https://v1.hitokoto.cn/");
  if (res.statusCode == 200) {
    var data = res.body.json();
    content = data.hitokoto;
  } else {
    content = "今天网络不佳,没词了";
  }
  input(content);

自定义互动表情

默认发送 “比心" 互动表情,你可以自定义其他表情,但限于首屏可见表情,否则自行添加逻辑

  // 发送表情
  clickWidgetByPosition(
    className("android.widget.ImageView").desc("表情").untilFindOne()
  );
  var btnEmoji = className("android.widget.Button").desc("互动表情").findOnce();
  if (btnEmoji) clickWidgetByPosition(btnEmoji);
  clickWidgetByPosition(
    className("android.widget.TextView").text("比心").untilFindOne()
  );

互相发送

目前脚本仅为单账号定时发送消息,若实现 “续火花” 的功能,可以在2台手机分别部署(离大谱);

另一个思路是 在手机设备使用“双开应用”,2个抖音app分别登录不同账号,修改脚本支持完成主抖音app发送消息后启用副抖音app回复消息,感兴趣可以探究AutoJs6如何区分双开app