原来实现钉钉自动签到如此简单,每天准时上下班不是梦

本文主要介绍了如何利用现成软件快速实现钉钉自动签到功能,核心思路非常简单,甚至无任何编程基础的小白也能轻松实现定时自动打卡功能.

通过本节课程,你将学习到以下内容:

  • 怎么开启钉钉极速打卡功能;
  • 如何唤醒手机中的知名软件;
  • 如何自己给自己发推送提醒;
  • 怎么运行24h不间断定时程序.

大纲

dingtalk-reminder-simple-mind-map.png

前言

关键词

+ 提醒闹钟
+ 极速打卡

如今钉钉早已经成为全国性的 app,不仅正在工作中的上班族离不开就连小学生也不逃不开被操控的宿命,不得不说钉钉真的是让人又爱又恨!

例如: 功能非常简单也是使用频率相当高的打卡签到功能就让我忍不住吐槽,提醒方式只有两种而且还是单选,要么设置闹钟要么设置极速打卡!

当然还有第三种方式: 你也可以选择关闭提醒,呵呵.

dingtalk-reminder-setting-preview.png

所以最简单操作流程如下:

dingtalk-reminder-before-flow.png

上述流程中让我觉得不爽的是每次除了打开 app 响应时间过长之外,还有就是每次打卡都要自己心里盘算着打卡时间,浪费了为数不多的脑细胞.

因此需要一种更加傻瓜式操作流程来解放大脑,最好能实现自动打卡或者去掉打卡功能也可以,让我沉浸在工作的海洋中吧!

效果

上下班时间定时推送打卡通知,点击确认后自动完成打卡操作,省心省力不用记忆打卡时间,交给程序处理吧!

dingtalk-reminder-dingtalk-preview.gif

原理

关键词

+ 极速打卡
+ URL Scheme
+ 定时唤醒

由于钉钉签到打卡只有两种快捷方式可供选择,相比于提醒闹钟个人更偏爱极速打卡方式,因此开启极速打卡功能后,只要在打卡时间段内打开 app 就会自动打卡,所以只要简化某些流程就能实现傻瓜式打卡签到.

在众多唤醒手机中知名 app 的解决方案中有一种比较简单的方式,那就是 URL Scheme 方案.

自定义 URL Scheme 协议

常用的URL Scheme

URL Scheme 是一种页面跳转协议,类似于网页中的 url 链接,常用于 h5 网站引流到 app 应用的跳转访问,不同于普通 urlhttp/https 协议,URL Scheme 一般由 app 自定义协议头,例如 dingtalk .

例如: 钉钉的跳转协议是 dingtalk://具体什么内容由钉钉自主规定 ,如果是普通的 url 链接用户点击就会跳转到指定网页,而 URL Scheme 链接点击后就会跳转到相应的 app 界面.

所以只要在浏览器中访问到类似于 dingtalk://snowdreams1006.tech/ 这样的链接就能实现自动跳转到钉钉 app 中,既然已经解决了如何打开 app 的问题,那么接下来的事情就是什么时候访问链接的问题了.

不知疲倦的crontab定时程序

Linux crontab 命令

对于编程开发者来说,实现定时程序的最简单方式之一当属于 crontab 命令了,属于 linux 环境的基本命令之一,可用来执行定时程序,类似于日常生活中的日程表的功能.

# 早上 8 点半和下午 5 点半运行 dingtalk.sh 脚本文件并将运行结果写入到 dingtalk.log 文件
30 08,17 * * * sudo ~/reminder/dingtalk.sh >> ~/reminder/dingtalk.log

现在搞定了定时运行脚本程序的问题,接下来的事情就比较简单了,在 24h 不间断运行的服务器上需要定时执行什么命令才能实现用户实现访问到自定义链接呢?

狗吠狼吼bark给自己推送通知

Bark is an iOS App which allows you to push customed notifications to your iPhone : https://github.com/Finb/Bark

很显然,我们需要一款推送服务,服务器定时下发推送通知给注册手机用户,由用户主动点击确认后跳转到自定义协议网页,紧接着就会触发钉钉 app 的唤醒操作,从而实现自动打卡功能.

正常来说,手机上的 app 应用绝大多数都具备推送功能,然而推送内容都是由 app 自主控制,用户只能选择开启或关闭通知功能,并不能决定通知内容,而 bark 却是一款自己给自己发推送通知的软件,简单且开源.

# 点击推送将跳转到url的地址(发送时,URL参数需要编码)
https://api.day.app/yourkey/百度网址?url=https://www.baidu.com 

dingtalk-reminder-bark-preview.png

只要访问指定链接就能发送推送通知给用户手机,进而用户主动点击通知就能跳转到指定网页,从而实现唤醒钉钉 app 的目的.

# bark 客户端和服务器均开源,可以独立部署也可以使用默认服务.
https://api.day.app/yourkey/钉钉打卡提醒/带我去极速打卡?url=dingtalk://snowdreams1006.tech

命令行curl网络请求神器

curl 的用法指南

现在已经构造出推送通知请求链接,只需要访问该链接就能完成推送通知,由用户直接操作的话可以复制到浏览器直接回车,但是如果要用程序运行的话就需要使用脚本命令 curl 神器.

curl -i -X GET \
 "https://api.day.app/yourkey/%E9%92%89%E9%92%89%E6%89%93%E5%8D%A1%E6%8F%90%E9%86%92/%E5%B8%A6%E6%88%91%E5%8E%BB%E6%9E%81%E9%80%9F%E6%89%93%E5%8D%A1?url=dingtalk://snowdreams1006.tech"

dingtalk-reminder-bark-push.png

现在总算实现了定时推送通知打开钉钉 app 实现自动签到的功能,其实整个流程并不复杂,解决的是钉钉 app 并没有提供定时自动签到的功能这一问题.

总结

关键词

+ 前提条件
+ 核心重点
+ 实现步骤
+ 主要技术
+ 感谢支持

本文的主要目的是解决钉钉上下班签到打卡问题,提醒闹钟和极速打开只能二者选其一,并且也没有定时自动签到功能,所以本文的解决思路是利用 URL Scheme 定时唤醒 app,然后借助极速打卡实现自动签到功能.

前提条件

  • 支持固定上下班时间且开启极速打卡功能

只有固定上下班时间才支持极速打卡功能,否则唤醒 app 后还是需要手动打卡岂不是多此一举?

  • 拥有至少一台 24h 不间断运行的服务器

用于提供定时推送服务,如果有其他手段完成定时访问唤醒链接的任务也可以不需要服务器.

  • 下载并注册 bark 软件或者其他类似软件

用于接收推送通知,点击推送通知内容确认后进而自动完成签到打卡操作,省去了劳心费神的记忆时间.

核心重点

浏览器打开类似于 dingtalk://snowdreams1006.tech/ 这样的带有 dingtalk:// 协议的自定义链接即可实现打开钉钉 app 操作.

实现步骤

crontab 定时推送唤醒链接到注册手机,用户点击推送通知确认后自动打开钉钉 app 进行极速签到,从而变相实现了自动签到的目的.

由于不需要心里暗自计算上下班时间,只需要接收到推送后手动点击进行签到确认,所以大大节省了不少脑细胞,剩下的时间又可以愉快敲代码了!

dingtalk-reminder-after-flow.png

主要技术

  • 高度自定义的网页跳转协议 : dingtalk
  • 不知疲倦的定时任务命令: crontab
  • 命令行下的网络请求命令: curl
  • 自己给自己发推送通知软件: bark

感谢支持

如果本文对你有所帮助,欢迎点赞留言告诉我一声,你的支持和鼓励将会是我继续创作的动力!

雪之梦技术驿站

  • 47
    点赞
  • 170
    收藏
    觉得还不错? 一键收藏
  • 46
    评论
### 回答1: 首先,您需要在钉钉管理端开启自动化打卡功能。然后,您可以使用 Passion 这个库来编写自动签到的代码。 以下是一个示例代码,它会自动执行打卡操作: ```python from passion import Passion # 创建 Passion 对象 p = Passion() # 使用手机号和密码登录钉钉 p.login(phone='your_phone_number', password='your_password') # 自动打卡 p.checkin() ``` 注意:您需要将 `your_phone_number` 和 `your_password` 替换为您在钉钉登录时使用的手机号和密码。 希望这能帮到您! ### 回答2: 如果你想编写一个自动签到钉钉的程序,可以使用Python语言来实现。以下是一个使用Passion框架编写的示例代码: ```python from passion import Passion import time def sign_in(): # 在这里编写签到的逻辑,可以包括模拟用户登录、定位、点击签到按钮等操作 print("签到成功!") def job(): # 每天定时触发签到操作 sign_in() # 创建一个Passion实例 p = Passion() # 设置签到任务,每天的8点触发签到 p.add_job(job, 'cron', hour=8) # 启动Passion,持续运行直到程序结束 p.start() ``` 在这个示例代码中,我们使用了Passion框架来实现定时任务的调度。具体步骤如下: 1. 首先,我们导入了`Passion`库和`time`库。 2. 然后,我们定义了一个`sign_in()`函数,其中编写了签到的逻辑。你可以根据钉钉签到流程,调用相关的API模拟签到操作。 3. 接下来,我们定义了一个`job()`函数,这个函数会在每天的8点被调用。在这个函数中,我们调用了`sign_in()`函数来完成签到操作。 4. 创建一个Passion实例`p`。 5. 使用`p.add_job()`方法来添加签到任务。在这个示例中,我们使用`'cron'`调度器来指定任务的触发方式,即每天的8点。 6. 最后,使用`p.start()`来启动Passion框架,开始执行任务。 这样,你就可以编写一个自动签到钉钉的程序了。当程序运行时,将会在每天的8点触发签到操作。请注意,这个示例只提供了一个框架,具体的签到逻辑需要你自行实现。 ### 回答3: 钉钉是一个办公软件,用于团队协作和签到管理。要编写一个自动签到钉钉的脚本,我们可以使用Python和Selenium库来实现。 首先,我们需要安装Python和Selenium库。然后,我们可以在代码中导入相关的库和模块。 接下来,我们需要设置一些必要的参数,如登录钉钉的用户名和密码,以及签到的相关信息。 然后,我们可以使用Selenium库来自动化浏览器操作。我们可以通过打开钉钉网址、输入用户名和密码,并点击登录按钮来登录到钉钉。 一旦成功登录,我们可以使用Selenium来查找签到按钮的元素,并模拟点击操作。这样就可以实现自动签到。 最后,我们可以关闭浏览器并结束脚本的执行。 以下是一个简单的示例代码: ``` from selenium import webdriver from selenium.webdriver.common.keys import Keys # 设置登录信息 username = "your_username" password = "your_password" check_in_info = "your_check_in_info" # 使用Chrome浏览器驱动 driver = webdriver.Chrome() try: # 打开钉钉网址 driver.get("https://www.dingtalk.com/") # 输入用户名和密码,并点击登录按钮 driver.find_element_by_id("username").send_keys(username) driver.find_element_by_id("password").send_keys(password) driver.find_element_by_id("loginbtn").click() # 查找签到按钮并点击 driver.find_element_by_id("check_in_button").click() # 输入签到相关信息并提交 driver.find_element_by_id("check_in_info").send_keys(check_in_info) driver.find_element_by_id("submit_button").click() # 停顿几秒,等待签到完成 time.sleep(5) finally: # 关闭浏览器 driver.quit() ``` 请注意,该代码只是一个简单示例,具体的实现可能需要根据钉钉网站的具体情况进行调整。此外,为了确保脚本的可靠性和稳定性,请确保您的网络连接和钉钉网站的稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值