大家好
昨天關於excel自動化的那篇文章發出之後,感覺大家對這個還挺感興趣,並且在才哥那邊有好幾位讀者在追問如何實現圖片自動傳送
說實話,有點驚訝大家對圖片定時傳送感興趣,我原以為會有讀者對模型的原理比較好奇呢
不過,既然大家問到了,今天也就來說說我自己在用的方法。
圖片定時傳送我已經用了一個多月了,目前用得挺好,沒有出現什麼奇怪的問題,所以這個方法應該也比較成熟,大家都可以自己去復現一下
當然了, 如果有比我分享的更好用的方法(肯定會有),可以在留言區留言,大家一起學習一下。
先說一下我的實現原理:上傳圖床+群機器人+定時傳送
對了,在進行圖片自動化傳送的時候,我預設你是已經可以把excel表格轉化成本地圖片了
先來說第一個,圖床
在自動化傳送圖片的時候,我在想一個問題:你要發的圖片要能線上顯示,或者在線上顯示有問題的時候使用者還可以點選連結檢視。於是,必備的兩個條件: 線上顯示+連結
能完美解決上面的問題的,我能想到的有一個辦法:圖床
將圖片上傳到xxx圖床平臺,之後在訪問的時候只需要點選該圖片對應的訪問url就行
一般常用的免費圖床平臺有 github、gitee、SMS 等等,還有一些像csdn、微博、知乎等可以用的,付費的像xx雲平臺這種,可能會更穩定,但是目前我用了一個月免費的,也沒有發現什麼問題,所以就不推薦大家去用付費的
剛開始的時候,我用的是github(因為一直在用github做程式碼管理),上傳圖片是沒有什麼問題,但是如果你沒有訪問工具,一般10次有9次圖片是無法線上預覽的,即使你使用url訪問也會經常掛掉。
之後我去試了SMS圖床,比github好點,但是偶爾還是會掛掉
最後我用了gitee,就再也沒有發生過問題了。
總結,圖床推薦大家用gitee,把你用excel生成的圖片上傳到gitee
需要注意圖片的名稱不能重複,最好是用時間戳命名
另外,如何上傳圖片到gitee,bing搜尋關鍵字:上傳圖片到gitee,你會找到你想要的答案,不贅述了
再來說第二個,群機器人
如果你選擇的是用郵件通知,可以參考以前寫過的Python操作郵件傳送的那篇文章
今天講的是透過群機器人進行通知,這裡的群可以是微信群也可以是釘釘群,推薦用後者。因為官方做了詳細的介面,稍微設定一下,三兩行程式碼就能直接用來發送群訊息
首先我們開啟釘釘,隨便拉2個人,建立一個群聊,點選群設定中的智慧群助手。
進入到機器人管理頁面,點選新增機器人,進入機器人選擇頁面,這裡選擇自定義機器人。
需要給機器人修改頭像和名稱,在安全設定裡面,建議最好把自定義關鍵字也勾選上,比如我這裡設定的是:定時推送,然後其他的可以預設,點選完成後在新的頁面有一個webhook
這個比較重要,後面要用到,一定要備份好
總結來說,這裡需要注意的有兩個: 一個機器人的webhook,一個是自定義關鍵字
再來說第三個,定時推送
這個我記得我有寫過詳細的教程,一篇是linux下的,基於cron服務進行程式的定時執行;一篇是window下,透過任務計劃程式進行程式的定時執行。
感興趣的可以點選學習下:
- win10下自動化任務,五步快速實現
- linux下自動化任務,三步快速實現
這裡,我直接貼如何呼叫上一步的webhook進行訊息通知
我使用釘釘機器人的原因是官方做了非常詳細的介面和使用文件,用兩三行程式碼可以直接呼叫
以下是官方文件,非常詳盡:
https://open.dingtalk.com/document/robots/custom-robot-access?spm=ding_open_doc.document.0.0.62846573TCzj7A#topic-2026027
因為機器人可以傳送markdown形式的通知,而markdown是一種卡片式的、可以線上進行預覽的訊息通知,剛好就很適合我們這次的需求
對應的訊息通知的格式化程式碼如下:
url = 'https://oapi.dingtalk.com/robot/send?access_token=' + token_dd
headers = {'Content-Type': 'application/json;charset=utf-8'}
data = {
"msgtype": "markdown",
"markdown": {
"title": "定時推送",
"text": "策略定時推送中,當前可操作:\n {0} \n 圖片若無法檢視,[請點選此處]({1}) \n\n請謹慎操作!!\n".format(md_pic_url, pic_url)
},
"at": {
"isAtAll": at_all
},
}
res = requests.post(url, data=json.dumps(data), headers=headers)
print(res.text)
上面的程式碼中有四個引數需要設定,分別是: token_dd、md_pic_url、pic_url、at_all ,分別解釋一下:
- token_dd:上一步中webhook中的token
- at_all:是否@全體成員,True表示是
- pic_url:上傳到圖床的圖片連結
- md_pic_url:markdown形式的圖片連結,示例:![名稱 ](pic_url)
需要注意你的通知內容中需要包含上一步設定的關鍵字,例如我將title的名字設定成了關鍵字 定時推送
上述操作你成功設定了之後,執行程式碼之後,你的釘釘群會收到這樣一個訊息通知:
圖片下方有一個 請點選此處 的藍色超連結 ,當釘釘群的圖片因為網路波動的原因無法顯示,群使用者就可以透過點選這個連結進行檢視
是不是很方便呢
以上就是本次的所有內容,感興趣的同學可以實操一下, 也歡迎其他 有 更好用的方法的同學一起分享,下節見!
別光顧著收藏文章,點贊走起