Python書籤 # 實現用企業微信機器人發送消息(文本消息、圖文消息、Markdown消息)

在終端某個羣組添加機器人之後,可以獲取到 webhook 地址,然後我們按以下說明構造 post data,向這個地址發起 HTTP POST  請求,就可以實現給該羣組發送消息。

假設我們在羣組裏添加機器人後獲取的 webhook 是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c(這個需要自己在羣組裏創建企業微信機器人之後,從 webhook 中摘取並替換)。

 

1. 文本類型消息

1.1. 通過企業微信機器人發送文本類型消息

import requests
import json

class WXWork_SMS :

    # 文本類型消息
    def send_msg_txt(self) :
        headers = {"Content-Type" : "text/plain"}
        send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"
        send_data = {
            "msgtype": "text",  # 消息類型,此時固定爲text
            "text": {
                "content": "上海今日天氣:32度,大部分多雲,降雨概率:10%",  # 文本內容,最長不超過2048個字節,必須是utf8編碼
                "mentioned_list":["@all"],  # userid的列表,提醒羣中的指定成員(@某個成員),@all表示提醒所有人,如果開發者獲取不到userid,可以使用mentioned_mobile_list
                "mentioned_mobile_list":["@all"]  # 手機號列表,提醒手機號對應的羣成員(@某個成員),@all表示提醒所有人
            }
        }

        res = requests.post(url = send_url, headers = headers, json = send_data)
        print(res.text)

if __name__ == '__main__' :
    sms = WXWork_SMS()
    sms.send_msg_txt()

1.2. 參數說明

參數 必須 說明
msgtype true 消息類型,此時固定爲text
content true 文本內容,最長不超過2048個字節,必須是utf8編碼
mentioned_list false userid的列表,提醒羣中的指定成員(@某個成員),@all表示提醒所有人,如果開發者獲取不到userid,可以使用mentioned_mobile_list
mentioned_mobile_list false 手機號列表,提醒手機號對應的羣成員(@某個成員),@all表示提醒所有人

1.3. 發送結果

Python - 企業微信機器人 - 文本類型消息
【Python企業微信機器人發送文本類型消息】

 

2. Markdown類型消息

2.1. 通過企業微信機器人發送 Markdown 類型消息

import requests
import json

class WXWork_SMS :

    # Markdown類型消息
    def send_msg_markdown(self) :
        headers = {"Content-Type" : "text/plain"}
        send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"
        send_data = {
            "msgtype": "markdown",  # 消息類型,此時固定爲markdown
            "markdown": {
                "content": "# **提醒!實時新增用戶反饋**<font color=\"warning\">**123例**</font>\n" +  # 標題 (支持1至6級標題,注意#與文字中間要有空格)
                    "#### **請相關同事注意,及時跟進!**\n" +  # 加粗:**需要加粗的字**
                    "> 類型:<font color=\"info\">用戶反饋</font> \n" +  # 引用:> 需要引用的文字
                    "> 普通用戶反饋:<font color=\"warning\">117例</font> \n" +  # 字體顏色(只支持3種內置顏色)
                    "> VIP用戶反饋:<font color=\"warning\">6例</font>"  # 綠色:info、灰色:comment、橙紅:warning
            }
        }

        res = requests.post(url = send_url, headers = headers, json = send_data)
        print(res.text)

if __name__ == '__main__' :
    sms = WXWork_SMS()
    # Markdown類型消息
    sms.send_msg_markdown()

2.2. 參數說明

參數 必須 說明
msgtype true 消息類型,此時固定爲markdown
content true markdown內容,最長不超過4096個字節,必須是utf8編碼

目前支持的 markdown 語法是如下的子集:

2.2.1.標題 (支持1至6級標題,注意#與文字中間要有空格)

# 標題一
## 標題二
### 標題三
#### 標題四
##### 標題五
###### 標題六

2.2.2.加粗

**bold**

2.2.3.鏈接

[這是一個鏈接](http://work.weixin.qq.com/api/doc)

2.2.4.行內代碼段(暫不支持跨行)

`code`

2.2.5.引用

> 引用文字

2.2.6.字體顏色(只支持3種內置顏色)

<font color="info">綠色</font>
<font color="comment">灰色</font>
<font color="warning">橙紅色</font>

2.3. 發送結果

Python - 企業微信機器人 - Markdown類型消息
【Python企業微信機器人Markdown類型消息】

 

3. 圖文類型消息

3.1. 通過企業微信機器人發送圖文類型消息

import requests
import json

class WXWork_SMS :

    # 圖文類型消息
    def send_msg_txt_img(self) :
        headers = {"Content-Type" : "text/plain"}
        send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"
        send_data = {
            "msgtype": "news",  # 消息類型,此時固定爲news
            "news": {
                "articles" : [  # 圖文消息,一個圖文消息支持1到8條圖文
                    {
                        "title" : "中秋節禮品領取",  # 標題,不超過128個字節,超過會自動截斷
                        "description" : "今年中秋節公司有豪禮相送",  # 描述,不超過512個字節,超過會自動截斷
                        "url" : "www.baidu.com",  # 點擊後跳轉的鏈接。
                        "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png" # 圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果爲大圖 1068*455,小圖150*150。
                    },
                    {
                        "title" : "我的CSDN - 魏風物語",  # 標題,不超過128個字節,超過會自動截斷
                        "description" : "堅持每天寫一點點",  # 描述,不超過512個字節,超過會自動截斷
                        "url" : "https://blog.csdn.net/itanping",  # 點擊後跳轉的鏈接。
                        "picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png" # 圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果爲大圖 1068*455,小圖150*150。
                    }
                ]
            }
        }

        res = requests.post(url = send_url, headers = headers, json = send_data)
        print(res.text)

if __name__ == '__main__' :
    sms = WXWork_SMS()
    # 圖文類型消息
    sms.send_msg_txt_img()

3.2. 參數說明

參數 必須 說明
msgtype true 消息類型,此時固定爲news
articles 圖文消息,一個圖文消息支持1到8條圖文
title 標題,不超過128個字節,超過會自動截斷
description 描述,不超過512個字節,超過會自動截斷
url 點擊後跳轉的鏈接。
picurl 圖文消息的圖片鏈接,支持JPG、PNG格式,較好的效果爲大圖 1068*455,小圖150*150。

3.3. 發送結果

Python - 企業微信機器人 - 圖文類型消息
【Python企業微信機器人圖文類型消息】

 

 

 注意:

1.消息發送頻率限制:每個機器人發送的消息不能超過20條/分鐘

2.上述代碼中的 send url 的 key 需要自己創建企業微信機器人之後,從 webhook 中摘取並替換


本例代碼: https://download.csdn.net/download/itanping/11643509


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章