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])

效果

 

猜你喜欢

转载自www.cnblogs.com/super-age/p/11797596.html
今日推荐