準備工作:
??? 到企業微信官網,注冊一個企業;登錄企業微信后臺,創建一個“自建”應用, 獲取企業 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

