zabbix微信发送消息脚本

cat /usr/local/zabbix/share/zabbix/alertscripts/sed_messages_weixin.py  python2.x#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# author:chenjianwen
# email:[email protected]

import sys
import urllib2
import json
import requests

corpid = ‘xxxx‘ #企业微信号id
corpsecret = ‘xxxx‘  ##应用secret
get_access_token_url = ‘https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s‘%(corpid,corpsecret)

def get_access_token(get_access_token_url):
    data = urllib2.urlopen(get_access_token_url).read().decode(‘utf-8‘)
    data = json.loads(data)
    #print data["access_token"]
    return data["access_token"]

def send_messages(touser,access_token,content):
    send_messages_url = ‘https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s‘%access_token
    data = {
           "touser" : touser,   #成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向该企业应用的全部成员发送
           "toparty" : "4", ##部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
           "totag" : "",    #标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
           "msgtype" : "text",  #消息类型,此时固定为:text
           "agentid" : 1000004,   #企业应用的id,整型。可在应用的设置页面查看
           "text" : {
               "content" : content  #消息内容,最长不超过2048个字节
           },
           "safe":0     #表示是否是保密消息,0表示否,1表示是,默认0
        }
    value = json.dumps(data)    ##转换为str格式

    request = requests.post(send_messages_url, data=value)  ##post请求发送数据
    request_result = request.status_code    ##获取请求码
    if request_result == 200:
        print "【%s】消息发送成功"%content
    else:
        print "【%s】消息发送失败"%content

if __name__ == ‘__main__‘:
    access_token = get_access_token(get_access_token_url)
    send_messages(sys.argv[1],access_token,sys.argv[3])

原文地址:https://www.cnblogs.com/chenjw-note/p/10936411.html

时间: 2024-10-16 19:05:44

zabbix微信发送消息脚本的相关文章

使用python3给企业微信发送消息

一.概述 本文将介绍如何使用python3给企业微信发送消息.我的环境是linux + python3.6.10. 二.python脚本 #!/root/.virtualenvs/wechat/bin/python # usage: send message via wechat import requests, sys, json import urllib3 urllib3.disable_warnings() ###填写参数### # Corpid是企业号的标识 Corpid = "ww3

python实现通过企业微信发送消息

实现了通过企业微信发送消息,平时用于运维的告警还是不错的,相对于邮件来说,实时性更高,不过就是企业微信比较麻烦,此处不做过多解释. 企业微信api的详细请看:http://work.weixin.qq.com/api/doc#10167 话不多说,直接代码 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 # @Time : 2018/4/25 17:06 5 # @Author : zms 6 # @Site : 7 # @File :

微信发送消息后显示该公共号暂时无法提供服务,请稍后再试!

用户发送信息,公众账号会提示"该公众号暂时无法提供服务,请稍后再试".遇到这个问题,我们可以排除一下是否我们返回的数据有问题. 首先代码返回一个空的字符串,如果还是出现这样的提示,请看看签名验证是否失败,调试一下,看看log.     如果没有出现这样的提示,说明我们返回的结果格式有问题. 下面参考一下我返回的错误格式: <xml> <toUserName><![CDATA[o_ZKtuBGHyFi2YcpSKlugRAomGrU]]></to

微信发送通知消息 thinkphp

函数核心部分,注意引用了 import ( "ORG.Util.ThinkWechat" ); //函数 //微信发送消息提醒 /* * 账单ID $bill_id * 收件人 $openid * 内容 $content * 类型 $type 1还款提醒 2逾期还款通知 3还款成功通知 */ function send_wxsms($bill_id,$openid,$content,$url='',$type){ //开始发送消息模板通知 define("APPID"

通过脚本发送zabbix微信报警

实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点 1.申请一个微信公众号(企业号) 申请方法不多说,如果已申请请忽略 2.在微信企业号上新建应用 上传应用logo,填写应用名称,应用介绍等 应用创建完之后查看并启用应用,同时会生成应用的AgentId以及Secret,这个在后面步骤会有用 3.接口调用测试 点击:API文档-->开发者工具-->接口调试工具,找不到就直接点这个地址 http://work.weixin.qq.c

配置 ZABBIX 使用企业微信发送 Alert 消息

成功的从企业微信中收到的 Alert 消息的样子: Oracle 日志 Alert: 网络专线 Alert: 服务器 Alert: Linux 命令行使用方法: ./workweixin_send.php Usage: workweixin_send.php.php <username> <title> <content> ./workweixin_send.php <这里填写企业个人微信ID> hi 这是一条测试的企业微信消息 Windows 命令行使用方

python与shell通过微信企业号发送消息

python与shell通过微信企业号发送信息,脚本来源于网络,做好搬运工,哈哈,相应的参考链接放在末位 shell版本: #!/bin/bash # CropID="xxxx" Secret="xxxxxx" GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" Gtoken=$(/usr/bin/curl -s -G

zabbix使用企业微信发消息

注册一个企业微信,https://work.weixin.qq.com/ 接收消息有2种方式,一是用企业微信,二是用个人微信(需要关注企业号,需要登录扫描下图邀请关注的二维码): 官方api说明 地址:https://work.weixin.qq.com/api/doc#10167 过程 一:创建自建应用「报警」,然后用公司corpid和企业应用secret获取token,https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&co

微信发送模板消息代码示例

最近一个微信的项目里需要发送微信模板消息给卖家或者供应商等,微信开发其实也就按照微信的官方接口要求组装起来即可,下面简单介绍一下我的微信模板发送代码. 1.获取access token,至于access token是什么,大家可以自行微信接口文档看一下,这边不多说 获取access token我这边主要是用定时器没大概2分钟获取一次,每天获取的次数是100000次,用法如下: 1 #region 2 3 using System; 4 using System.Timers; 5 6 #endr