美文网首页
微信企业号开发(一)

微信企业号开发(一)

作者: Medivh_ | 来源:发表于2017-03-28 11:29 被阅读324次

前言

有段时间要迁移zabbix,迁移之后就不太想使用原来的短信报警和email,每天收到一大堆短信或者邮件真的很烦,虽然不一定都是报警信息。后来看到有人使用微信报警,感觉这个不错,即及时,又不影响生活。
更多关注:http://www.mknight.cn/

微信企业号准备

微信企业号其实和公众号差不多,至少在我这个业余的人来说,两者都是面向用户的一种平台。但是企业号申请注册时候填写为团队,就可以省事很多,不用再提交一大堆资料,也不用申请什么认证之类的东西。


2、填写注册信息


3、新建用户用于测试信息,也可以把用户加入到分组或者标签。

4、新建应用


5、应用设置,权限等等

这里要记住应用ID,和可见范围,以后用的到,毕竟你要知道是给谁发信息,谁又是否有权限。

连接微信企业号

主动调用是最基本的连接模式,当你的应用调用企业号时,需使用Https协议、Json数据格式、UTF8编码,访问域名为https://qyapi.weixin.qq.com,数据包不需要加密
在每次主动调用企业号接口时需要带上AccessToken参数。AccessToken参数由CorpIDSecret换取。
CorpID是企业号的标识,每个企业号拥有一个唯一的CorpID;Secret是管理组凭证密钥。
系统管理员可通过管理端的权限管理功能创建管理组,分配管理组对应用、通讯录的访问权限。完成后,管理组即可获得唯一的secret。系统管理员可通过权限管理查看所有管理组的secret,其他管理员可通过设置中的开发者凭据查看。
当企业应用调用企业号接口时,企业号后台为根据此次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以返回相应的结果。

获取AccessToken

AccessToken是企业号的全局唯一票据,调用接口时需携带AccessToken。
AccessToken需要用CorpIDSecret来换取,不同的Secret会返回不同的AccessToken。

请求说明:

请求参数:

import json
from urllib import request,parse
from urllib.error import  HTTPError

class WeChat(object):
    __token_id = ''

    # init attribute
    def __init__(self, url):
        self.__url = url.rstrip('/')
        self.__corpid = 'wxxxxxxxxxx'
        self.__secret = '_2Dxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    # Establish a connection
    def getToken(self, data, url_prefix='/'):
        #拼接URL
        url = self.__url + url_prefix + 'gettoken?'
        print('url',url)
        try:
            response = request.Request(url + data)
        except KeyError:
            raise KeyError
        result = request.urlopen(response)
        #对数据解码
        content = json.loads(result.read().decode('utf-8'))
        print('建立连接', content)
        return content
    # Get TokenID
    def authID(self):
        params = {'corpid': self.__corpid, 'corpsecret': self.__secret}
        #对ID和secret进行编码,注意Python2和Python3的方式是不一样的
        data = parse.urlencode(params)
        content = self.getToken(data)
        print('con',content)

        try:
            self.__token_id = content['access_token']
            print('token', content['access_token'])
        except KeyError:
            raise KeyError
    # Get sendmessage,url
    def postData(self, data, url_prefix='/'):
        #拼接URL
        url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_id
        print(url, self.__token_id)
        data = data.encode('utf-8')
        try:
            res = request.urlopen(url, data)
        except 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(res.read().decode('utf-8'))
            res.close()
        return content

    # send message
    def sendMessage(self, touser, subject, content):

        self.authID()
        data = json.dumps({
            #接收者,也可以是部门或者标签
            'touser': touser,
            #发送数据类型,也可以为图片等等
            'msgtype': "text",
            #应用ID
            'agentid': "1",
            #文本内容,可以拼接subject和content
            'text': {
                'content': subject + '\n' + content
            },
            'safe': "0"
        }, ensure_ascii=False)

        response = self.postData(data)
if __name__ == '__main__':
    #初始化
    a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')
    # a.sendMessage(sys.argv[1],sys.argv[2],sys.argv[3]) 用户,主题,信息
    msm = '试试能不能发消息'
    project = "Test"
    a.sendMessage('hahah', project, msm)

这段代码很容易理解,初始化类的时候,首先执行getToken,获取token后传入authID进行验证。之后再执行sendMessage准备好要提交的数据,最后再用postData提交就结束啦。


现在既然可以做到通过企业号发信息,那么接下来的使用zabbix也必定简单多了,当然还有别的用途,比如定时发个笑话啦,天气预报啦等等。

更多关注:http://www.mknight.cn/

相关文章

  • 微信公众号开发:微信服务号和订阅号的区别!

    微信开发又称微信公众平台开发、或微信公众号开发,分为微信服务号、微信订阅号、以及微信企业号,其中服务号和订阅号是企...

  • 微信开发

    微信开发 公众号开发 微信WEB开发 JSSDK 小程序开发 公众号开发 公众号 订阅号 服务号 企业号 公众号开...

  • 微信企业号开发(一)

    前言 有段时间要迁移zabbix,迁移之后就不太想使用原来的短信报警和email,每天收到一大堆短信或者邮件真的很...

  • 微信企业号开发

    1.个人以企业名义申请企业号账号为超级管理员 2.超级管理员可添加多个管理员,管理员关注此企业号可进行开发测试 3...

  • 杭州微信开发|微信公众号开发一般需要多少钱?

    在移动互联网时代,微信公众号开发对企业来说,是由传统企业向智能企业过度的桥梁。一般微信公众号开发功能性比较完善,可...

  • 一款微信公众号开发需要多少钱?

    长沙微信公众号开发网开亿面表示:在移动互联网时代,微信公众号开发对传统企业而言,是传统企业向智能企业改革的桥梁。然...

  • 微信公众号开发入门

    微信公众号开发简介 微信分为几个不同的号,为订阅号、服务号、企业号,其中订阅号是免费的,服务号和企业号是要mone...

  • 微信公众号开发-入门篇

    微信公众号分为三种类型: 订阅号; 服务号; 企业号;想要进行微信公众号的开发,必须熟悉一门后台开发语言,如jav...

  • 公众号开发需选对软件开发商

    微信公众号可作为企业强大引流的渠道,无论大小企业还是个体工商户都在抢着开发微信功能。那么,在找微信开发商进行开发的...

  • 2015年中旬阶段性总结

    一、企业需要什么? 场景应用的接口,微信公众号,微信企业号,云来。 内容放什么?第三方的在开发,开发后,内容和该放...

网友评论

      本文标题:微信企业号开发(一)

      本文链接:https://www.haomeiwen.com/subject/cgfjottx.html