图片 12

Wechat告急,python微信徒人平台公司号用于监察和控制告急商量

图片 1

1.民众号,大伙儿号接纳模板音讯方可给客户发送10w调天天的新闻2.商铺号,给职员和工人无界定的发送音信:

Tips:小编已咨询过Wechat客服,天天集团Wechat号告急上限为 30 x 200 =
6000条,常常情状下,已满足zabbix的告急必要

厂商Wechat收到到zabbix告急音信标题点击更多前边世布局的动作如下报告急察方媒介中的脚本参数如下脚本代码#!/usr/bin/python#-*-coding:utf-8-*-#zabbixnotificationconfirmationscript#python2.7oraboveimportrequestsimportjsonimportosimportsysToparty=”1″#部门idAgentID=1#应用id#订正为合作社CropID和SecretCropID=’1’Secret=’1’#获取TokenGtoken=””+Secretheaders={‘Content-Type’:’application/json’}json_data=json.loads(requests.get(Gtoken).content.decode())token=json_data[“access_token”]#信息发送接卿Purl=”_token=”+token#新闻发送函擿defmsg(title,message卡塔尔(قطر‎:weixin_msg={“toparty”:Toparty,”msgtype”:”textcard”,”agentid”:AgentID,”textcard”:{“title”:title,”description”:message,”url”:””,”btntxt”:”更多”}}printrequests.post(Purl,json.dumps(weixin_msg),headers=headers)if__name__==’__main__’:title=sys.argv[1]#获得第八个参擿message=sys.argv[2]#得到第一个参擿msg(title,message卡塔尔国

商家号的效用:

生龙活虎、Wechat集团公众号

地址:https://work.weixin.qq.com/

1、注册商铺微信

图片 2


2、配置集团微信

那边注意要记录CorpID

图片 3


3、增添机关和分子

图片 4

图片 5

图片 6

那边注意增添的积极分子中的账号,即为zabbix告急user的media中send to的账号


4、创造公司应用

图片 7


5、配置自行建造应用

图片 8

其间可以知道范围可安装为某个成员,也许有些部门


6、关切Wechat插件,方便选拔告急音讯

图片 9


供销社号适用于公司与职员和工人或上上游供应链之间的牵连。

此刻酌量职业已造成,请保管以下几点

1、公司Wechat号

2、Wechat号已被相关人口关爱

3、已开立好能够发送消息的公司应用,叁个授权管理员,还不错应用给成员推送音讯

4、须求记录的剧情:CorpID、应用的Secret和AgentID

1、集团得以主动发消息给职工,音信量不受限定。

二、zabbix server端配置Wechat告急

此处有两个小tip,若zabbix-server版本≤3.4.x,Wechat告急脚本配置在
${zabbixdir}/alertscripts/,zabbix3.4.x则将Wechat告警脚本放在${zabbixdir}/externalscripts/下,并在意脚本的属主

1、告急脚本:wechat.py

#!/usr/bin/python

#_*_coding:utf-8 _*_

import urllib,urllib2

import json

import sys

import simplejson

reload(sys)

sys.setdefaultencoding(‘utf-8’)

def gettoken(corpid,corpsecret):

    gettoken_url =
‘https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=’;

  • corpid + ‘&corpsecret=’ + corpsecret

    print  gettoken_url

    try:

        token_file = urllib2.urlopen(gettoken_url)

    except urllib2.HTTPError as e:

        print e.code

        print e.read().decode(“utf8”)

        sys.exit()

    token_data = token_file.read().decode(‘utf-8’)

    token_json = json.loads(token_data)

    token_json.keys()

    token = token_json[‘access_token’]

    return token

def senddata(access_token,user,subject,content):

    send_url =
‘https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=’;

  • access_token

    send_values = {

        “touser”:
user,#合营社号中的顾客帐号,在zabbix客商Media中配备,借使布置不正规,将按部门发送。

        “toparty”:”3″,    #商店号中的部门id。

        “msgtype”:”text”, #信息类型。

        “agentid”:”1000007″,    #信用合作社号中的应用id。

        “text” : {

        “content” : subject + ‘nn’ + content

        },

        “safe”:0

     }

#    send_data = json.dumps(send_values, ensure_ascii=False)

        #print user

        send_data = simplejson.dumps(send_values,
ensure_ascii=False).encode(‘utf-8’)

        send_request = urllib2.Request(send_url, send_data)

        response = json.loads(urllib2.urlopen(send_request).read())

        print str(response)

if __name__ == ‘__main__’:

    user = str(sys.argv[1])     #zabbix传过来的率先个参数

    subject = str(sys.argv[2])  #zabbix传过来的第三个参数

    content = str(sys.argv[3])  #zabbix传过来的第八个参数

    corpid =  ‘xxxxxx’   #CorpID是百货店号的标志

    corpsecret = ‘xxxxxx’  #corpsecretSecret是管理组凭证密钥

    accesstoken = gettoken(corpid,corpsecret)

    senddata(accesstoken,user,subject,content)

执行py脚本,实行测验:

./wechat.py user subject content

图片 10

2、zabbix dashboard配置

① 配置media types

图片 11


② 用户media配置

图片 12


③ action配置

Action-Trigger 的operation配置中的send only to接受all只怕wechat.py就能够


2、公司号出今后Wechat会话列表首层,在通信录中有单独的分类。

现今,zabbix接入Wechat告急已到位,希望对大家持有利于!

3、可以自定桐花菜单。

4、具备多少个子号。

5、越发关怀与酒泉,必要相互认证。

用作叁个偏执性精神障碍控,那一定得用企业号啊,这里须求CEO的帮助,集团号不是和煦能报名的,辛亏笔者COO三思后行,已经申请好了。(嘻嘻,希望首席营业官能收看)

扫描二维码举办登入:https://qy.weixin.qq.com/

登陆以往新建应用:

输入应用名称为监察告急就新建了三个称作监察和控制告急的行使,新建实现后翻看应用id,
这里前边要用。

设置管理员:

点名应用的管理人。点击设置-> 权限管理 -> 管理 -> 新建管理组
–> 增多管理员和权限。然后就能够拿走corpid 和 sceret。这里前面也要用。

开发

1、阅读开辟文书档案。文书档案地点:Wechat支付文书档案

自个儿只读了树立连接、管理通信录、发送消息。好了,发个报告急察方够了,很简短。

2、建设构造连接获取access_token。

那几个token是二个有实用时间的密钥用于后续操作认证。

Https诉求格局: GET

正规情形下就能够报告三个json并收获access_token

依照文档获取玩access_token后就足以发送新闻了。

 

自个儿写的台本代码如下:

#!/usr/bin/env python
# coding:utf-8
import sys
import urllib2
import time
import json
import requests

reload(sys)
sys.setdefaultencoding(‘utf-8’)

title = sys.argv[2]   # 地点参数获取title 适用于zabbix
content = sys.argv[3] # 地点参数获取content 适用于zabbix

class Token(object):
    # 获取token
    def __init__(self, corpid, corpsecret):
        self.baseurl =

            corpid, corpsecret)
        self.expire_time = sys.maxint

    def get_token(self):
        if self.expire_time > time.time():
            request = urllib2.Request(self.baseurl)
            response = urllib2.urlopen(request)
            ret = response.read().strip()
            ret = json.loads(ret)
            if ‘errcode’ in ret.keys():
                print >> ret[‘errmsg’], sys.stderr
                sys.exit(1)
            self.expire_time = time.time() + ret[‘expires_in’]
            self.access_token = ret[‘access_token’]
        return self.access_token

def send_msg(title, content):
    # 发送消息
    corpid = “”  # 填写本人使用的
    corpsecret = “” # 填写本人使用的
    qs_token = Token(corpid=corpid,
corpsecret=corpsecret).get_token()
    url =

        qs_token)
    payload = {
        “touser”: “user1|user2”,
        “msgtype”: “text”,
        “agentid”: “3”,
        “text”: {
                   “content”: “标题:{0}n 内容:{1}”.format(title,
content)

        },
        “safe”: “0”
    }
    ret = requests.post(url, data=json.dumps(payload,
ensure_ascii=False))
    print ret.json()

if __name__ == ‘__main__’:
    # print title, content
    send_msg(title, content)

发表评论