準(zhǔn)備工作:
??? 到企業(yè)微信官網(wǎng),注冊(cè)一個(gè)企業(yè);登錄企業(yè)微信后臺(tái),創(chuàng)建一個(gè)“自建”應(yīng)用, 獲取企業(yè) ID 、 agentid 、 secret 這 3 個(gè)必要的參數(shù);在企業(yè)微信的通訊錄中,創(chuàng)建多個(gè)測(cè)試賬號(hào);在手機(jī)端安裝“企業(yè)微信” APP ,使用測(cè)試賬號(hào)登錄到企業(yè)微信,準(zhǔn)備接收消息。
?
程序代碼 :
??? 企業(yè)微信提供 API 開(kāi)發(fā)接口,通過(guò) HTTPS 的 GET 、 POST 方法與企業(yè)微信后臺(tái)進(jìn)行交互,完成獲取令牌、發(fā)送數(shù)據(jù)、獲取數(shù)據(jù)的操作。
??? Python 代碼主要使用 requests 庫(kù),將企業(yè)微信 API 進(jìn)行簡(jiǎn)單封裝,模擬 https 的 GET 、 POST 操作,向指定的用戶發(fā)送企業(yè)微信消息。
#!/usr/bin/env?python
#?-*-?coding:?utf-8?-*-
import?time
import?requests
import?json
class?WeChat:
????def?__init__(self):
????????self.CORPID?=?'ww2e1234567895498f5498f'??#企業(yè)ID,在管理后臺(tái)獲取
????????self.CORPSECRET?=?'xy11234567898hk_ecJ123456789DhKy4_1y12345OI'#自建應(yīng)用的Secret,每個(gè)自建應(yīng)用里都有單獨(dú)的secret
????????self.AGENTID?=?'1000002'??#應(yīng)用ID,在后臺(tái)應(yīng)用中獲取
????????self.TOUSER?=?"maomao|dingding"??#?接收者用戶名,多個(gè)用戶用|分割
????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()???#當(dāng)返回的數(shù)據(jù)是json串的時(shí)候直接用.json即可將respone轉(zhuǎn)換成字典
????????return?respone["errmsg"]
if?__name__?==?'__main__':
????wx?=?WeChat()
????wx.send_data("這是程序發(fā)送的第1條消息!\n?Python程序調(diào)用企業(yè)微信API,從自建應(yīng)用“告警測(cè)試應(yīng)用”發(fā)送給管理員的消息!")
????wx.send_data("這是程序發(fā)送的第2條消息!")
?
?
運(yùn)行截圖:
?
參考鏈接:
python 實(shí)現(xiàn)通過(guò)企業(yè)微信發(fā)送消息
https://www.cnblogs.com/bluezms/p/8948187.html
?
python 腳本 -- 用企業(yè)微信實(shí)現(xiàn)發(fā)送信息
https://blog.csdn.net/liyyzz33/article/details/86080936
?
企業(yè)微信后臺(tái)管理:
https://work.weixin.qq.com/
?
企業(yè)微信 API 文檔:
https://work.weixin.qq.com/api/doc#90000/90003/90487
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

