Python - 使用python3給企業微信發送消息


一、概述

本文將介紹如何使用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)

View Code

需要修改的地方,其中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. 注冊企業微信

https://qy.weixin.qq.com/

1

 

2. 點擊進入管理后台

創建應用

2


3

 

3. 創建應用完成后

Agentid,Secret就出來了

4

 

4. 查看企業id

這個就是腳本中的Corpid

5

 

5. 查看部門id

6

我這個python腳本是通過部門id進行群體發送,所以這個部門id到后面會有用。

 

四、測試腳本

7

 

五、總結

腳本是在火星小劉的基礎上改的,我是在linux環境下做的實驗,windows下面跟這一樣,其中微小的區別我在文章中已經標明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM