做个钉钉小闹钟

0x00 前言

大致思路如下:

  1. 利用钉钉的webhook,结合python代码,实现发消息的功能。
  2. 利用windows自动任务,或linux的定时任务,实现定时发消息的功能,做一个小闹钟。

参考资料
1.钉钉机器人自动提醒(python版)
2.windows上pip安装及使用详解
3.pyinstaller库的安装及打包
4.window设置定时任务执行python脚本

0x01 python联动钉钉发消息

网上找了一段简单的python代码(参考1),稍作修改,具体如下:

#encoding:utf-8
import json
import requests

def message():
    url = 'https://oapi.dingtalk.com/robot/send?access_token=f9100f8f1d795a24809c5efbe2f9414b0ad0d4cbe7da8ee9ef3aae90889163bb'
    pagrem = {
        "msgtype": "text",
        "text": {
            "content": "蕾姆酱提醒:下班时间到咯,请更新您的tb和提交日报。"
        },
        "at":{
            "atMobiles":[
                "1870251****","1820529****"  #需要填写自己的手机号,钉钉通过手机号@对应人
            ],
            "isAtAll": False   #是否@所有人,默认否
        }
    }
    headers = {
        'Content-Type': 'application/json'
    }
    requests.post(url, data=json.dumps(pagrem), headers=headers)

if __name__ == "__main__":
    message()

其中url就是钉钉机器人的webhook地址。


在pycharm下运行一下,可以发消息。效果如下:


补充
现在钉钉机器人多了一个安全设置,必须要勾选任意选项才能继续添加机器人。以“自定义关键词为例”,定义了名为“下班”的关键词,那么代码中的变量 content 的值必须包含“下班”(即提示的消息中必须包含关键语),才能正常推送消息。

0x02 生成exe,定时执行

我的做法是将上述代码打包成exe,再通过windows的计划任务定时执行。
打包程序用的是pyinstaller,为了方便建议使用pip来安装pyinstaller。

如何安装pip可以看参考2,大佬讲的还是很详细地。因为这代码采用了requests模块,所以利用pip安装一下该模块pip install requests
装完后,利用本地的python(我是win10,py2.7)跑一下上述的代码,执行没问题,就能开始打包了。

怎么装pyinstaller看参考3,大佬讲得还是很详细地。执行pip install pyinstaller,安装完毕后开始打包。

将上述代码保存为sendding.py,放到python安装目录下的Scripts中,安装完毕的pyinstaller.exe也在该目录中,执行命令pyinstaller.exe -F sendding.py开始打包,打包完成后会有成功提示:

生成的exe会在该目录下的dist文件夹中


图片.png

这个exe可以拿出来单独执行,运行一下,能够成功发送消息。放到windows上配一个计划任务,按时执行就可以了。

至此,钉钉小闹钟制作完毕。

tips: 也可让windows或linux定时执行代码,但我感觉比较麻烦,万一换一台设备,还要重新配置py环境,干脆打包成exe,方便,好使!

你可能感兴趣的:(做个钉钉小闹钟)