準備工作:
到企業微信官網,註冊一個企業;登錄企業微信後臺,創建一個“自建”應用, 獲取企業ID、agentid、secret這3個必要的參數;在企業微信的通訊錄中,創建多個測試賬號;在手機端安裝“企業微信”APP,使用測試賬號登錄到企業微信,準備接收消息。
程序代碼:
企業微信提供API開發接口,通過HTTPS的GET、POST方法與企業微信後臺進行交互,完成獲取令牌、發送數據、獲取數據的操作。
Python代碼主要使用requests庫,將企業微信API進行簡單封裝,模擬https的GET、POST操作,向指定的用戶發送企業微信消息。
#!/usr/bin/env python # -*- coding: utf-8 -*- import time import requests import json class WeChat: def __init__(self): self.CORPID = 'ww2e1234567895498f5498f' #企業ID,在管理後臺獲取 self.CORPSECRET = 'xy11234567898hk_ecJ123456789DhKy4_1y12345OI'#自建應用的Secret,每個自建應用裏都有單獨的secret self.AGENTID = '1000002' #應用ID,在後臺應用中獲取 self.TOUSER = "maomao|dingding" # 接收者用戶名,多個用戶用|分割 def _get_access_token(self): url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken' values = {'corpid': self.CORPID, 'corpsecret': self.CORPSECRET, } req = requests.post(url, params=values) data = json.loads(req.text) return data["access_token"] def get_access_token(self): try: with open('./tmp/access_token.conf', 'r') as f: t, access_token = f.read().split() except: with open('./tmp/access_token.conf', 'w') as f: access_token = self._get_access_token() cur_time = time.time() f.write('\t'.join([str(cur_time), access_token])) return access_token else: cur_time = time.time() if 0 < cur_time - float(t) < 7260: return access_token else: with open('./tmp/access_token.conf', 'w') as f: access_token = self._get_access_token() f.write('\t'.join([str(cur_time), access_token])) return access_token def send_data(self, message): send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + self.get_access_token() send_values = { "touser": self.TOUSER, "msgtype": "text", "agentid": self.AGENTID, "text": { "content": message }, "safe": "0" } send_msges=(bytes(json.dumps(send_values), 'utf-8')) respone = requests.post(send_url, send_msges) respone = respone.json() #當返回的數據是json串的時候直接用.json即可將respone轉換成字典 return respone["errmsg"] if __name__ == '__main__': wx = WeChat() wx.send_data("這是程序發送的第1條消息!\n Python程序調用企業微信API,從自建應用“告警測試應用”發送給管理員的消息!") wx.send_data("這是程序發送的第2條消息!")
運行截圖:
參考鏈接:
python實現通過企業微信發送消息
https://www.cnblogs.com/bluezms/p/8948187.html
python腳本--用企業微信實現發送信息
https://blog.csdn.net/liyyzz33/article/details/86080936
企業微信後臺管理:
企業微信API文檔:
https://work.weixin.qq.com/api/doc#90000/90003/90487