微信公众号发送告警Python脚本
调用该脚本,可以向微信公众号发生告警。
#!/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脚本的更多相关文章
- php之微信公众号发送模板消息
讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0). 先看一下效果,如图: 就是类似于这样的,下面讲一下实现过程: 第一步:微信公众号申请模板消息权限: 立即申请: ...
- 树莓派与微信公众号对接(python)
一 内网穿透,让外网可以访问树莓派 二 树莓派对接微信 需要安装webpy和python-lxml git clonegit://github.com/webpy/webpy.git ln -s `p ...
- php之微信公众号发送模板消息参观模仿
上篇文章中鞋到了公众号发送末班消息,他是最后调用两个方法,本文章简化一下 将下面的php方法放到一个可以引入的公共类中即可 构建模板消息: 我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了 ...
- 微信公众号发送消息给用户 php
1.微信公众号 这里得话 一开始先去看了 微信公众号的接口 发现网页授权需要时认证的服务号,一开始想的是那去申请一个认证的服务号岂不是很费事,然后网上搜了搜,发现了还有微信公众号个人测试号这个东西,所 ...
- Python 微信公众号发送消息
1. 公众号测试地址 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 2. ...
- 微信公众号发送消息模板(java)
这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 public static JSONObject sendModelMessage(ServletContext context ...
- Python微信公众号开发
最近老大叫我学习开发微信,试着玩了下.网上查了下文档.有点过时. 简单步骤: 1)申请服务器并完成环境配置 去腾讯云购买云服务器.当然你也可以购买其他产品,比如阿里云.因为我是学生,有优惠110一年. ...
- 微信公众号token验证失败
我用的是python3+,而官网给的例子是python2的写法.问题就在python版本不同. 下面是截取官方的实例代码的一部分 list = [token, timestamp, nonce] li ...
- 个人微信公众号搭建Python实现 -接收和发送消息-基本说明与实现(14.2.1)
@ 目录 1.原理 2.接收普通消息 3.接收代码普通消息代码实现 1.原理 2.接收普通消息 其他消息类似参考官方文档 3.接收代码普通消息代码实现 from flask import Flask, ...
随机推荐
- python学习之模块-模块(五)
5.10 包 5.10.1 包的概念 [官网解释] Packages are a way of structuring Python's module namespace by using " ...
- 描述下什么是springcloud,springcloud中的组件有哪些?分别描述下它的原理?
1.什么是springcloud,springcloud中的组件有哪些? Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微服务:就是把 ...
- 【数字图像处理】Bilateral Filters
[数字图像处理]Bilateral Filters https://www.yuque.com/lart/idh721/bf 简单介绍 双边滤波是一种非线性的可以模糊图像并且能保留一定的边缘信息的技术 ...
- JS实现网页选取截屏 保存+打印 功能(转)
源码地址: 1.1 确定截图选取范围 用户在开始截图后,需要在页面上选取一个截图范围,并且可以直观的看到,类似如下效果: image 我们的选取范围就是鼠标开始按下的那个点到鼠标拖动然后松开的那个点之 ...
- poj2478(欧拉函数)
题目链接:https://vjudge.net/problem/POJ-2478 题意:给定n,输出集合中元素的数量,集合中的元素为最简小于1的分数,分子分母均属于[1,n-1]. 思路:理清题意后就 ...
- C#模态对话框和非模态对话框
模态对话框弹出窗口阻止调用窗口的所有消息响应.只有在弹出窗口结束后调用窗口才能继续.在模态窗口“关闭”后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态对话框可以在弹出窗口和调用 ...
- laravel框架之修改
//控制器層 public function update(request $request) { $id = $request->get('id'); $data = DB::select(& ...
- Python_2day
选择 布尔类型.数值和表达式 注意:比较运算符的相等是两个等号,一个等到代表赋值 在Python中可以用整型0来代表False,其他数字来代表True 后面还会讲到 is 在判断语句中的用发 In [ ...
- numpy-tile 数组复制
tile(A, reps):把数组A复制成新数组 # 把 矩阵 看做一个整体,第二个参数代表把 矩阵 复制 m*n 次 b = np.arange(1, 5).reshape(2, 2) print( ...
- wyy Downloader(当前置顶项目)
第一个大刀阔斧肝的 PY 项目,名称简称为 wyyDLer 公开 EXE 计划: 感觉程序应该是没什么可以完善的了,然后就顶雷([雾 ) 把 EXE 放上来好了 1.2版下载链接 应该不会出事把 Qv ...