调用该脚本,可以向微信公众号发生告警。

#!/bin/env python
#coding:utf-8
#Author: Hogan
#Descript : 微信公众号发送告警脚本 import urllib.request,json
import sys
from optparse import OptionParser # 更改为自己公众号参数
corpid = 'xxxx'
secret = 'xxxx'
toparty = ''
agentid = '' class WeChat(object):
__token_id = ''
# init attribute
def __init__(self,url):
self.__url = url.rstrip('/')
self.__corpid = corpid
self.__secret = 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('UTF-8'))
try:
result = urllib.request.urlopen(request)
except urllib.request.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,title,content): self.authID() data = json.dumps({
'touser':"@all",
'toparty':toparty,
'msgtype':"text",
'agentid':agentid,
'text':{
"content": "Title: {0}\n Content: {1}".format(title, content)
},
'safe':""
},ensure_ascii=False) response = self.postData(data)
print (response) if __name__ == '__main__':
a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
title, content = sys.argv[1], sys.argv[2]
parser = OptionParser()
parser.add_option("-t", "--title", dest="title", default=title, )
parser.add_option("-c", "--content", dest="content", default=content, )
(options, args) = parser.parse_args() a.sendMessage(options.title,options.content)

微信公众号发送告警Python脚本的更多相关文章

  1. php之微信公众号发送模板消息

    讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0). 先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: ...

  2. 树莓派与微信公众号对接(python)

    一 内网穿透,让外网可以访问树莓派 二 树莓派对接微信 需要安装webpy和python-lxml git clonegit://github.com/webpy/webpy.git ln -s `p ...

  3. php之微信公众号发送模板消息参观模仿

    上篇文章中鞋到了公众号发送末班消息,他是最后调用两个方法,本文章简化一下 将下面的php方法放到一个可以引入的公共类中即可 构建模板消息: 我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了 ...

  4. 微信公众号发送消息给用户 php

    1.微信公众号 这里得话 一开始先去看了 微信公众号的接口 发现网页授权需要时认证的服务号,一开始想的是那去申请一个认证的服务号岂不是很费事,然后网上搜了搜,发现了还有微信公众号个人测试号这个东西,所 ...

  5. Python 微信公众号发送消息

    1. 公众号测试地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 2. ...

  6. 微信公众号发送消息模板(java)

    这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 public static JSONObject sendModelMessage(ServletContext context ...

  7. Python微信公众号开发

    最近老大叫我学习开发微信,试着玩了下.网上查了下文档.有点过时. 简单步骤: 1)申请服务器并完成环境配置 去腾讯云购买云服务器.当然你也可以购买其他产品,比如阿里云.因为我是学生,有优惠110一年. ...

  8. 微信公众号token验证失败

    我用的是python3+,而官网给的例子是python2的写法.问题就在python版本不同. 下面是截取官方的实例代码的一部分 list = [token, timestamp, nonce] li ...

  9. 个人微信公众号搭建Python实现 -接收和发送消息-基本说明与实现(14.2.1)

    @ 目录 1.原理 2.接收普通消息 3.接收代码普通消息代码实现 1.原理 2.接收普通消息 其他消息类似参考官方文档 3.接收代码普通消息代码实现 from flask import Flask, ...

随机推荐

  1. tensorflow-2.0 技巧 | ImageNet 归一化

    _MEAN_RGB = [123.15, 115.90, 103.06] def _preprocess_subtract_imagenet_mean(inputs): ""&qu ...

  2. 关于Docx动态控制word模板文件的数据

    博客:https://www.cnblogs.com/24klr/ github: https://github.com/luoruiemail/Dynamic_Word_Web 参考资料:https ...

  3. AJAX得基本使用

    直接上案例:

  4. linux c++ 实现http请求

    main.cpp #include HttpReq.h #include <string.h> int main(void) { HttpRequest* Http; char http_ ...

  5. POJ 2955 Brackets 区间DP 入门

    dp[i][j]代表i->j区间内最多的合法括号数 if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']') dp[i][j] ...

  6. Windows7下Pycharm安装Keras

    1.安装Anaconda3 2.安装Pycharm 3.安装TensorFlow 一.File -> Settings -> Install 二.搜索TensorFlow -> In ...

  7. 删除项目中所有的__pycache__ 文件

    关于 pycache 当第一次运行 python 脚本时,解释器会将 *.py 脚本进行编译并保存到 __pycache__ 目录 下次执行脚本时,若解释器发现你的 *.py 脚本没有变更,便会跳过编 ...

  8. Redis【3】其他部分~

    Java连接VMware的Redis:ping()返回PONG 要可以ping通VMware地址 端口号要正确.默认6379 VMware中的防火墙原因.需添加6379端口号的防火墙: vim /et ...

  9. wpf Textbox 回车就换行

    将 TextWrapping 属性设置为 Wrap 会导致输入的文本在到达 TextBox 控件的边缘时换至新行,必要时会自动扩展 TextBox 控件以便为新行留出空间. 将 AcceptsRetu ...

  10. spring boot基础学习教程

    Spring boot 标签(空格分隔): springboot HelloWorld 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新 ...