使用python3给企业微信发送消息

一、概述

本文将介绍如何使用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 + ‘\n‘ + 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)

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

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

# Corpid是企业号的标识
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/

2. 点击进入管理后台

创建应用

3. 创建应用完成后

Agentid,Secret就出来了

4. 查看企业id

5. 查看部门id

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

四、测试脚本

五、总结

脚本是在火星小刘的基础上改的

原文地址:https://www.cnblogs.com/ddzj01/p/12185254.html

时间: 2024-10-09 01:15:08

使用python3给企业微信发送消息的相关文章

python实现通过企业微信发送消息

实现了通过企业微信发送消息,平时用于运维的告警还是不错的,相对于邮件来说,实时性更高,不过就是企业微信比较麻烦,此处不做过多解释. 企业微信api的详细请看:http://work.weixin.qq.com/api/doc#10167 话不多说,直接代码 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 # @Time : 2018/4/25 17:06 5 # @Author : zms 6 # @Site : 7 # @File :

配置 ZABBIX 使用企业微信发送 Alert 消息

成功的从企业微信中收到的 Alert 消息的样子: Oracle 日志 Alert: 网络专线 Alert: 服务器 Alert: Linux 命令行使用方法: ./workweixin_send.php Usage: workweixin_send.php.php <username> <title> <content> ./workweixin_send.php <这里填写企业个人微信ID> hi 这是一条测试的企业微信消息 Windows 命令行使用方

用企业微信发送告警

1.遇到的坑 {"errcode":40001,"errmsg":"invalid credential, hint: [1507881186_cb1093c9bcaedaf108b7ce2ea10f2d38]"} 40001 不合法的secret参数 secret在应用详情/通讯录管理助手可查看 排查secret的取值也没有错啊.就郁闷了. 最后发现问题:是corpid写错了.把企业id写成了应用id. 因为“全局错误码”里没有提到corpid

zabbix使用企业微信发消息

注册一个企业微信,https://work.weixin.qq.com/ 接收消息有2种方式,一是用企业微信,二是用个人微信(需要关注企业号,需要登录扫描下图邀请关注的二维码): 官方api说明 地址:https://work.weixin.qq.com/api/doc#10167 过程 一:创建自建应用「报警」,然后用公司corpid和企业应用secret获取token,https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid&co

Python3 使用企业微信 API 发送消息

#coding=utf-8 import requests import json Secret = "TUbfeW8nFQakwOS4czm13SCnxSUPOqY2K0XHtM8XLT34" corpid = 'wwfe776a5bc7b90190a' url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={}&corpsecret={}' getr = requests.get(url=url.format(

微信发送消息后显示该公共号暂时无法提供服务,请稍后再试!

用户发送信息,公众账号会提示"该公众号暂时无法提供服务,请稍后再试".遇到这个问题,我们可以排除一下是否我们返回的数据有问题. 首先代码返回一个空的字符串,如果还是出现这样的提示,请看看签名验证是否失败,调试一下,看看log.     如果没有出现这样的提示,说明我们返回的结果格式有问题. 下面参考一下我返回的错误格式: <xml> <toUserName><![CDATA[o_ZKtuBGHyFi2YcpSKlugRAomGrU]]></to

zabbix微信发送消息脚本

cat /usr/local/zabbix/share/zabbix/alertscripts/sed_messages_weixin.py python2.x#!/usr/bin/env python # _*_ coding: utf-8 _*_ # author:chenjianwen # email:[email protected] import sys import urllib2 import json import requests corpid = 'xxxx' #企业微信号i

微信发送通知消息 thinkphp

函数核心部分,注意引用了 import ( "ORG.Util.ThinkWechat" ); //函数 //微信发送消息提醒 /* * 账单ID $bill_id * 收件人 $openid * 内容 $content * 类型 $type 1还款提醒 2逾期还款通知 3还款成功通知 */ function send_wxsms($bill_id,$openid,$content,$url='',$type){ //开始发送消息模板通知 define("APPID"

python发送微信及企业微信消息

1.发送微信消息 直接使用第三方库 itchat,其文档中有详细使用方式:https://itchat.readthedocs.io/zh/latest/ 如下实例为 发送群聊信息 # -*- coding: utf-8 -*- # (C) Guangcai Ren, 2019 # All rights reserved import logging import itchat log = logging.getLogger(__name__) # itchat 微信官方教程:https://i