使用微信公众号实现监控告警

一、

由于微信个人订阅号目前很多功能还没开通,所以采用微信公众平台测试帐号,

用微信扫码登录就可以获得一个自己的微信测试号:

 

 扫码关注测试账号:


各种功能接口文档都有提供,可根据需求自行查看

 

如果要在线调试接口,需要自己申请一个订阅号,登陆之后,点击开发者工具->在线调试工具

 

 

 

二、

上面的准备工作做完了,就可以开始调用接口实现功能了。

#coding:utf-8

import time
import datetime
import os
import ConfigParser
import requests
import json
 
class MsgToWeiXin(object):
    def __init__(self):
        self._config = ConfigParser.SafeConfigParser()
#         self._config.read('config.ini')
        batRunningPath = os.path.dirname(os.sys.executable)
        batPath = os.path.dirname(os.sys.path[0])
        if os.path.exists(batPath + "\MsgToWeiXin\config.ini"):
            self._config.read(batPath + "\MsgToWeiXin\config.ini")
        else:
            self._config.read(batRunningPath + "\config.ini")
         
        self._access_token = ""
        self._expires_in = 7200
        self._token_getTime = 0
        self._appid = self._config.get("weixin", "appid")
        self._secret = self._config.get("weixin", "secret")
        self._touser = self._config.get("weixin", "touser")
        self._togroup = self._config.get("weixin", "groupid")
        
        datenow = datetime.datetime.now()
        datenow = datenow.strftime("%Y%m%d")
        self._nToDay = datenow
            
        self._msg = ""
            
    def getMsgFromTxt(self):
        datenow = datetime.datetime.now()
        datenow = datenow.strftime("%Y%m%d")
        strFileName = str(datenow) + "_IndexServerInterface.txt"
        print strFileName
        try:
            for line in open(strFileName):
                if line != "\n":
                    self._msg += line
            
            return True
        except Exception, e:
            print str(e)
            return False
         
    def get_token(self):
        url = 'https://api.weixin.qq.com/cgi-bin/token'
        values = {
                  'grant_type':'client_credential',
                  'appid' : self._appid ,
                  'secret':self._secret,
           }
        req = requests.get(url, params=values)
        data = req.json()
        self._token_getTime = time.time()
        self._access_token = data["access_token"]
        self._expires_in = data["expires_in"]
     
    def send_msg(self):
        url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + self._access_token
        content = "Date:{0},\r{1} \r\n".format(self._nToDay,self._msg)
        values = {
        "touser" : self._touser ,
        "msgtype":"text",
        "text":{
            "content": content
        }
        }
        #header={"content-Type":"application/json"}
        #req = requests.post(url, data=json.dumps(values),headers=header)
        req = requests.post(url, data=json.dumps(values, ensure_ascii=False))
        result = req.json()
        return result['errcode']
     
    def send_msg_group(self):
        url = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=" + self._access_token
        content = "Date:{0},\r{1} \r\n".format(self._nToDay,self._msg) 
        values = {
        "filter" : {
                    "is_to_all":False,
                    "group_id":self._togroup,
                    },
        "msgtype":"text",
        "text":{
            "content": content
        }
        }
        #header={"content-Type":"application/json"}
        #req = requests.post(url, data=json.dumps(values),headers=header)
        req = requests.post(url, data=json.dumps(values, ensure_ascii=False))
        result = req.json()
        return result['errcode']
    
if __name__ == '__main__':
    msgToWX = MsgToWeiXin()
    if True == msgToWX.getMsgFromTxt():   
        if msgToWX._msg != "":
            print msgToWX._msg
        else:
            msgToWX._msg += "指标数据正常"
        msgToWX.get_token()
        if 0 == msgToWX.send_msg():
            print "send success"
        else:
            print "send failed"
    else:
        print "getMsgFromTxt error"

  

Linux下报错:ImportError: No module named 'requests.packages.urllib3'

解决方法:https://www.cnblogs.com/SZxiaochun/p/9831389.html

转载于:https://www.cnblogs.com/SZxiaochun/p/6370950.html

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值