Tasker远程自动化打卡

本篇目的在于折腾。

用户痛点

因为公司上下班需要打卡,而可能出现忘记打卡的情况。针对此情况,公司有了人性化的考虑,每月免费提供2次补卡机会。但是对于贪婪的程序员,这是远远不够的。所以我们想通过技术改变些什么

需求分析

打卡需要通过公司自己的客户端输入手机号获取验证码登陆,然后定位在公司附近N公里,点击上班打卡或者下班打卡。

要素

  • 手机号登陆
  • 位置
  • 时间
  • 点击操作

方案设计

  • 接口调用方式
    通过抓包获取打卡接口请求,然后调用接口请求完成打卡
  • 篡改位置信息方式
    手机上安装可修改定位信息的软件,修改地址,突破地域限制

可行性调研

通过Fiddler 抓包分析发现请求中有签名
签名通过客户端里的算法规则生成。
拿不到规则就拿不到签名,就无法直接调用请求。
获取规则这可能涉及到客户端的反编译了,暂时未接触过。
调接口的方式走不通,尝试篡改位置信息
网上可以找到虚拟定位软件,但是多数都收费。
虽然能满足当前需求,但是总感觉被收费不舒服,而且整个过程还是有很多机械化的操作。

重新给需求加戏

我希望把整个过程自动化解放双手,比如发一条“打卡”的消息,就能把事情做了
既然提高了效率,就应该提供更大的输出,最好能够帮对那些忘记打卡的同事伸出援手。
那不如开个公众号吧,谁需要了,发送手机号码,和验证码,就可以帮你完成。
既然提供服务了,就不能用自己的手机了。需要一台长期不关机的电脑做服务器
在“服务器”里用虚拟机来完成。这样一来,自己的手机也不必安装各种所需的工具软件

摸索过程

模拟器先用了蓝叠,后来发现有些软件在上面提示装不了
又换了mumu模拟器,所需的软件都能安装而且开启速度也更快了。
自动化实现上,先用了按键精灵,但是因为按键精灵的脚本的触发条件感觉不能做到对事件监控触发。
后来改用Tasker。

具体实现

Tasker及其插件下载地址
mumu模拟器下载地址

  • 在模拟器中安装Tasker及其插件
  • 在模拟器中安装 QQ 作为接收消息的服务号
  • 打开Tasker,完成相应的授权

Tasker首页点击右下角的 +
在弹出的列表中依次选择 事件——插件——NotificationListener——NotificationListener
操作后看到如图

image.png

点击右侧铅笔进入如下界面,并按照图示设置
Apps :是你要监听的应用,这里我选择手机QQ
Title :是你的QQ收到消息的标题,如下图中的,我用的是Test(也就是我要发消息给过来的QQ,在这个QQ上的备注名称是Test)
Text :是发过来的文本,如图,我填写的是“打卡”

通知栏接受到的通知消息
设置通知栏监听配置
image.png
image.png

配置好后,自动弹出新建任务,输入任务名称后
依次选择 【程序】——【启动应用】——【选择你要打卡的应用】——返回(找不到确认按钮,就返回到上层确认)
设置后如图,可以点击左下角的运行按钮测试能否成功启动设置的应用

image.png

如果成功启动,再尝试能否在接受到消息时触发
这里我们可以理解到
这个软件本质上通过【配置】+【任务】组合的方式为我们提供了一个【在什么场景触发】【做什么任务】的自动化支持
我们现在已经做了,当收到QQ推送的由Test发出的内容为“打卡”的消息时,则启动需要签到的应用,过程中你可能需要解决如下问题

  • 【授权】为确保QQ消息发过来会在通知栏显示,你可能需要给应用授权
  • 【杀进程】QQ如果没有启动,是不会通知的,如果在前台开着也不会通知。我的做法是,先打卡QQ,然后在任务栏把他×掉

请确保以上测试通过,再进行下一步

现在我们需要解决怎么打卡的问题
考虑到登陆后一直使用,我们的登陆态不会过期,所以暂时我们的自动化脚本暂时不必包含登陆
而打卡通常就是点一下按钮就完事了。那么我们来完成它
在【任务】Tab页,打开我们的任务,点击右下角的“+”,
依次选择【代码】——【运行外壳】
输入 命令 【input tap 33 44】 并勾选【使用Root】
这个命令意思是在屏幕上坐标为 33,44点一下

image.png

这个坐标如何获取呢?
打开模拟器【设置】,搜索【指针】,选择【指针位置】开启【开发者】和【指针位置】

image.png

开启后,会多出如图一栏,你在屏幕上的点击,将会显示坐标,其中X,Y就是我们需要的坐标
image.png

获取你需要点击打卡按钮的坐标,修改刚填写的33 44

现在你已经会点击APP里的任意地方了,我们再来理一理关于打卡,我们需要做的事情

  • 打开应用
  • 延时(为了避免应用打开了,但是页面没加载好啥的,或者你可能还需要点击下【获取定位】)
  • 点击【打卡】
  • 延时(为了等打卡结果出来)
  • 截图(为了确保是打卡成功了,后面可以发到你的QQ上来确认)
  • 延时(为了等截图完成)
  • 打开QQ(为了把截图发回去)
    • 点击要回复的QQ(可以在QQ里置顶聊天,确保位置不变)
    • 点击【选择图片按钮】
    • 延时
    • 点击【选择图片】因为用模拟器,可以确保没有其他图片,而我们截图的图片每次是覆盖,所以位置固定,可以点击固定位置来选择这个图片
    • 延时


      image.png

      image.png
    • 点击【发送】按钮
    • 延时
    • 点击【返回】按钮
    • 延时
    • 点击【左上角自己的头像】(为了弹出菜单页面)
    • 延时
    • 点击【设置】按钮
    • 点击【账号管理】选项
    • 延时
    • 点击【退出QQ】选项
    • 延时
    • 点击【确认】按钮(退出QQ,如果不退出QQ,则再次发消息,因为QQ在前台,消息会直接到QQ里,不会进通知栏)

以上我们总得来说也就用了几个简单的命令
【点击指定位置】 input tap x y
【截图】screencap -p /sdcard/ImgCheck/screen.png
【延时】sleep 秒数

尝试下,用QQ,给模拟器登陆的QQ发送“打卡”指令,测试下是否可行吧

本文纯属娱乐,采用本博文章提供的解决方案,风险读者自担。
所造成的损失,如程序,文件,数据造成损失和混坏,博主不承担责任。
转载本博文章须在文章明显处注明原文的链接和作者信息。便于读者找到原文的更新版。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,967评论 3 119
  • 1.Lombok是什么? Lombok是一个通过注解以达到减少代码的java插件,通过注解减少set和get方法,...
    AndZYH阅读 3,196评论 0 0
  • 早上闹钟没响,因为没有调了没有开,赖床了,早餐也没有吃,九点多了才起来冲了包豆浆喝,然后继续刷手机…… 心里的结还...
    李红烨阅读 217评论 0 0
  • 原书共371页,总计34万字,拆解版大约2.8万字,你仅需要2小时就能读完整本书。 《自私的基因》作者理查德·道金...
    惜她阅读 6,097评论 1 53