Python實現企業微信通知機器人的方法詳解

上次介紹瞭如何通過釘釘進行群通知,有同學反饋自己更習慣使用企業微信或公司使用瞭企業微信,希望也能出個基於Python的企業微信的群通知教程,於是便有瞭本文。

事實上兩者的配置方法和使用方法非常相似,都是通過機器人進行通知,下面就教大傢如何使用Python對企業微信進行群通知。

1.準備

開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

(可選1) 如果你用Python的目的是數據分析,可以直接安裝Anaconda,它內置瞭Python和pip.

(可選2) 此外,推薦大傢用VSCode編輯器,它有許多的優點

請選擇以下任一種方式輸入命令安裝依賴

1. Windows 環境 打開 Cmd (開始-運行-CMD)。

2. MacOS 環境 打開 Terminal (command+空格輸入Terminal)。

3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install requests

2.配置企業微信機器人

為瞭能夠通過Python發送企業微信通知,首先我們需要在企業微信群聊(這個群裡可以隻有你和機器人)中添加一個群機器人:

然後填寫機器人名稱:

最後會獲得一個webhook地址:

通過這個webhook地址,我們就能通過Python給企業微信發送通知瞭。

3.Python 發送企業微信通知

通過requests模塊對webhook地址發送post請求就能發送通知:

# 公眾號:Python實用寶典
import requests
def send_weixin(content):
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密鑰"  # 這裡就是群機器人的Webhook地址
    headers = {"Content-Type": "application/json"} # http數據頭,類型為json
    data = {
        "msgtype": "text",
        "text": {
            "content": content, # 讓群機器人發送的消息內容。
            "mentioned_list": [],
        }
    }
    r = requests.post(url, headers=headers, json=data) # 利用requests庫發送post請求
send_weixin("人工智能: 175")

效果如下:

在 menthoned_list 參數中,你還可以增加 @所有人 的選項:

# 公眾號:Python實用寶典
import requests
def send_weixin(content):
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密鑰"  # 這裡就是群機器人的Webhook地址
    headers = {"Content-Type": "application/json"} # http數據頭,類型為json
    data = {
        "msgtype": "text",
        "text": {
            "content": content, # 讓群機器人發送的消息內容。
            "mentioned_list": ["@all", ], # @全體成員
        }
    }
    r = requests.post(url, headers=headers, json=data) # 利用requests庫發送post請求
send_weixin("人工智能: 175")

這樣會在消息發出的同時,提醒所有人查看信息。

此外,機器人的msgtype支持文本(text)、markdown(markdown)、圖片(image)、圖文(news)四種消息類型。

Markdown的發送方法如下:

# 公眾號:Python實用寶典
import requests
def send_weixin_md(content):
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密鑰"  # 這裡就是群機器人的Webhook地址
    headers = {"Content-Type": "application/json"} # http數據頭,類型為json
    data = {
        "msgtype": "markdown",
        "markdown": {
            "content": content,
            "mentioned_list": ["@all", ], # @全體成員
        }
    }
    r = requests.post(url, headers=headers, json=data) # 利用requests庫發送post請求
send_weixin("實時新增用戶反饋<font color=\"warning\">132例</font>,請相關同事註意。\n
         >類型:<font color=\"comment\">用戶反饋</font>
         >普通用戶反饋:<font color=\"comment\">117例</font>
         >VIP用戶反饋:<font color=\"comment\">15例</font>")

如果你需要發單獨的圖片,請使用image類型,並將圖片的md5和base64傳入到image參數,完整的data的格式如下:

# 公眾號:Python實用寶典
import requests
def send_weixin_images(MD5, base64data):
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密鑰"  # 這裡就是群機器人的Webhook地址
    headers = {"Content-Type": "application/json"} # http數據頭,類型為json
    data = {
        "msgtype": "image",
        "image": {
            "base64": base64data,
            "md5": MD5
        }
    }
    r = requests.post(url, headers=headers, json=data) # 利用requests庫發送post請求
send_weixin(MD5, base64data)

註:圖片(base64編碼前)最大不能超過2M,支持JPG,PNG格式,效果如下:

圖文類型你隻需要配置圖片、說明文字及跳轉鏈接,也非常方便:

# 公眾號:Python實用寶典
import requests
def send_weixin_images(title, description, url, picurl):
    url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的webhook密鑰"  # 這裡就是群機器人的Webhook地址
    headers = {"Content-Type": "application/json"} # http數據頭,類型為json
    data = {
        "msgtype": "news",
        "news": {
           "articles" : [
               {
                   "title" : title,
                   "description" : description,
                   "url" : url,
                   "picurl" : picurl
               }
            ]
        }
    }
    r = requests.post(url, headers=headers, json=data) # 利用requests庫發送post請求
send_weixin("中秋節禮品領取", "今年中秋節公司有豪禮相送", "www.qq.com", "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png")

怎麼樣,上述四種通知類型中有你需要的嗎?有的話就趕快拿去使用吧!

以上就是Python實現企業微信通知機器人的方法詳解的詳細內容,更多關於Python企業微信通知機器人的資料請關註WalkonNet其它相關文章!

推薦閱讀: