前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脚本接入钉钉Actions自动触发

脚本接入钉钉Actions自动触发

作者头像
用户2700375
发布2022-06-09 14:42:04
8050
发布2022-06-09 14:42:04
举报
文章被收录于专栏:很菜的web狗很菜的web狗

最近出来实习一直在忙公司的事情。学校那边说,为了我们的安全让每天签到。那个app叫蘑菇丁。不知道大🔥用过没,貌似很小众。以前的脚本写的惨不忍睹,近期看到国光哥的 Python 实现 T00ls 自动签到脚本(邮件+钉钉通知)发现脚本可以用钉钉通知涨姿势了。还发现Github 自带的 Actions 可以定时执行脚本,正好vps要到期了。。。。所以就改造了下自己的脚本。

接入钉钉

image-20200706214840773
image-20200706214840773

点击头像进入详情,自定义机器人。这时候需要创建一个群组

image-20200706215033833
image-20200706215033833

创建后会得到一个webhook地址

代码语言:javascript
复制
https://oapi.dingtalk.com/robot/send?access_token=xxx

最后测试下 机器人这里有一份官方文档 通俗易懂 官方文档

测试脚本如下

代码语言:javascript
复制
import requests
import json


webhook = 'https://oapi.dingtalk.com/robot/send?access_token=xxx'
#xxx替换成自己机器人的token

headers = {
    "Content-Type" : "application/json",
    "Charset" : "UTF-8"
}
message = {
    "msgtype": "text", 
    "text": {
        "content": "通知: 我就是我, 是不一样的烟火"  #机器人发送内容 创建机器人时自定义关键词是什么前面就必须以什么开头
    }, 
    "at": {
        "atMobiles": [
            "187xxxxxxxx"  #发送内容时艾特187xxx的手机号
        ], 
        "isAtAll": False   #是否艾特全体这里选择否
    }
}

r = requests.post(url=webhook,headers=headers,data=json.dumps(message))
print(r.text)
image-20200706215656049
image-20200706215656049

签到脚本接入钉钉

代码语言:javascript
复制
import requests
import json
from requests.exceptions import RequestException

webhook = 'https://oapi.dingtalk.com/robot/send?access_token=xxx'

def main():
    url = "https://api.moguding.net:9000/attendence/clock/v1/save"
    headers = {

        "Accept-Language": "zh-CN,zh;q=0.8",
        "User-Agent": "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; vivo Y29L Build/KTU84P) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
        "Authorization": "",  #蘑菇丁以Authorization判断身份替换成自己的即可
        "roleKey": "student",
        "Content-Type": "application/json; charset=UTF-8",
        "Content-Length": "278",
        "Host": "api.moguding.net:9000",
        "Connection": "close",
        "Accept-Encoding": "gzip, deflate",
        "Cache-Control": "no-cache"
    }
    data = {

        "address":"中国xx省xxx市xx县",
        "description":"",
        "device":"Android",
        "province":"xx省",
        "longitude":"119.177366",
        "planId":"9b8a39ffc732b7097efe1c039b1ccb73",
        "latitude":"39.703911",
        "type":"START",
        "city":"xx市",
        "country":"中国"
    }
    try:
        req = requests.session()
        msg = req.post(url=url,headers=headers,data=json.dumps(data))
        txt = json.loads(msg.text)
        #print(type(txt))
        #print(txt)
        if txt.get('msg') == 'success':  #txt.keys()拿到字典所有键值 判断键值里是否存在msg
            dingd('蘑菇丁自动签到成功')
        else:
            dingd('蘑菇丁自动签到失败')

    except RequestException:
        dingd('蘑菇丁签到脚本出错请立即查看')

def dingd(error):
    "钉钉通知函数"
    webhook_url = webhook
    
    dingd_headers = {
        "Content-Type": "application/json",
        "Charset": "UTF-8"
    }
    
    dingd_message =  {  
        "msgtype": "text", 
        "text": {
            "content": f"通知: {error}"
        }, 
        "at": {
            "atMobiles": [
                "187xxxxxxxx"
            ], 
            "isAtAll": False
        }
    }
    r = requests.post(url=webhook_url,headers=dingd_headers,data=json.dumps(dingd_message))



if __name__ == "__main__":
    main()

运行后发现蘑菇丁脚本接入钉钉成功。

image-20200706220104640
image-20200706220104640

Github 的 Actions 自动执行脚本

这里国光哥的文章里没有太详细一笔带过了。

这里我简单说下。

需要在GitHub里先建立一个仓库把我们的签到脚本推上去。

image-20200706220448671
image-20200706220448671

后我们点击Actions

image-20200706220611879
image-20200706220611879

选择Python后会新建一个python-package.yml文件修改内容如下

image-20200706220926167
image-20200706220926167
代码语言:javascript
复制
schedule:
    - cron: '0 1 * * *'

是时间设置 这里设置的是1点(国际标准时间)因为我们是东八区所以相差八个小时1点就是北京时间的9点 地理知识。

image-20200706221242802
image-20200706221242802
代码语言:javascript
复制
- name: Install dependencies
      run: 
        pip install requests

是需要安装的依赖 因为我用到的第三方库只有requests所以只写着一个

代码语言:javascript
复制
- name: Test with pytest
      run: |
        python moguding2.0.py

执行的脚本名。(推到GitHub上的那个脚本名)

image-20200706221547120
image-20200706221547120

最后查看发现状态是成功的 经测试到达指定时间也会自动签到成功。

image-20200706221841789
image-20200706221841789

这就不用担心vps到期了。

因为一些原因仓库是私有的,脚本在文章上面已经贴出来了,需要的小伙伴稍稍修改就好。等帮忙这一阵子,再优化一下脚本在发出来。。。。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接入钉钉
  • 签到脚本接入钉钉
  • Github 的 Actions 自动执行脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档