python3.8 微信发送服务器监控报警代码

Posted 炒鸡蛋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.8 微信发送服务器监控报警代码相关的知识,希望对你有一定的参考价值。

python版本

1 >>> import sys
2 >>> sys.version
3 \'3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)]\'

代码

urllib是python3.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])

效果

 

 

以上是关于python3.8 微信发送服务器监控报警代码的主要内容,如果未能解决你的问题,请参考以下文章

90行代码,搞定日志监控框架

监控聚币网行情 并实时发送到微信

Zabbix_监控报警无法通过微信发送信息

使用shell脚本监控少量服务器并发送微信告警信息

zabbix验证微信

(19) 树莓派发送微信人脸识别报警