準(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開發(fā)接口,通過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)通過企業(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
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
