1.登錄企業微信後臺
若沒有可進行註冊:https://work.weixin.qq.com/wework_admin/register_wx?from=myhome_mp_home
2.創建部門:通訊錄--添加部門(給此部門的成員提供報警消息)--添加成員--記錄部門id
3.創建應用:應用管理--自建--創建應用--填寫信息(選擇剛剛創建的部門)記錄agent_id,secret
4.企業id:我的企業記錄企業id
demo:wechat.py
import logging
import requests
logger = logging.getLogger(__name__)
class Wechat(object):
"""
微信企業號報警服務
"""
def __init__(self, appid, secret, party_id, agent_id):
self.appid = appid
self.secret = secret
# 訂閱號
# self.get_token_api = "https://api.weixin.qq.com/cgi-bin/token"
# 企業微信
self.get_token_api = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
self.send_msg_api = "https://qyapi.weixin.qq.com/cgi-bin/message/send"
self.token = self.get_token()
self.party_id = party_id
self.agent_id = agent_id
def get_token(self):
"""
獲取token, 調用其他接口必要的憑證
"""
params = {
"corpid": self.appid,
"corpsecret": self.secret
}
resp = requests.get(self.get_token_api, params=params)
data = resp.json()
token = data.get("access_token")
if not token:
raise UserWarning("get token error detail: %s" % data)
logger.info("get token successed")
return token
def send_msg(self, msg, party_id, agent_id):
"""
發送文本消息到用戶組
@party_id: 通訊錄的組id
@agent_id: 創建的應用id
@msg: 發送的文本數據
"""
params = {
"access_token": self.token,
}
body = {
"toparty": party_id,
"msgtype": "text",
"agentid": agent_id,
"text": {
"content": msg,
},
}
resp = requests.post(self.send_msg_api, params=params, json=body)
data = resp.json()
code = data.get("errcode")
if code == 0:
logger.info("send msg successed")
return
if code == 42001:
logger.warning("token expires")
self.token = self.get_token()
return self.send_msg(party_id, agent_id, msg)
else:
logger.error("send msg error detail: %s" % data)
def alarm(self, msg):
"""
發送文本報警信息
"""
self.send_msg(msg, self.party_id, agent_id)
# 企業id
appid = "ww9f17adaf3"
# 應用id
agent_id = "1000002"
# 部門id
party_id = 2
# 應用的鹽值
secret = "uJW07AcQFaK7cSwk9Du0o6FTnOTtz2IiMs8h"
wechat = Wechat(appid=appid, secret=secret, party_id=party_id, agent_id=agent_id)
if __name__ == '__main__':
wechat.alarm("This is a test")