• Python


    一、概述

    本文将介绍如何使用python3给企业微信发送消息。我的环境是linux + python3.6.10。

    二、python脚本

    #!/root/.virtualenvs/wechat/bin/python
    # usage: send message via wechat
    
    import requests, sys, json
    import urllib3
    urllib3.disable_warnings()
    
    
    ###填写参数###
    
    # Corpid是企业号的标识
    Corpid = "ww34d7fed41a8d5dxx"
    
    # Secret是管理组凭证密钥
    Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"
    
    # 应用ID
    Agentid = "1000002"
    
    # token_config文件放置路径
    Token_config = r'/tmp/zabbix_wechat_config.json'
    
    ###下面的代码都不需要动###
    
    
    def GetTokenFromServer(Corpid, Secret):
        """获取access_token"""
        Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
        Data = {
            "corpid": Corpid,
            "corpsecret": Secret
        }
        r = requests.get(url=Url, params=Data, verify=False)
        print(r.json())
        if r.json()['errcode'] != 0:
            return False
        else:
            Token = r.json()['access_token']
            file = open(Token_config, 'w')
            file.write(r.text)
            file.close()
            return Token
    
    
    def SendMessage(Partyid, Subject, Content):
        """发送消息"""
        # 获取token信息
        try:
            file = open(Token_config, 'r')
            Token = json.load(file)['access_token']
            file.close()
        except:
            Token = GetTokenFromServer(Corpid, Secret)
    
        # 发送消息
        Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
        Data = {
            "toparty": Partyid,
            "msgtype": "text",
            "agentid": Agentid,
            "text": {"content": Subject + '
    ' + Content},
            "safe": "0"
        }
        r = requests.post(url=Url, data=json.dumps(Data), verify=False)
    
        # 如果发送失败,将重试三次
        n = 1
        while r.json()['errcode'] != 0 and n < 4:
            n = n + 1
            Token = GetTokenFromServer(Corpid, Secret)
            if Token:
                Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
                r = requests.post(url=Url, data=json.dumps(Data), verify=False)
                print(r.json())
    
        return r.json()
    
    
    if __name__ == '__main__':
        Partyid = str(sys.argv[1])
        Subject = str(sys.argv[2])
        Content = str(sys.argv[3])
        Status = SendMessage(Partyid, Subject, Content)
        print(Status)
    
    
    View Code

    需要修改的地方,其中Corpid,Secret,Agentid我会在后面的截图指出来要填的值。

    下行是linux环境下python3的可执行路径,如果是windows,那么这行就不需要,只要将python的路径加入到path即可
    #!/root/.virtualenvs/wechat/bin/python

    # Corpid是企业ID
    Corpid = "ww34d7fed41a8d5dxx" 

    # Secret是管理组凭证密钥                                                                  
    Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"   

    # Agentid是应用ID                                                           
    Agentid = "1000002"   

    # Token_config里面存放token信息,这个自己随便填就行,只要自己有写的权限 
    Token_config = r'/tmp/zabbix_wechat_config.json' 

    三、企业微信设置

    1. 注册企业微信

    https://qy.weixin.qq.com/

    1

    2. 点击进入管理后台

    创建应用

    2


    3

    3. 创建应用完成后

    Agentid,Secret就出来了

    4

    4. 查看企业id

    这个就是脚本中的Corpid

    5

    5. 查看部门id

    6

    我这个python脚本是通过部门id进行群体发送,所以这个部门id到后面会有用。

    四、测试脚本

    7

    五、总结

    脚本是在火星小刘的基础上改的,我是在linux环境下做的实验,windows下面跟这一样,其中微小的区别我在文章中已经标明。

  • 相关阅读:
    那些离不开的 Chrome 扩展插件
    Spring Boot 实战 —— 入门
    Maven 学习笔记
    Linux lvm 分区知识笔记
    Linux 双向 SSH 免密登录
    CentOS Yum 源搭建
    Ubuntu 系统学习
    iOS 测试三方 KIF 的那些事
    Swift 网络请求数据与解析
    iOS Plist 文件的 增 删 改
  • 原文地址:https://www.cnblogs.com/ddzj01/p/12185254.html
Copyright © 2020-2023  润新知