zoukankan      html  css  js  c++  java
  • python调用企业微信接口发送报警信息

    在运维的日常工作中常常需要同监控打交道,而监控中最常用的功能介绍报警,最简单的方式就是使用邮件进行报警,但是邮件报警不是特别及时(像我这种一天都不怎么看邮件的估计得等服务挂了才知道),所以我们需要一种及时通信工具进行报警,常见的有短信,微信公众号,QQ公众号等,但是这三种方式在报警及时的同时也会在一定程度上打扰到我们的生活,那么有没有一种既能及时传递信息又能不打扰到我们日常的生活的那?? 
     
    腾讯在微信之外还推出了一款类似于微信的应用,即使企业微信。企业微信一般只用于办公所有不同可能会影响我们的日常生活而且又能及时报警。
     
    企业微信官网:https://work.weixin.qq.com/
     
     
    企业微信登录管理员后台的页面
     
    python调用企业微信接口发送报警信息
     
     
     
     
    点击 "我的企业" 获取企业 ID (等一下代码中会用到)
     
    python调用企业微信接口发送报警信息
     
     
     
     
    点击 "应用与小程序" 创建应用 (报警信息将发送到应用中)
     
    python调用企业微信接口发送报警信息
     
     
     
     
    根据要求填写应用信息创建应用
     
    python调用企业微信接口发送报警信息
     
     
     
     
    获取 Agentid 和 Secret (等一下代码中会用到)
     
    python调用企业微信接口发送报警信息

     
     
     
     
    代码实现:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import json
    import requests
    
    class WeChat(object):
        def __init__(self, corpid, secret, agentid):
            self.url = "https://qyapi.weixin.qq.com"
            self.corpid = corpid
            self.secret = secret
            self.agentid = agentid
    
        # 获取企业微信的 access_token
        def access_token(self):
            url_arg = '/cgi-bin/gettoken?corpid={id}&corpsecret={crt}'.format(
                id=self.corpid, crt=self.secret)
            url = self.url + url_arg
            response = requests.get(url=url)
            text = response.text
            self.token = json.loads(text)['access_token']
    
        # 构建消息格式
        def messages(self, msg):
            values = {
                "touser": '@all',
                "msgtype": 'text',
                "agentid": self.agentid,
                "text": {'content': msg},
                "safe": 0
            }
            # python 3
            # self.msg = (bytes(json.dumps(values), 'utf-8'))
            # python 2
            self.msg = json.dumps(values)
    
        # 发送信息
        def send_message(self, msg):
            self.access_token()
            self.messages(msg)
    
            send_url = '{url}/cgi-bin/message/send?access_token={token}'.format(
                url=self.url, token=self.token)
            response = requests.post(url=send_url, data=self.msg)
            errcode = json.loads(response.text)['errcode']
    
            if errcode == 0:
                print('Succesfully')
            else:
                print('Failed')
    使用示例:
    corpid = "xxxxxxx"
    secret = "xxxxxxx"
    agentid = "xxxxxx"
    msg = "mysql 出现错误"
    
    wechat = WeChat(corpid, secret, agentid)
    wechat.send_message(msg)
    
    具体参数意义查看:  https://open.work.weixin.qq.com/api/doc#10167
  • 相关阅读:
    (转)CTP: 平昨仓与平今仓,log轻轻告诉你.......
    linux上的语音识别程序
    6个可以隐藏运行bat,浏览器等程序的方法
    Android——用PagerAdapter实现View滑动效果
    Android——关于PagerAdapter的使用方法的总结(转)
    Android——浅谈HTTP中Get与Post的区别(转)
    Android——远程存储器存储:JDK方式和Volley框架的get和post
    android——字符串string(转)
    Android——事务
    Android——监听事件总结
  • 原文地址:https://www.cnblogs.com/sea520/p/10817832.html
Copyright © 2011-2022 走看看