在終端某個羣組添加機器人之後,可以獲取到 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. 發送結果
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. 發送結果
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. 發送結果
注意:
1.消息發送頻率限制:每個機器人發送的消息不能超過20條/分鐘
2.上述代碼中的 send url 的 key 需要自己創建企業微信機器人之後,從 webhook 中摘取並替換
本例代碼: https://download.csdn.net/download/itanping/11643509