运维业务报警微信接口开发(基于微信企业号)

原文引用 大专栏  https://www.dazhuanlan.com/2019/08/19/5d5a50f6252eb/

当前业务场景中,如有需要及时处理的事务,通常结合邮件和qq弹窗提醒负责人。现在我们考虑多一种通知方式,以应对无法使用pc端qq时的紧急事务处理。经过查找,现在暂时锁定微信企业号。

微信企业号是微信公众号一种,另外两种分别是服务号和订阅号。类型不同,定位也不同。目前看来,微信企业号是比较适合当前需求的。比如发消息的自由度高,有组织结构和权限管理等。官方网站看这里

公众号管理

申请

在选择公众号类型的时候点击企业号,团体为团队即可。其余略

组织结构

  1. 在管理后台通讯录->组织结构处编辑部门信息和成员信息。类似这样

只有添加了成员信息,对应的微信用户才能够关注本企业号
成员信息中,帐号一栏建议填写员工企业邮箱地址或者员工工号(唯一且不能更改)

  1. 在管理后台设置->基本信息处获取企业号二维码,发送给用户进行关注。

应用管理

管理后台->应用中心->我的应用添加一个消息型应用,选择可见范围必须包括目标账户所在部门

发送消息

管理后台->发消息选择刚才创建的应用,发送给指定账户即可。

接口开发

  1. 管理后台->设置->功能设置->权限管理里新建一个管理组,使其拥有获取目标组的查看权限,已经刚刚创建的应用发消息和管理权限。记住该管理组的CorpIDSecret

  2. 复制下面代码到一个python文档,替换掉CorpIDSecret和消息内容。

注意:data变量里, agent_id为刚刚创建的应用id(可在web页面看到),toparty即为目标部门,或者可以用touser,totag指定目标账户

#coding:utf-8
import sys
import requests
import json

reload(sys)
sys.setdefaultencoding('utf-8')

class Weixin(object):

    def __init__(self, corp_id, corp_secret):
        self.token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' %(corp_id, corp_secret)
        self.send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='

    def get_token(self):
        try:
            r = requests.get(self.token_url, timeout=10)
        except Exception as e:
            print e
            sys.exit(1)
        if r.status_code == requests.codes.ok:
            data = r.json()
            if data.get('errcode'):
                print data['errmsg']
                sys.exit(1)
            return data['access_token']
        else:
            print r.status_code
            sys.exit(1)

    def send(self,message):
        url = self.send_url + self.get_token()
        data = {
           "touser": "USERNAME",
           "msgtype": "text",
           "agentid": "AGENTID",
           "text": {
               "content": message
           },
           "safe":"0"
        }
        send_data = json.dumps(data,ensure_ascii=False)
        try:
            r = requests.post(url, send_data)
        except Exception, e:
            print e
            sys.exit(1)
        if r.status_code == requests.codes.ok:
            print r.json()
        else:
            print r.code
            sys.exit(1)

corpid = 'CORPID'
corpsecret = 'CORPSECRET'
msg ="提醒测试"

w = Weixin(corpid,corpsecret)
w.send(msg)

更多文档请看这里

猜你喜欢

转载自www.cnblogs.com/petewell/p/11417837.html