企微群机器人发markdown消息支持表格

企微群机器人发markdown消息支持表格

结论

1.V1接口可以圈人,但是无法正确展示表格的markdown语法

2.V2接口可以展示表格的markdown语法,但是无法圈人

3.企微消息有长度限制

前言

今天是日本投降日,写篇技术文档。

企业微信机器人发markdown表格信息+如何艾特人

企微机器人发消息通知,目标是生成数据对比表格,然后艾特到具体的人来跟进事物的变化

1、成果收益

发表格数据,圈人

2、背景

目前机器人通知的内容太单调了,无法满足告警提醒的作用,需要罗列表格进行对比,需要艾特到具体人

3、解决方案

如何支持markdown表格类型

1.企业微信从4.1.38开始支持markdown表格的语法了。可以参看官方文档4.1.38版本新功能介绍

所以企业客户端要升级

2.我们历史使用的是msgtype:markdown,这个还是不支持的

{ "msgtype": "markdown", "markdown": { "content": "实时用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n>类型:<font color=\"comment\">用户反馈</font>\n>普通用户反馈:<font color=\"comment\">117例</font>\n>VIP用户反馈:<font color=\"comment\">15例</font>" } }

3.需要使用markdown_v2的接口才能支持

{ "msgtype": "markdown_v2", "markdown_v2": { "content": "# 一、标题\n## 二级标题\n### 三级标题\n# 二、字体\n*斜体*\n\n**加粗**\n# 三、列表 \n- 无序列表 1 \n- 无序列表 2\n - 无序列表 2.1\n - 无序列表 2.2\n1. 有序列表 1\n2. 有序列表 2\n# 四、引用\n> 一级引用\n>>二级引用\n>>>三级引用\n# 五、链接\n[这是一个链接](https:work.weixin.qq.com\/api\/doc)\n![](https://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png)\n# 六、分割线\n\n---\n# 七、代码\n`这是行内代码`\n```\n这是独立代码块\n```\n\n# 八、表格\n| 姓名 | 文化衫尺寸 | 收货地址 |\n| :----- | :----: | -------: |\n| 张三 | S | 广州 |\n| 李四 | L | 深圳 |\n" } }

具体支持那些可以参看 markdown_v2类型入参说明

如何艾特人

v2的接口明确说了不支持@群成员的语法,这就是鱼和熊掌不可兼得么。

这里需要使用markdown类型

{ "msgtype": "markdown", "markdown": { "content": "实时新增用户反馈<font color=\"warning\">132例</font><@userId>" }

语法就是:

这里可以用userId,enterpiseWeChatId这个ID也可以

<@userID> 

4、参考资料:

https://work.weixin.qq.com/nl/act/p/934e08ec64874715?ver=4.1.38&type=mng&lang=zh&scene=undefined

Read more

前端表单验证策略:别让用户输入垃圾数据!

前端表单验证策略:别让用户输入垃圾数据! 毒舌时刻 表单验证?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为随便加个required属性就能解决所有验证问题?别做梦了!到时候你会发现,用户输入的垃圾数据还是会被提交到服务器。 你以为用正则表达式就能验证所有输入?别天真了!正则表达式的复杂度能让你崩溃,维护起来比业务代码还麻烦。还有那些所谓的表单验证库,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 提高数据质量:良好的表单验证可以确保用户输入的数据符合要求,提高数据质量。 2. 改善用户体验:实时的表单验证可以及时反馈用户输入的错误,改善用户体验。 3. 减少服务器负担:在前端进行验证可以减少无效请求,减轻服务器负担。 4. 提高安全性:表单验证可以防止恶意输入,提高应用的安全性。 5. 符合业务规则:表单验证可以确保用户输入符合业务规则,减少业务错误。 反面教材 // 1. 仅使用HTML5验证 <form> <input type="email" required&

因为淋过雨,所以想给前端人说点真心话

我面过很多人,也被面过很多次。 从被问到“你连原型链都说不清”,到后来坐在桌子另一边面试别人。 今天这些话,是淋过雨之后,真想端给前端人的一碗汤。 一、关于面试:你以为考的是技术,其实考的是“能不能干活” 很多前端人准备面试,一头扎进: * 手写防抖节流 * 背Vue/React生命周期 * 刷LeetCode 这些当然要会,但面试官真正想确认的是三件事: 1. 把你丢进项目里,能不能独立负责一个模块 2. 遇到线上Bug,能不能快速定位 + 止损 3. 给你一个模糊需求,能不能拆解 + 落地 所以别再只背八股文了。 面试官一旦问“你做过什么”“怎么做的”“遇到什么困难”,就是在验证你能不能干活。 二、关于空白期:别怕Gap,怕的是“Gap但什么都没留下” 我面过一个女生,简历上写着“2024年3月至今:Gap Year”。 换作以前,我会犹豫。

FastAPI:Python 高性能 Web 框架的优雅之选

FastAPI:Python 高性能 Web 框架的优雅之选

🚀 FastAPI:Python 高性能 Web 框架的优雅之选 * 🌟 FastAPI 框架简介 * ⚡ 性能优势:为何选择 FastAPI? * 性能对比表 * 🔍 同步 vs 异步:性能测试揭秘 * 测试代码示例 * 测试结果分析 * 🛠️ FastAPI 开发体验:优雅而高效 * 1. 类型提示与自动验证 * 2. 交互式 API 文档 * 🏆 真实案例:为什么企业选择 FastAPI * 📚 后续学习引导 * 🎯 结语 🌟 FastAPI 框架简介 在当今快速发展的互联网时代,构建高效、可靠的 API 服务已成为后端开发的核心需求。FastAPI 作为 Python 生态中的新星,以其卓越的性能和开发者友好特性迅速赢得了广泛关注。 框架概述:FastAPI 是一个现代化的 Python Web 框架,专为构建

前端WebSocket实时通信:别再用轮询了!

前端WebSocket实时通信:别再用轮询了! 毒舌时刻 WebSocket?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂技术。你以为随便用个WebSocket就能实现实时通信?别做梦了!到时候你会发现,WebSocket连接断开的问题让你崩溃,重连机制让你晕头转向。 你以为WebSocket是万能的?别天真了!WebSocket在某些网络环境下会被防火墙拦截,而且服务器的负载也是个问题。还有那些所谓的WebSocket库,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 实时性:WebSocket提供全双工通信,可以实现真正的实时通信,比轮询更高效。 2. 减少网络流量:WebSocket只需要建立一次连接,减少了HTTP请求的开销。 3. 服务器推送:服务器可以主动向客户端推送数据,而不需要客户端轮询。 4. 低延迟:WebSocket的延迟比轮询低,适合实时应用。 5. 更好的用户体验:实时通信可以提供更好的用户体验,比如实时聊天、实时数据更新等。 反面教材 // 1. 简单WebSocket连接 const socket =