常见的报警方式有:邮件,电话,短信,微信。本文将介绍如何利用Python发送警告通知到企业微信,文中的示例代码有一定的参考价值,感兴趣的可以了解一下。编程资料点击免费领取

目录

1. 新建应用

2. 获取Secret


常见的报警方式有:邮件,电话,短信,微信。

短信和电话,通常是收费的(若你有不收费的,可以评论分享一下),而邮件又不是那么及时,因此最后我选择微信通知。

这里说的微信,是企业微信,而我之前注册过个体户的执照,因此可以很轻松就可以注册自己的企业微信。

1. 新建应用

登陆网页版企业微信(企业微信),

点击 应用管理 -> 应用 -> 创建应用

上传应用的 logo,输入应用名称,再选择可见范围,成功创建一个告警应用

2. 获取Secret

使用 Python 发送告警请求,其实就只使用到两个接口

获取 Token :

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}

发送请求 :

https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}

可以看到,最重要的是 corpid 和 secret:

  • corpid:唯一标识你的企业
  • secret:应用级的密钥,有了它程序才知道你要发送该企业的哪个应用

corpid 可以通过 我的企业 -> 企业信息 获取

而 secret 获取相对麻烦一点,点击前面的创建应用,点击 查看 secret

然后再点击发送就会发送到你的企业微信上

最后将 corpid 和 secret 填入下面的常量中。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

import json

import datetime

import requests

CORP_ID = ""

SECRET = ""

class WeChatPub:

    s = requests.session()

    def __init__(self):

        self.token = self.get_token()

    def get_token(self):

        url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"

        rep = self.s.get(url)

        if rep.status_code != 200:

            print("request failed.")

            return

        return json.loads(rep.content)['access_token']

    def send_msg(self, content):

        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token

        header = {

            "Content-Type": "application/json"

        }

        form_data = {

            "touser": "@all",

            "toparty": " PartyID1 | PartyID2 ",

            "totag": " TagID1 | TagID2 ",

            "msgtype": "textcard",

            "agentid": 1000002,

            "textcard": {

                "title": "服务异常告警",

                "description": content,

                "url": "URL",

                "btntxt": "更多"

            },

            "safe": 0

        }

        rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)

        if rep.status_code != 200:

            print("request failed.")

            return

        return json.loads(rep.content)

然后就可以通过 send_msg 函数发送消息了。

1

2

3

4

wechat = WeChatPub()

now = datetime.datetime.now()

timenow = now.strftime('%Y年%m月%d日 %H:%M:%S')

wechat.send_msg(f"<div class=\"gray\">{timenow}</div> <div class=\"normal\">阿里云 cookie 已失效</div><div class=\"highlight\">请尽快更换新的 cookie</div>")

只要你的企业微信没有关闭通知的权限,那你的手机立马就会弹出这个告警信息。

简单几步就对接了企业微信,实现了手机的实时告警功能,推荐有企业微信的同学使用。

当然一定有更多,更好用的实现方法,我只是我选择了其中一种。

到此这篇关于Python实现发送警告通知到企业微信方法详解的文章就介绍到这了。

Python实现发送警告通知到企业微信方法详解相关推荐

  1. python headr方法_对Python发送带header的http请求方法详解

    简单的header import urllib2 request = urllib2.Request('http://example.com/') request.add_header('User-A ...

  2. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

  3. PyKivy入门教程:Kivy Python库的介绍、安装及使用方法详解

    PyKivy入门教程:Kivy Python库的介绍.安装及使用方法详解 Kivy是一个跨平台的Python GUI工具包,可以用于开发能够在多种设备和操作系统上运行的应用程序.Kivy支持触摸输入. ...

  4. python telnet线程锁_对python使用telnet实现弱密码登录的方法详解

    系统环境: 64位win7企业版 python2.7.10 2016.08.16修改内容: 1)read_until()函数是可以设置timeout的,之前不能获取到password之后的返回是因为调 ...

  5. python语言格式化输出_Python format()格式化输出方法详解

    原标题:Python format()格式化输出方法详解 format() 方法的语法格式如下: str.format(args) 此方法中,str 用于指定字符串的显示样式:args 用于指定要进行 ...

  6. python的底层实现_Python底层封装实现方法详解

    这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,python封装特性的实现纯属" ...

  7. python中backward_pytorch的梯度计算以及backward方法详解

    基础知识 tensors: tensor在pytorch里面是一个n维数组.我们可以通过指定参数reuqires_grad=True来建立一个反向传播图,从而能够计算梯度.在pytorch中一般叫做d ...

  8. python怎样实现封装_Python底层封装实现方法详解

    Python底层封装实现方法详解 这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,pyth ...

  9. python实现括号匹配算法_Python实现括号匹配方法详解

    这篇文章主要简介了python实现括号匹配方法详解,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 1.用一个栈[python中可以用List]就可 ...

最新文章

  1. 决策树分类Decision tree classifier
  2. 微软开源NAS算法Petridish,提高神经网络迁移能力
  3. 什么??听说Python要凉!
  4. cpu spectre 幽灵 漏洞 突破内存独立性限制 简介
  5. 电脑安装android2.0,电脑上怎么安装使用安卓系统
  6. LeetCode_每日一题今日份_410.分割数组的最大值
  7. Mongodb的集合插入一个字段
  8. jcmd_jcmd,大约JDK 11
  9. java多线程系类:JUC原子类:04之AtomicReference原子类
  10. 环境监测设备中,使用GPS模拟器测试TTFF和灵敏度的注意点
  11. winpe加载raid_winpe集成raid驱动~
  12. Mongo连接可视化工具Robo3T,以及Robo3T使用
  13. 【浏览器】谷歌浏览器自带翻译失效
  14. 单片机基础知识学习笔记
  15. MATLAB运行cpp文件(从配置到运行)
  16. 【刷题篇】鹅厂文化衫问题
  17. 杭电1069 Monkey and Banana
  18. python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改
  19. window10 20H2安卓模拟器VT检测不到问题解决方法
  20. php免费虚拟商城系统,开发免费php开源商城系统的难处

热门文章

  1. 基于stm32单片机可燃气体温湿度监测自动通风排气系统
  2. Windows电脑系统锁屏界面壁纸如何获取
  3. BOOM!你的游戏手机突然出现
  4. kakaotalk Id别人突然搜索不到,加入开放聊天室被封 KakaoTalk 被封 Kakaotalk临时禁用Kakao被团队临时禁用 kakaoTalk无法连接服务器
  5. mathematica结果c语言形式,Mathematica表达式及其运算规则
  6. vue组件之this指向问题
  7. 2013 7 5新鲜出炉 Ubuntu12 04下载Android4 0 1源码全过程---------------
  8. MQTT与物联网平台(一):基础知识和设备接入物联网平台的实现(以华为云为例)
  9. 从5G落地看2020年科技产业投资机会
  10. MixMatch、UDA、ReMixMatch、FixMatch