一、概述
本文將介紹如何使用python3給企業微信發送消息。我的環境是linux + python3.6.10。
二、python腳本

#!/root/.virtualenvs/wechat/bin/python
# usage: send message via wechat
import requests, sys, json
import urllib3
urllib3.disable_warnings()
###填寫參數###
# Corpid是企業號的標識
Corpid = "ww34d7fed41a8d5dxx"
# Secret是管理組憑證密鑰
Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"
# 應用ID
Agentid = "1000002"
# token_config文件放置路徑
Token_config = r'/tmp/zabbix_wechat_config.json'
###下面的代碼都不需要動###
def GetTokenFromServer(Corpid, Secret):
"""獲取access_token"""
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {
"corpid": Corpid,
"corpsecret": Secret
}
r = requests.get(url=Url, params=Data, verify=False)
print(r.json())
if r.json()['errcode'] != 0:
return False
else:
Token = r.json()['access_token']
file = open(Token_config, 'w')
file.write(r.text)
file.close()
return Token
def SendMessage(Partyid, Subject, Content):
"""發送消息"""
# 獲取token信息
try:
file = open(Token_config, 'r')
Token = json.load(file)['access_token']
file.close()
except:
Token = GetTokenFromServer(Corpid, Secret)
# 發送消息
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = {
"toparty": Partyid,
"msgtype": "text",
"agentid": Agentid,
"text": {"content": Subject + '\n' + Content},
"safe": "0"
}
r = requests.post(url=Url, data=json.dumps(Data), verify=False)
# 如果發送失敗,將重試三次
n = 1
while r.json()['errcode'] != 0 and n < 4:
n = n + 1
Token = GetTokenFromServer(Corpid, Secret)
if Token:
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
r = requests.post(url=Url, data=json.dumps(Data), verify=False)
print(r.json())
return r.json()
if __name__ == '__main__':
Partyid = str(sys.argv[1])
Subject = str(sys.argv[2])
Content = str(sys.argv[3])
Status = SendMessage(Partyid, Subject, Content)
print(Status)
需要修改的地方,其中Corpid,Secret,Agentid我會在后面的截圖指出來要填的值。
下行是linux環境下python3的可執行路徑,如果是windows,那么這行就不需要,只要將python的路徑加入到path即可
#!/root/.virtualenvs/wechat/bin/python
# Corpid是企業ID
Corpid = "ww34d7fed41a8d5dxx"
# Secret是管理組憑證密鑰
Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"
# Agentid是應用ID
Agentid = "1000002"
# Token_config里面存放token信息,這個自己隨便填就行,只要自己有寫的權限
Token_config = r'/tmp/zabbix_wechat_config.json'
三、企業微信設置
1. 注冊企業微信
2. 點擊進入管理后台
創建應用
3. 創建應用完成后
Agentid,Secret就出來了
4. 查看企業id
這個就是腳本中的Corpid
5. 查看部門id
我這個python腳本是通過部門id進行群體發送,所以這個部門id到后面會有用。
四、測試腳本
五、總結
腳本是在火星小劉的基礎上改的,我是在linux環境下做的實驗,windows下面跟這一樣,其中微小的區別我在文章中已經標明。