tangbinde 发表于 2018-1-1 19:33:11

zabbix python 微信告警脚本

#!/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 = 'wx80179d3a3eb675c2'
  self.__secret = 'rf8zW7iF-VECQVwKGndrHzAkEqfcnmSXmhIGUHCKH24'
  

  # 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,subject,message):
  

  self.authID()
  

  data = json.dumps({
  'touser':touser,
  'msgtype':"news",
  'agentid':"1",
  'news':{
  "articles":[
  {
  "title": subject,
  "description":message,
  }
  ]
  },
  })
  

  response = self.postData(data)
  print response
  

  
if __name__ == '__main__':
  a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
  a.sendMessage(sys.argv,sys.argv,sys.argv)
页: [1]
查看完整版本: zabbix python 微信告警脚本