• 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下面跟这一样,其中微小的区别我在文章中已经标明。

  • 相关阅读:
    ABAP学习(10):ALV显示之function alv
    ABAP学习(11):ALV显示之OO ALV使用示例
    ABAP学习(3):屏幕显示
    ABAP学习(6):ABAP GUI和开发工具
    ABAP学习(9):时间日期操作
    ABAP学习(8):操作EXCEL
    ABAP学习(2):控制语句
    ABAP学习(5):数据库语句
    ABAP学习(4):内表
    编程经验:高性能.NET WEB开发(1)http压缩
  • 原文地址:https://www.cnblogs.com/ddzj01/p/12185254.html
Copyright © 2020-2023  润新知