使用Python通过企业微信应用给企业成员发消息


Posted in Python onApril 18, 2022

前言

常见的通知方式有:邮件,电话,短信,微信。短信和电话:通常是收费的,较少使用;邮件:适合带文件类型的通知,较正

式,存档使用;微信:适合告警类型通知,较方便。这里说的微信,是企业微信。

本文目的:通过企业微信应用给企业成员发消息。

如何实现企业微信通知?

1、新建应用

登陆网页版企业微信 (https://work.weixin.qq.com),点击 应用管理 → 应用 → 创建应用

使用Python通过企业微信应用给企业成员发消息

上传应用的 logo,输入应用名称(债券打新),再选择可见范围,成功创建一个告警应用

使用Python通过企业微信应用给企业成员发消息

2、获取Secret

使用 Python 发送告警请求,其实就只使用到两个接口:

获取 Token :

https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={secret}

发送请求:

https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}

可以看到,最重要的是 corpid 和 secret:

corpid:唯一标识你的企业

secret:应用级的密钥,有了它程序才知道你要发送该企业的哪个应用

corpid 可以通过 我的企业 → 企业信息 → 企业id 获取

使用Python通过企业微信应用给企业成员发消息

secret 可以通过 点击 新创建的应用(债券打新) → 查看 secret → 发送 来获取

使用Python通过企业微信应用给企业成员发消息

使用Python通过企业微信应用给企业成员发消息

最后将 corpid 和 secret 填入下面的常量中。

3、代码实现

import json
import time
import requests
'''
本文件主要实现通过企业微信应用给企业成员发消息

CORP_ID = "xxxx"
SECRET = "xxxx"

class WeChatPub:
    s = requests.session()

    def __init__(self):
        self.token = self.get_token()

    def get_token(self):
        url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}"
        rep = self.s.get(url)
        if rep.status_code != 200:
            print("request failed.")
            return
        return json.loads(rep.content)['access_token']

    def send_msg(self, content):
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + self.token
        header = {
            "Content-Type": "application/json"
        }
        form_data = {
            "touser": "FengXianMei",#接收人
            "toparty": "1",#接收部门
            "totag": " TagID1 | TagID2 ",#通讯录标签id
            "msgtype": "textcard",
            "agentid": 1000002,#应用ID
            "textcard": {
                "title": "债券打新提醒",
                "description": content,
                "url": "URL",
                "btntxt": "更多"
            },
            "safe": 0
        rep = self.s.post(url, data=json.dumps(form_data).encode('utf-8'), headers=header)
        return json.loads(rep.content)

if __name__ == "__main__":
    wechat = WeChatPub()
    timenow = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    wechat.send_msg(f"<div class=\"gray\">{timenow}</div> <div class=\"normal\">注意!</div><div class=\"highlight\">今日有新债,坚持打新!</div>")
    print('消息已发送!')

 

4、实现效果:

使用Python通过企业微信应用给企业成员发消息

使用Python通过企业微信应用给企业成员发消息

使用Python通过企业微信应用给企业成员发消息

结束

今天给大家分享的用Python实现企业微信通知的小案例到这里就给大家做出来了,千言万语,都不如自己都手操作来得实际。

到此这篇关于使用Python实现企业微信通知功能案例分析的文章就介绍到这了!

Python 相关文章推荐
python实现每次处理一个字符的三种方法
Oct 09 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
python 不以科学计数法输出的方法
Jul 16 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
Python多线程threading模块用法实例分析
May 22 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
Python如何输出警告信息
Jul 30 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 #Python
python在package下继续嵌套一个package
Apr 14 #Python
Github 使用python对copilot做些简单使用测试
使用Python拟合函数曲线
Apr 14 #Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
python中 .npy文件的读写操作实例
Apr 14 #Python
Python Matplotlib绘制等高线图与渐变色扇形图
You might like
PHP4实际应用经验篇(7)
2006/10/09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP 上传文件大小限制
2009/07/05 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】
2018/03/15 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
Python实现求数列和的方法示例
2018/01/12 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python 构造三维全零数组的方法
2018/11/12 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
医学院毕业生自荐信
2013/11/08 职场文书
生产副总岗位职责
2013/11/28 职场文书