最近給公司測試組內部開發一個記賬小工具,當賬目出現問題的時候需要發送消息通知大家,前期主要采用的QQ發送通知消息,但是有一天突然無法連接到QQ服務器,運維的同學建議采用微信的方式對接然后進行告警,所以這里采用微信的企業號進行消息發送,微信企業號目前已經變更為企業微信,所以需要注冊一個企業微信;
一、獲取企業微信接口文檔,實現消息發送;
1.采用創建發送應用消息,企業微信接口文檔:https://work.weixin.qq.com/api/doc#90000/90135/90664;
企業微信提供了好幾種發送消息的模式,主要應用支持推送文本、圖片、視頻、文件、圖文等類型;
2.我這里主要作用是發送消息告訴想過成員,那么我這里只要發送文件消息即可,下面看下發送消息的接口定義
3、根據接口定義獲取我們需要的相關信息,首先我需要獲取access_token,我們查看下獲取access_token接口文檔
根據接口文檔,獲取access_token值,我們需要獲取Corpid和SECRECT這兩個參數,發送消息我們需要知道關鍵參數agentid,toparty;
二、獲取相應的參數,為接口請求創造條件
1.注冊成功以后需要我們創建一個應用;
2. 應用創建成功,我們需要配置可見范圍,配置這里主要為了后期發送消息,可以指定用戶組,這里有幾個字段很關鍵,Agentid,Secret;
3.獲取企業微信corpid值
三、獲取相應參數以后通過python 實現自動發送消息
# 獲取微信access_token def get_token(): payload_access_token = {'corpid': 'wwfcdce534bxxxxx', 'corpsecret': '-hpCA42o4cm1DzgSfS23XtEZ93ZI3VNwDgcP-xxxxxUd4X6Q'} token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' r = requests.get(token_url, params=payload_access_token) dict_result = (r.json()) return dict_result['access_token'] def send_message(): url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % get_token() data = {"toparty": 1, "msgtype": "text", "agentid": xxxxx, "text": {"content": "提現成功"}, "safe": 0} data = json.dumps(data, ensure_ascii=False) r = requests.post(url=url, data=data.encode("utf-8").decode("latin1")) return r.json() if __name__ == '__main__': send_message()
這樣我們就可以將消息發送至對應的用戶組,這里需要注意access_token 的有效期7200s,而且接口的請求次數有限制,所以我們需要對返回的token值進行緩存,可以存儲在redis或者MySQL,過期以后進行重復獲取;
四、微信接收企業微信的消息;
一般情況接收企業微信需要安裝企業微信單獨的程序,這樣顯示的很不方便,所以需要關系下個人微信;
通過連接微信->微信工作台->邀請關注 下載對應的二維碼即可,個人微信關注以后就可以直接接收消息,其實這個過程跟不關注公眾號一樣;