Python實現發送警告通知到企業微信方法詳解

常見的報警方式有:郵件,電話,短信,微信。

短信和電話,通常是收費的(若你有不收費的,可以評論分享一下),而郵件又不是那麼及時,因此最後我選擇微信通知。

這裡說的微信,是企業微信,而我之前註冊過個體戶的執照,因此可以很輕松就可以註冊自己的企業微信。

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>")

隻要你的企業微信沒有關閉通知的權限,那你的手機立馬就會彈出這個告警信息。

簡單幾步就對接瞭企業微信,實現瞭手機的實時告警功能,推薦有企業微信的同學使用。

當然一定有更多,更好用的實現方法,我隻是我選擇瞭其中一種。

到此這篇關於Python實現發送警告通知到企業微信方法詳解的文章就介紹到這瞭,更多相關Python發送警告通知到企業微信內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: