使用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处理PHP数组文本文件实例
Sep 18 Python
跟老齐学Python之大话题小函数(2)
Oct 10 Python
python MySQLdb使用教程详解
Mar 20 Python
如何使用Python进行OCR识别图片中的文字
Apr 01 Python
Python button选取本地图片并显示的实例
Jun 13 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
Django获取应用下的所有models的例子
Aug 30 Python
pytorch+lstm实现的pos示例
Jan 14 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
使用Python封装excel操作指南
Jan 29 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 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
测试php函数的方法
2013/11/13 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php异常处理捕获错误整理
2019/09/23 PHP
php源码的安装方法和实例
2019/09/26 PHP
jqGrid随窗口大小变化自适应大小的示例代码
2013/12/28 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
Jquery动态列功能完整实例
2019/08/30 jQuery
解决layer.prompt无效的问题
2019/09/24 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
js实现验证码功能
2020/07/24 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
python3 线性回归验证方法
2019/07/09 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
为什么要用EJB
2014/04/17 面试题
接受捐赠答谢词
2014/01/27 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
四群教育工作实施方案
2014/03/26 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
python 多态 协议 鸭子类型详解
2021/11/27 Python