微信報(bào)警腳本

vim /usr/lib/zabbix/alertscripts/wechat.py

加粗字體需修改,寫完后更改屬主屬組,更改777權(quán)限

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import urllib,urllib2,json

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

class WeChat(object):

? ? ? ? __token_id = ''

? ? ? ? # init attribute

? ? ? ? def __init__(self,url):

? ? ? ? ? ? ? ? self.__url = url.rstrip('/')

? ? ? ? ? ? ? ? self.__corpid = 'wwa1da242f211cdf47'

? ? ? ? ? ? ? ? self.__secret = 'rIrN51FEjgW6T2bdmSaEoOIB5UbaBTgddQkuC8cca1w'

? ? ? ? # Get TokenID

? ? ? ? def authID(self):

? ? ? ? ? ? ? ? params = {'corpid':self.__corpid, 'corpsecret':self.__secret}

? ? ? ? ? ? ? ? data = urllib.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 = urllib2.Request(url + data)

? ? ? ? ? ? ? ? except KeyError:

? ? ? ? ? ? ? ? ? ? ? ? raise KeyError

? ? ? ? ? ? ? ? result = urllib2.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 = urllib2.Request(url,data)

? ? ? ? ? ? ? ? try:

? ? ? ? ? ? ? ? ? ? ? ? result = urllib2.urlopen(request)

? ? ? ? ? ? ? ? except urllib2.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,touser,message):

? ? ? ? ? ? ? ? self.authID()

? ? ? ? ? ? ? ? data = json.dumps({

? ? ? ? ? ? ? ? ? ? ? ? 'touser':touser,

? ? ? ? ? ? ? ? ? ? ? ? 'toparty':2,

? ? ? ? ? ? ? ? ? ? ? ? 'msgtype':"text",

? ? ? ? ? ? ? ? ? ? ? ? 'agentid':"1000002",

? ? ? ? ? ? ? ? ? ? ? ? 'text':{

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'content':message

? ? ? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? ? ? 'safe':"0"

? ? ? ? ? ? ? ? },ensure_ascii=False)

? ? ? ? ? ? ? ? response = self.postData(data)

? ? ? ? ? ? ? ? print response

if __name__ == '__main__':

? ? ? ? a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')

? ? ? ? a.sendMessage(sys.argv[1],sys.argv[3])

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先創(chuàng)建服務(wù)端的APP 1.官網(wǎng)下載Winrun4j。http://winrun4j.sourceforge.net...
    Alex_1799閱讀 2,095評論 1 2
  • 1、開啟公眾號開發(fā)者模式 公眾平臺的技術(shù)文檔目的為了簡明扼要的交代接口的使用,語句難免苦澀難懂,甚至對于不同的讀者...
    good7758閱讀 1,663評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 情海變幻莫測,情可載舟,亦可覆舟,可是請問誰又愿置身于一池死水之中,永無波瀾?
    PersonalityAnne閱讀 268評論 0 0
  • 孩子告訴我:“媽媽,我作業(yè)寫完了,我們走吧”,我迅速合上電腦,幫女兒把自行車扛了出來。 看著女兒自己拿著抹布仔細(xì)著...
    倪淑清_0449閱讀 244評論 0 0

友情鏈接更多精彩內(nèi)容