0x00 前言
大致思路如下:
- 利用釘釘?shù)膚ebhook,結(jié)合python代碼,實(shí)現(xiàn)發(fā)消息的功能。
- 利用windows自動任務(wù),或linux的定時任務(wù),實(shí)現(xiàn)定時發(fā)消息的功能,做一個小鬧鐘。
參考資料
1.釘釘機(jī)器人自動提醒(python版)
2.windows上pip安裝及使用詳解
3.pyinstaller庫的安裝及打包
4.window設(shè)置定時任務(wù)執(zhí)行python腳本
0x01 python聯(lián)動釘釘發(fā)消息
網(wǎng)上找了一段簡單的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和提交日報(bào)。"
},
"at":{
"atMobiles":[
"1870251****","1820529****" #需要填寫自己的手機(jī)號,釘釘通過手機(jī)號@對應(yīng)人
],
"isAtAll": False #是否@所有人,默認(rèn)否
}
}
headers = {
'Content-Type': 'application/json'
}
requests.post(url, data=json.dumps(pagrem), headers=headers)
if __name__ == "__main__":
message()
其中url就是釘釘機(jī)器人的webhook地址。

在pycharm下運(yùn)行一下,可以發(fā)消息。效果如下:

補(bǔ)充:
現(xiàn)在釘釘機(jī)器人多了一個安全設(shè)置,必須要勾選任意選項(xiàng)才能繼續(xù)添加機(jī)器人。以“自定義關(guān)鍵詞為例”,定義了名為“下班”的關(guān)鍵詞,那么代碼中的變量 content 的值必須包含“下班”(即提示的消息中必須包含關(guān)鍵語),才能正常推送消息。

0x02 生成exe,定時執(zhí)行
我的做法是將上述代碼打包成exe,再通過windows的計(jì)劃任務(wù)定時執(zhí)行。
打包程序用的是pyinstaller,為了方便建議使用pip來安裝pyinstaller。
如何安裝pip可以看參考2,大佬講的還是很詳細(xì)地。因?yàn)檫@代碼采用了requests模塊,所以利用pip安裝一下該模塊pip install requests。
裝完后,利用本地的python(我是win10,py2.7)跑一下上述的代碼,執(zhí)行沒問題,就能開始打包了。
怎么裝pyinstaller看參考3,大佬講得還是很詳細(xì)地。執(zhí)行pip install pyinstaller,安裝完畢后開始打包。
將上述代碼保存為sendding.py,放到python安裝目錄下的Scripts中,安裝完畢的pyinstaller.exe也在該目錄中,執(zhí)行命令pyinstaller.exe -F sendding.py開始打包,打包完成后會有成功提示:

生成的exe會在該目錄下的dist文件夾中

這個exe可以拿出來單獨(dú)執(zhí)行,運(yùn)行一下,能夠成功發(fā)送消息。放到windows上配一個計(jì)劃任務(wù),按時執(zhí)行就可以了。
至此,釘釘小鬧鐘制作完畢。
tips: 也可讓windows或linux定時執(zhí)行代碼,但我感覺比較麻煩,萬一換一臺設(shè)備,還要重新配置py環(huán)境,干脆打包成exe,方便,好使!