最近當上了阿里雲的推廣大使,帶了 200 名讀者一起免費領取了阿里雲的服務器,每個人都說 『真香』。
PS:有想參與領取免費服務器的同學,可加我v:hello-wbm,我發你操作流程。
組織第一期活動,其實還是有不少的問題,主要流程上的問題。
為了讓整個流程更加自動化,操作更加流暢,我利用公眾號的開發能力,將整個過程集成到公眾號消息的自助查詢。
其中有一步就是確認用戶的購買資格,只要在我的公眾號后台回復對應的阿里雲ID 我這邊就會去查詢阿里雲后台的關聯數據,但阿里雲的 cookie 數個小時就會失效,這樣一來就有點尷尬,后台的爬蟲失效了參與的讀者還在一直查,一直查,查到的都是未關聯的數據。
這時候實時告警就顯得非常重要,常見的告警方式有:郵件,電話,短信,微信。
短信和電話,通常是收費的(有不收費的,可以分享一下),而郵件又不是那么及時,因此最后我選擇微信通知。
這里說的微信,是企業微信,而我之前用注冊過個體戶的執照,因此可以很輕松就可以注冊自己的企業微信。
1. 新建應用
登陸網頁版企業微信 (https://work.weixin.qq.com/),點擊 應用管理 -> 應用 -> 創建應用
上傳應用的 logo,輸入應用名稱,再選擇可見范圍,成功創建一個告警應用
2. 獲取Secret
使用 Python 發送告警請求,其實就只使用到兩個接口
- 獲取 Token :
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}
- 發送請求:
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}
可以看到,最重要的是 corpid 和 secret:
- corpid:唯一標識你的企業
- secret:應用級的密鑰,有了程序才知道你要發送該企業的哪個應用
corpid 可以通過 我的企業 -> 企業信息 獲取
而 secret 獲取相對麻煩一點,點擊前面創建應用,點擊 查看 secret
然后再點擊發送就會發送到你的企業微信上
最后將 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": "服務異常告警",
"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 函數發送消息了。
wechat = WeChatPub()
now = datetime.datetime.now()
timenow = now.strftime('%Y年%m月%d日 %H:%M:%S')
wechat.send_msg(f"<div class=\"gray\">{timenow}</div> <div class=\"normal\">阿里雲 cookie 已失效</div><div class=\"highlight\">請盡快更換新的 cookie</div>")
只要你的企業微信沒有關閉通知的權限,那你的手機立馬就會彈出這個告警信息。
簡單幾步就對接了企業微信,實現了手機的實時告警功能,推薦有企業微信的同學使用。
當然一定有更多,更好用的實現方法,我只是我選擇了其中一種,大家有不錯的思路也可以分享在評論區。
文章最后給大家介紹三個我自己寫的在線文檔:
第一個文檔:PyCharm 中文指南 1.0 文檔
花了兩個多月的時間,整理了 100 個 PyCharm 的使用技巧,為了讓新手能夠直接上手,我花了很多的時間錄制了上百張 GIF 動圖,有興趣的前往在線文檔閱讀。
第二個文檔:PyCharm 黑魔法指南 1.0 文檔
系統收錄各種 Python 冷門知識,Python Shell 的多樣玩法,令人瘋狂的 Python 炫技操作,Python 的超詳細進階知識解讀,非常實用的 Python 開發技巧等。
第三個文檔:Python 中文指南 1.0 文檔
花了三個月時間寫的一本 適合零基礎入門 Python 的全中文教程,搭配大量的代碼案例,讓初學者對 代碼的運作效果有一個直觀感受,教程既有深度又有廣度,每篇文章都會標內容的難度,是基礎還是進階的,可供讀者進行選擇,是一本難得的 Python 中文電子教程。