準備工作:
??? 到企業微信官網,注冊一個企業;登錄企業微信后臺,創建一個“自建”應用, 獲取企業 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
?
企業微信后臺管理:
https://work.weixin.qq.com/
?
企業微信 API 文檔:
https://work.weixin.qq.com/api/doc#90000/90003/90487
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
