如何用 Python 發(fā)送告警通知到微信?(文末送書)

常見的告警方式有:郵件,電話,短信,微信。
短信和電話,通常是收費的(若你有不收費的,可以評論分享一下),而郵件又不是那么及時,因此最后我選擇微信通知。
這里說的微信,是企業(yè)微信,而我之前用注冊過個體戶的執(zhí)照,因此可以很輕松就可以注冊自己的企業(yè)微信。
#?1. 新建應(yīng)用
登陸網(wǎng)頁版企業(yè)微信 (https://work.weixin.qq.com/),點擊?應(yīng)用管理?->?應(yīng)用?->?創(chuàng)建應(yīng)用

上傳應(yīng)用的 logo,輸入應(yīng)用名稱,再選擇可見范圍,成功創(chuàng)建一個告警應(yīng)用

#?2. 獲取Secret
使用 Python 發(fā)送告警請求,其實就只使用到兩個接口
獲取 Token?:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}
發(fā)送請求:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}
可以看到,最重要的是 corpid 和 secret:
corpid:唯一標(biāo)識你的企業(yè)
secret:應(yīng)用級的密鑰,有了它程序才知道你要發(fā)送該企業(yè)的哪個應(yīng)用
corpid 可以通過?我的企業(yè)?->?企業(yè)信息?獲取

而 secret 獲取相對麻煩一點,點擊前面創(chuàng)建應(yīng)用,點擊 查看 secret

然后再點擊發(fā)送就會發(fā)送到你的企業(yè)微信上

最后將 corpid 和 secret 填入下面的常量中。
import?json
import?datetime
import?requests
CORP_ID?=?""
SECRET?=?""
class?WeChatPub:
????s?=?requests.session()
????def?__init__(self):
????????self.token?=?self.get_token()
????def?get_token(self):
????????url?=?f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"
????????rep?=?self.s.get(url)
????????if?rep.status_code?!=?200:
????????????print("request?failed.")
????????????return
????????return?json.loads(rep.content)['access_token']
????def?send_msg(self,?content):
????????url?=?"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="?+?self.token
????????header?=?{
????????????"Content-Type":?"application/json"
????????}
????????form_data?=?{
????????????"touser":?"@all",
????????????"toparty":?"?PartyID1?|?PartyID2?",
????????????"totag":?"?TagID1?|?TagID2?",
????????????"msgtype":?"textcard",
????????????"agentid":?1000002,
????????????"textcard":?{
????????????????"title":?"服務(wù)異常告警",
????????????????"description":?content,
????????????????"url":?"URL",
????????????????"btntxt":?"更多"
????????????},
????????????"safe":?0
????????}
????????rep?=?self.s.post(url,?data=json.dumps(form_data).encode('utf-8'),?headers=header)
????????if?rep.status_code?!=?200:
????????????print("request?failed.")
????????????return
????????return?json.loads(rep.content)
然后就可以通過 send_msg 函數(shù)發(fā)送消息了。
wechat?=?WeChatPub()
now?=?datetime.datetime.now()
timenow?=?now.strftime('%Y年%m月%d日?%H:%M:%S')
wechat.send_msg(f"gray\">{timenow}?阿里云?cookie?已失效請盡快更換新的?cookie")
只要你的企業(yè)微信沒有關(guān)閉通知的權(quán)限,那你的手機(jī)立馬就會彈出這個告警信息。

簡單幾步就對接了企業(yè)微信,實現(xiàn)了手機(jī)的實時告警功能,推薦有企業(yè)微信的同學(xué)使用。
當(dāng)然一定有更多,更好用的實現(xiàn)方法,我只是我選擇了其中一種,大家有不錯的思路也可以分享在評論區(qū)。


本書介紹了如何使用Python來編寫網(wǎng)絡(luò)爬蟲程序,內(nèi)容包括網(wǎng)絡(luò)爬蟲簡介、發(fā)送請求、提取數(shù)據(jù)、使用多個線程和進(jìn)程進(jìn)行并發(fā)抓取、抓取動態(tài)頁面中的內(nèi)容、與表單進(jìn)行交互、處理頁面中的驗證碼問題及使用Scrapy和分布式進(jìn)行數(shù)據(jù)抓取,并在最后介紹了使用本書講解的數(shù)據(jù)抓取技術(shù)對幾個真實的網(wǎng)站進(jìn)行抓取的實例,旨在幫助讀者活學(xué)活用書中介紹的技術(shù)。
推薦理由:
本書從人工智能和自然語言處理技術(shù)的基礎(chǔ)原理講起,逐步深入自然語言處理進(jìn)階實戰(zhàn),并配有實戰(zhàn)代碼講解,重點介紹了使用開源技術(shù)、人工智能開放平臺,以及使用國內(nèi)外優(yōu)秀開發(fā)框架進(jìn)行基于規(guī)則、統(tǒng)計、深度學(xué)習(xí)的自然語言處理程序開發(fā),讓讀者全面掌握理論基礎(chǔ),并學(xué)以致用。
推薦理由:
1.104幅圖表展示,降低理解難度。
2.知識點豐富,滿足機(jī)器學(xué)習(xí)必備數(shù)學(xué)知識。
3.基于Python編程的“小試牛刀”,檢驗學(xué)習(xí)效果。
4.20個“專家點撥”,幫助讀者答疑解惑。
5.數(shù)學(xué)思想和人工智能解決方案的有效實踐。
6.提供書中相關(guān)案例的源代碼,方便讀者學(xué)習(xí)參考。
贈書規(guī)則:
活動截止時我們將從本文的留言中選出五位幸運粉絲贈送書籍~
注意哦,每人每月僅限一本書籍~
活動截止時間:2022 年 1 月 12 日 16:00 整
兌獎截止時間:2022 年?1?月 13?日 16:00 整
4、國家發(fā)布新的支付方式,微信支付寶時代結(jié)束了嗎?
5、Meta元宇宙OS要黃?300人研發(fā)團(tuán)隊解散,關(guān)閉VR/AR操作系統(tǒng)研發(fā)

