Python书签 # 实现用企业微信机器人发送消息(文本消息、图文消息、Markdown消息)

本文主要是介绍Python书签 # 实现用企业微信机器人发送消息(文本消息、图文消息、Markdown消息),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在终端某个群组添加机器人之后,可以获取到 webhook 地址,然后我们按以下说明构造 post data,向这个地址发起 HTTP POST  请求,就可以实现给该群组发送消息。

假设我们在群组里添加机器人后获取的 webhook 是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c(这个需要自己在群组里创建企业微信机器人之后,从 webhook 中摘取并替换)。

 

1. 文本类型消息

1.1. 通过企业微信机器人发送文本类型消息

import requests
import jsonclass WXWork_SMS :# 文本类型消息def send_msg_txt(self) :headers = {"Content-Type" : "text/plain"}send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"send_data = {"msgtype": "text",  # 消息类型,此时固定为text"text": {"content": "上海今日天气:32度,大部分多云,降雨概率:10%",  # 文本内容,最长不超过2048个字节,必须是utf8编码"mentioned_list":["@all"],  # userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list"mentioned_mobile_list":["@all"]  # 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人}}res = requests.post(url = send_url, headers = headers, json = send_data)print(res.text)if __name__ == '__main__' :sms = WXWork_SMS()sms.send_msg_txt()

1.2. 参数说明

参数必须说明
msgtypetrue消息类型,此时固定为text
contenttrue文本内容,最长不超过2048个字节,必须是utf8编码
mentioned_listfalseuserid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
mentioned_mobile_listfalse手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人

1.3. 发送结果

Python - 企业微信机器人 - 文本类型消息
【Python企业微信机器人发送文本类型消息】

 

2. Markdown类型消息

2.1. 通过企业微信机器人发送 Markdown 类型消息

import requests
import jsonclass WXWork_SMS :# Markdown类型消息def send_msg_markdown(self) :headers = {"Content-Type" : "text/plain"}send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"send_data = {"msgtype": "markdown",  # 消息类型,此时固定为markdown"markdown": {"content": "# **提醒!实时新增用户反馈**<font color=\"warning\">**123例**</font>\n" +  # 标题 (支持1至6级标题,注意#与文字中间要有空格)"#### **请相关同事注意,及时跟进!**\n" +  # 加粗:**需要加粗的字**"> 类型:<font color=\"info\">用户反馈</font> \n" +  # 引用:> 需要引用的文字"> 普通用户反馈:<font color=\"warning\">117例</font> \n" +  # 字体颜色(只支持3种内置颜色)"> VIP用户反馈:<font color=\"warning\">6例</font>"  # 绿色:info、灰色:comment、橙红:warning}}res = requests.post(url = send_url, headers = headers, json = send_data)print(res.text)if __name__ == '__main__' :sms = WXWork_SMS()# Markdown类型消息sms.send_msg_markdown()

2.2. 参数说明

参数必须说明
msgtypetrue消息类型,此时固定为markdown
contenttruemarkdown内容,最长不超过4096个字节,必须是utf8编码

目前支持的 markdown 语法是如下的子集:

2.2.1.标题 (支持1至6级标题,注意#与文字中间要有空格)

# 标题一
## 标题二
### 标题三
#### 标题四
##### 标题五
###### 标题六

2.2.2.加粗

**bold**

2.2.3.链接

[这是一个链接](http://work.weixin.qq.com/api/doc)

2.2.4.行内代码段(暂不支持跨行)

`code`

2.2.5.引用

> 引用文字

2.2.6.字体颜色(只支持3种内置颜色)

<font color="info">绿色</font>
<font color="comment">灰色</font>
<font color="warning">橙红色</font>

2.3. 发送结果

Python - 企业微信机器人 - Markdown类型消息
【Python企业微信机器人Markdown类型消息】

 

3. 图文类型消息

3.1. 通过企业微信机器人发送图文类型消息

import requests
import jsonclass WXWork_SMS :# 图文类型消息def send_msg_txt_img(self) :headers = {"Content-Type" : "text/plain"}send_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=69e3bed5-a20e-45be-9999-e30c0398c16c"send_data = {"msgtype": "news",  # 消息类型,此时固定为news"news": {"articles" : [  # 图文消息,一个图文消息支持1到8条图文{"title" : "中秋节礼品领取",  # 标题,不超过128个字节,超过会自动截断"description" : "今年中秋节公司有豪礼相送",  # 描述,不超过512个字节,超过会自动截断"url" : "www.baidu.com",  # 点击后跳转的链接。"picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png" # 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。},{"title" : "我的CSDN - 魏风物语",  # 标题,不超过128个字节,超过会自动截断"description" : "坚持每天写一点点",  # 描述,不超过512个字节,超过会自动截断"url" : "https://blog.csdn.net/itanping",  # 点击后跳转的链接。"picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png" # 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。}]}}res = requests.post(url = send_url, headers = headers, json = send_data)print(res.text)if __name__ == '__main__' :sms = WXWork_SMS()# 图文类型消息sms.send_msg_txt_img()

3.2. 参数说明

参数必须说明
msgtypetrue消息类型,此时固定为news
articles图文消息,一个图文消息支持1到8条图文
title标题,不超过128个字节,超过会自动截断
description描述,不超过512个字节,超过会自动截断
url点击后跳转的链接。
picurl图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。

3.3. 发送结果

Python - 企业微信机器人 - 图文类型消息
【Python企业微信机器人图文类型消息】

 

 

 注意:

1.消息发送频率限制:每个机器人发送的消息不能超过20条/分钟

2.上述代码中的 send url 的 key 需要自己创建企业微信机器人之后,从 webhook 中摘取并替换


本例代码: https://download.csdn.net/download/itanping/11643509


 

这篇关于Python书签 # 实现用企业微信机器人发送消息(文本消息、图文消息、Markdown消息)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/835658

相关文章

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

如何在 Spring Boot 中实现 FreeMarker 模板

《如何在SpringBoot中实现FreeMarker模板》FreeMarker是一种功能强大、轻量级的模板引擎,用于在Java应用中生成动态文本输出(如HTML、XML、邮件内容等),本文... 目录什么是 FreeMarker 模板?在 Spring Boot 中实现 FreeMarker 模板1. 环

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删