使用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通过yield实现数组全排列的方法
Mar 18 Python
Python编写百度贴吧的简单爬虫
Apr 02 Python
Python计算字符宽度的方法
Jun 14 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
深入了解python中元类的相关知识
Aug 29 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
python剪切视频与合并视频的实现
Mar 03 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 Python
python垃圾回收机制原理分析
Apr 13 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与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
一个数据采集类
2007/02/14 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
网页javascript精华代码集
2007/01/24 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
JS异步函数队列功能实例分析
2017/11/28 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
简单的python协同过滤程序实例代码
2018/01/31 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python判断变量是否为列表的方法
2020/09/17 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
求职自荐书范文
2013/12/04 职场文书
函授教育个人学习的自我评价
2013/12/31 职场文书
项目建议书怎么写
2014/05/15 职场文书
大学生毕业评语
2014/12/31 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
redis 查看所有的key方式
2021/05/07 Redis