Python 3.8 实现微信服务器监控报警消息发送
本文介绍如何使用 Python 3.8 内置的 urllib 库调用微信企业号接口,实现服务器监控报警消息的自动发送。文章提供了完整的代码示例,涵盖获取 Access Token、构建消息体及发送请求的关键步骤,适用于运维自动化场景。
Python 微信监控报警实现概述
本文详细讲解了在 Python 3.8 环境下,通过代码实现向微信发送服务器监控报警消息的方法。文中提供了详尽的示例代码,对学习和实际工作具有参考价值。
环境版本说明
关于 Python 版本的要求。
Python 版本验证
>>> import sys
>>> sys.version
'3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)]'
核心代码实现
相关实现代码。
依赖库说明
代码中使用的 urllib 模块是 Python 3.8 的内置库,无需额外安装。
微信消息发送类代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib.request,urllib.error,json
import sys
class WeChat(object):
__token_id = ''
# init attribute
def __init__(self,url):
self.__url = url.rstrip('/')
self.__corpid = '[企业号的标识]'
self.__secret = '[管理组凭证密钥]'
# Get TokenID
def authID(self):
params = {'corpid':self.__corpid, 'corpsecret':self.__secret}
data = urllib.parse.urlencode(params)
content = self.getToken(data)
try:
self.__token_id = content['access_token']
# print content['access_token']
except KeyError:
raise KeyError
# Establish a connection
def getToken(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'gettoken?'
try:
response = urllib.request.Request(url + data)
except KeyError:
raise KeyError
result = urllib.request.urlopen(response)
content = json.loads(result.read())
return content
# Get sendmessage url
def postData(self,data,url_prefix='/'):
url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
request = urllib.request.Request(url,data.encode())
print(url)
print(data)
try:
result = urllib.request.urlopen(request)
except urllib.error.HTTPError as e:
if hasattr(e,'reason'):
print('reason',e.reason)
elif hasattr(e,'code'):
print('code',e.code)
return 0
else:
content = json.loads(result.read())
result.close()
return content
# send message
def sendMessage(self,touser,message):
self.authID()
data = json.dumps({
'touser':"[企业号中的用户帐号]",
'toparty':"[企业号中的部门id]",
'msgtype':"[消息类型]",
'agentid':"[企业号中的应用id]",
'text':{
'content':message
},
'safe':"0"
},ensure_ascii=False)
response = self.postData(data)
print(response)
if __name__ == '__main__':
a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
a.sendMessage(sys.argv[1],sys.argv[3])
运行效果
运行效果展示。


总结
以上就是本文的全部内容,希望能为读者的学习提供帮助,欢迎继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













