利用钉钉群自定义机器人实现钉钉群内仿签到功能,缺点无后台统计记录,实现方法有多种借助云服务器或者GitHub action来实现定时通知功能,消息形式多样化文本,卡片等等
思维导图
准备工作 准备一个钉钉群并加入群自定义钉钉机器人 设置钉钉机器人方法看钉钉官方文档 即可 云服务器或者本地电脑,都没有的话,注册使用GitHub实现(使用方法二) 方法一 云服务器实现定时发送钉钉群消息
云服务器 使用云服务器(宝塔) (me菜鸟专属) 还可以使用云函数(这里我就不写了,感兴趣可以自己去研究研究)我懒_ 打开宝塔 找到计划任务将代码填入即可 代码看钉钉官方文档 或者去我GitHub项目 复制 可以使用宝塔webhook
测试代码是否执行,宝塔自带
定时任务 第一种是使用宝塔的计划任务,直接定时即可 第二种是使用Liunx系统的Crontab定时任务 仿群签到 由于学校开始了钉钉群的健康打卡统计,我是属于那种比较懒的,老是错过签到,懂得都懂嘿嘿,所以突发奇想搞了一个仿签到,也就是利用钉钉自带的机器人实现群消息通知,改了改源码,变成自己的签到通知,缺点就是无法实现钉钉后台的统计,但是这难不倒我,已经有了新的方法看这看这
查看钉钉仿签到代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #!/bin/bash curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' \ -H 'Content-Type: application/json' \ -d '{ "msgtype": "markdown", "markdown": { "title":"xxx的签到机器人", "text": "##### 签到 (xxx的签到机器人) \n #### xxx在xx省xx市xx市签到 \n> ##### 签到时间:**19:00** \n> ##### 备注:**健康** \n> ##### 体温:**36.5** \n> ##### 家庭住址与现住址是否一样:**是** \n> ##### 是否接触过病例患者:**否** \n> \n> ###### 19点发布 [Harry](https://u.mr90.top) \n" }, "at": { "atMobiles": [ "" ], "isAtAll": true } }'
查看演示效果
如果创建的是python文件,可以点击查看代码.py 方法二 Github实现定时发送钉钉群消息
使用GitHub 使用GitHub action
定时运行.py
文件来实现钉钉机器人定时发送群消息 创建一个GitHub仓库,新建一个要执行的.py文件名称自定,比如(run.py) 查看GitHub.py代码
这里可以去我的GitHub仓库查看.py文件复制即可 这里我还是以群仿签到代码为例,markdown形式的 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import timeimport hmacimport hashlibimport base64import urllib.parsetimestamp = str (round (time.time() * 1000 )) secret = '这里是密码//可以使用变量secrets.GITHUB_SECTET,自己定义' secret_enc = secret.encode('utf-8' ) string_to_sign = '{}\n{}' .format (timestamp, secret) string_to_sign_enc = string_to_sign.encode('utf-8' ) hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.parse.quote_plus(base64.b64encode(hmac_code)) import requests,jsonheaders={'Content-Type' : 'application/json' } webhook = '这里是钉钉机器人的webhook地址,也可以使用变量[GITHUB_url]自己定义具有保密性×tamp=' +timestamp+"&sign=" +sign data = { "msgtype" : "markdown" , "markdown" : { "title" :"xxx的签到机器人" , "text" : "##### 签到 (xxx的签到机器人) \n #### xxx在xx省xx市xx市签到 \n> ##### 签到时间:**19:00** \n> ##### 备注:**健康** \n> ##### 体温:**36.5** \n> ##### 家庭住址与现住址是否一样:**是** \n> ##### 是否接触过病例患者:**否** \n> \n> ###### 19点发布 [Harry](https://u.mr90.top) \n" } } res = requests.post(webhook, data=json.dumps(data), headers=headers) print(res.text)
实现定时效果 在本地git仓库创建.github\workflows\xxx.yml
文件,加入以下代码 或者直接点击创建的GitHub项目的Action
查看.yml代码配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 name: Dingding on: watch: types: [started ] jobs: build: runs-on: ubuntu-latest if: github.event.repository.owner.id == github.event.sender.id steps: - uses: actions/[email protected] - name: Set up Python 3.8 uses: actions/[email protected] with: python-version: 3.8 - name: Install dependencies run: | python -m pip install --upgrade pip pip install requests lxml if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Run misson run: | python Python/actioncard.py
分享项目