news 2026/9/29 7:51:49

Python进阶:高效发送Markdown群消息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python进阶:高效发送Markdown群消息

Markdown 格式消息允许您在消息内容中嵌入格式化元素,如加粗、斜体、代码块、列表和链接,这对于发送格式化的通知、告警或简报非常有用。

1. Markdown 消息的数据结构

Markdown 消息的请求体结构与文本消息类似,但msgtype字段必须设置为"markdown",且内容放在markdown结构下的content字段中。

{ "chatid": "CHATID", "msgtype": "markdown", "markdown": { "content": "### 客户群通知\n> [!WARNING] 请注意以下信息。\n\n* **重点**:新功能已上线\n* [点击查看详情](https://link.com)" } }

2. Python 实现 Markdown 消息发送函数

我们将创建一个send_markdown_message函数,专注于构造 Markdown 内容,并使用requests发送。

import requests import json # 假设 send_text_message 和 get_access_token 已定义 SEND_MSG_URL = "https://qyapi.weixin.qq.com/cgi-bin/appchat/send" def send_markdown_message(access_token: str, chat_id: str, markdown_content: str) -> dict: """ 发送 Markdown 格式消息到指定的客户群。 :param access_token: 有效的 Access Token :param chat_id: 目标客户群 ID :param markdown_content: 遵循 Markdown 规范的文本内容 :return: API 响应字典 """ # 1. 构造请求体 (JSON 数据结构) payload = { "chatid": chat_id, "msgtype": "markdown", "markdown": { "content": markdown_content } } # 2. 构造完整的请求 URL request_url = f"{SEND_MSG_URL}?access_token={access_token}" print(f"尝试发送 Markdown 消息到群 {chat_id}...") try: # 3. 发起 POST 请求 (requests 自动处理序列化) response = requests.post(request_url, json=payload) response.raise_for_status() result = response.json() if result.get("errcode") == 0: print("Markdown 消息发送成功。") else: print(f"发送失败,错误码: {result.get('errcode')}, 错误信息: {result.get('errmsg')}") return result except requests.exceptions.RequestException as e: print(f"HTTP 请求异常: {e}") return {"errcode": -1, "errmsg": str(e)} # 演示调用 if __name__ == "__main__": MOCK_TOKEN = "MOCK_VALID_ACCESS_TOKEN" MOCK_CHAT_ID = "MOCK_CHAT_ID" # 构造 Markdown 内容 markdown_message = ( "## 🚀 客户服务升级通知\n" "> <font color=\"warning\">请所有用户注意!</font>\n\n" "### 关键更新点:\n" "* **服务时间**:周一至周五 **9:00 - 20:00**\n" "* **联系方式**:请发送邮件至 `support@example.com`\n" "* **[查看完整公告](https://www.example.com/notice)**\n\n" "本次更新将于 2025 年 12 月 15 日生效。" ) response_data = send_markdown_message(MOCK_TOKEN, MOCK_CHAT_ID, markdown_message) # print(json.dumps(response_data, indent=4, ensure_ascii=False))

3. Markdown 内容的常用语法和限制

企业微信支持大部分标准的 Markdown 语法,同时提供了一些扩展:

效果描述Markdown 语法示例
标题# 一级标题,## 二级标题
加粗**重点内容**
链接[点击这里](https://url.com)
列表* 列表项 A,1. 列表项 B
颜色字体<font color="warning">警告信息</font>(支持 warning, info, comment)
引用块> 引用内容

限制提醒:Markdown 消息内容有长度限制(通常 2048 字节),且不支持表格、图片等复杂元素。若需发送图片,应使用专门的图片消息接口(msgtype: image)。


标QiWe开放平台
基于API您可以创造更多有趣的功能题
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 7:51:10

基于SpringBoot的养老院健康管理系统设计实现

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 1. 项目背景与意义 随着我国人口老龄化进程不断加快&#xff0c;养老服务的需求日益增长。传统养老院在健康管理方面普遍存在记录分散、信息滞后、人工统计效率低等问题…

作者头像 李华
网站建设 2026/9/29 7:46:59

Selenium+Java工程化框架设计与落地实践

1. 这不是“写个脚本点点网页”——SeleniumJava自动化测试的真实战场你搜“Selenium Java”&#xff0c;刷出来的全是“三步安装、五步写第一个脚本、定位元素就完事”。我带过六支测试团队&#xff0c;亲手评审过2300份自动化测试脚本&#xff0c;见过太多人把Selenium当成“…

作者头像 李华
网站建设 2026/9/29 7:45:15

【机器人开发】ROS仿真全流程实战指南

###以一个完整的仿真案例为主线项目了解ROS全流程 以下是一个基于 Gazebo 的 ROS机器人仿真全流程 案例&#xff0c;通过该案例可以全面了解ROS的通信机制、仿真环境搭建、机器人模型创建、控制逻辑实现以及数据交互等核心内容。 一、项目目标 构建一个 ROS Gazebo 的仿真环…

作者头像 李华
网站建设 2026/9/29 7:45:12

【嵌入式/机器人】RTOS与ROS:技术对比与协同应用

引言在机器人及嵌入式系统开发中&#xff0c;RTOS&#xff08;实时操作系统&#xff09;与ROS&#xff08;机器人操作系统&#xff09;是两类极易混淆的技术栈。本文从本质定义、硬件依赖、实时性、应用场景及工程协作五个维度&#xff0c;系统阐述二者的差异与互补关系。一、本…

作者头像 李华