尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Chat SDK斜杠命令与模态框实战:构建支持/command指令与表单验证的交互
Chat SDK斜杠命令与模态框实战构建支持/command指令与表单验证的交互【免费下载链接】chatUniversal chat layer for building bots and agents.项目地址: https://gitcode.com/gh_mirrors/chat67/chatChat SDK 是一个跨平台的聊天机器人开发工具包本文将带你用 Chat SDK 的**斜杠命令Slash Commands和模态框Modals**两大功能一步步构建支持/command指令调用与表单验证的交互式机器人。你只需注册一个事件处理器就能让用户通过/feedback这样的命令打开表单弹窗并在服务端完成输入校验——无需为 Slack、Teams、Telegram 等平台分别写一遍逻辑。为什么选择斜杠命令 模态框组合斜杠命令让用户以/command的语法主动召唤机器人是客服工单、系统状态查询、审批流等场景的天然入口。而模态框则把自由聊天升级为结构化表单文本框、下拉框、日期选择器、数字输入一应俱全。两者配合的典型流程是用户在频道里输入/feedback机器人弹出一个反馈表单模态框用户填写并提交服务端校验数据错误直接标在对应字段上目前Slack 和 Teams 完整支持模态框Slack、Discord、Telegram 支持斜杠命令平台能力差异 Chat SDK 已帮你抹平。三步搞定你的第一个斜杠命令第一步注册一个具体的命令处理器。以下代码来自官方示例 lib/bot.tsbot.onSlashCommand(/status, async (event) { await event.channel.post(All systems operational!); });第二步也可以让一个处理器同时响应多个命令bot.onSlashCommand([/help, /info], async (event) { await event.channel.post(You invoked ${event.command}); });第三步如果想兜底接收所有未单独处理的命令注册一个不传命令名的处理器即可通过event.command和event.text区分指令与参数。处理器收到的event对象包含关键字段属性说明command命令名如/statustext命令后的参数文本user触发命令的用户channel命令所在的频道可用来回发消息openModal打开模态框的方法 ⭐其中openModal正是通向模态框的钥匙。 小贴士Telegram 上用户输入/statusmybot这类带机器人后缀的写法同样会被识别Discord 的子命令如/project create会被自动展平为event.command路径参数归入event.text。从斜杠命令直接打开模态框表单在命令处理器里调用event.openModal()传入用 JSX 描述的表单即可。这是一个用户反馈收集的真实写法import { Modal, TextInput, Select, SelectOption } from chat; bot.onSlashCommand(/feedback, async (event) { const result await event.openModal( Modal callbackIdfeedback_form titleSend Feedback submitLabelSend TextInput idmessage labelYour Feedback multiline / Select idcategory labelCategory SelectOption labelBug valuebug / SelectOption labelFeature valuefeature / /Select /Modal ); if (!result) { await event.channel.post(Couldnt open the feedback form. Please try again.); } });注意callbackIdfeedback_form——它是表单的身份证稍后的提交处理器会靠它来匹配路由。模态框组件一览搭建表单的积木模态框支持的字段组件详见 modals.mdx组件用途TextInput文本输入支持多行、最大长度限制NumberInput数字输入可设min/maxDateInput日期选择提交为YYYY-MM-DDSelect/RadioSelect下拉单选 / 单选按钮组ExternalSelect动态搜索下拉Slack 专属适合搜索人员、工单每个组件的id会作为键出现在提交事件的event.values里optional属性控制字段是否允许留空。表单标题、提交/取消按钮文案也都可以通过title、submitLabel、closeLabel自定义。服务端表单验证把错误标回字段上模态框最大的价值在于服务端校验。在onModalSubmit处理器里只要返回errors响应Slack/Teams 就会把错误信息直接显示在对应字段下方表单保持打开状态用户可修改后重新提交bot.onModalSubmit(feedback_form, async (event) { const { message, category } event.values; // 校验不通过错误标回字段 if (!message || message.length 5) { return { action: errors, errors: { message: Feedback must be at least 5 characters }, }; } // 校验通过回复到命令所在频道 if (event.relatedChannel) { await event.relatedChannel.post(Feedback received! Category: ${category}); } // 不返回任何值模态框自动关闭 });提交时可用的响应类型返回值效果undefined或{ action: close }关闭当前视图{ action: clear }清空所有视图彻底关闭模态框{ action: errors, errors: {...} }在指定字段显示校验错误{ action: update, modal: ... }替换模态框内容{ action: push, modal: ... }压入新的模态框视图多步表单一个关键细节从斜杠命令打开的模态框提交事件里拿到的是relatedChannel而非relatedThread用它把确认消息发回命令被触发的频道即可。取消处理与跨平台注意事项监听取消给Modal加上notifyOnClose再注册bot.onModalClose(feedback_form, ...)用户点取消时也能发条友好的提示。平台差异模态框目前由 Slack 和 Teams 适配器支持源码见 modals.ts在不支持的平台调用event.openModal()只会记录警告并返回undefined所以养成检查返回值的习惯很重要。动态下拉Slack 的ExternalSelect要求选项加载在 3 秒内响应记得做好缓存或预取。相关文件速查想深入了解仓库中这些文件值得一读斜杠命令指南apps/docs/content/docs/slash-commands.mdx模态框完整文档apps/docs/content/docs/modals.mdx模态框组件参考apps/docs/content/docs/api/modals.mdx事件注册核心实现packages/chat/src/chat.ts模态框组件定义packages/chat/src/modals.tsSlack 适配器模态框实现packages/adapter-slack/src/modals.ts小结用 Chat SDK 构建/command指令 表单验证交互核心就三步注册onSlashCommand→ 调用event.openModal()描述表单 → 在onModalSubmit里做服务端校验。一次编写Slack、Teams、Discord、Telegram 各取所需这正体现了写一次逻辑、部署到所有平台的 Chat SDK 理念 【免费下载链接】chatUniversal chat layer for building bots and agents.项目地址: https://gitcode.com/gh_mirrors/chat67/chat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

30 seconds of code 实战:用 JavaScript 在指定区间生成随机数与随机整数

30 seconds of code 实战:用 JavaScript 在指定区间生成随机数与随机整数

教程文档 【免费下载链接】30-seconds-of-code Coding articles to level up your development skills 项目地址: https://gitcode.com/gh_mirrors/30/30-seconds-of-code 点击查看 免费下载 本篇指南以 30 seconds of code 仓库中的 random-number-or-integer-in-…

📅 2026/10/5 0:38:37
PDF-XChange Editor Plus v9深度实战指南:OCR调优与PDF真编辑

PDF-XChange Editor Plus v9深度实战指南:OCR调优与PDF真编辑

简介:本资源为PDF-XChange Editor Plus 9.0.353.0 x64正式版绿色免安装包,面向办公人员、文档处理工程师及PDF高频使用者,解决PDF快速查看、精细编辑、多语言注释与OCR识别等核心需求。压缩包共511个文件,含81个动态链接库&#x…

📅 2026/10/5 0:38:37
26年实测8天:AI辅助选题到底能不能打?

26年实测8天:AI辅助选题到底能不能打?

论文写作第一步就卡在选题上,文献看了一堆,方向反而越读越模糊。带着这个困扰,我花了8天时间实测AI辅助选题工具,主测对象是AIBiye,同时对照了知文学术、学研通等产品,把真实体验完整记录下来。 aibiye官网…

📅 2026/10/5 0:33:37
MORE NEWS

更多资讯

📰

FPGA定点牛顿-拉夫逊除法器:Verilog手写高吞吐除法实现

1. 这不是普通除法器:为什么牛顿-拉夫逊在FPGA里值得手搓你打开EDA工具,敲下/运算符,综合器默默给你生成一个串行移位加减的除法器——时序路径长、吞吐量低、资源占用高,仿真跑十万个周期才出一个结果。这在数字信号处理、实时控…

📰

Jira Bug仪表盘实战:从数据采集到质量决策中枢

1. 项目概述:为什么一个“Jira Bug 仪表盘”值得单独做一篇深度复盘?你打开Jira,看到一堆状态为“Open”“In Progress”“Reopened”的Bug,筛选器来回切,Excel导出再手动画折线图,每天晨会前花40分钟整理“…

📰

RAG Agent实战:检索优先与Token预算控制

1. 从“没 Token 能用”说起:这个 Agent 到底在解决什么问题企业技术支持这个场景,做过的人都懂——它不是那种“用户问一句、AI 答一句”的闲聊机器人。它面对的是内部员工、外部客户、售前售后混在一起的各种提问,问题里夹杂着产品型号、报…

📰

金融信贷智能体落地实战:基于华为云AgentArts的架构设计与工程实践

1. 金融信贷场景下智能体方案的整体设计思路1.1 为什么金融信贷是智能体落地的天然试验场金融信贷业务有一个非常鲜明的特征:流程长、节点多、规则密集、合规要求高,同时每一个环节都涉及大量的信息判断和决策。从贷前获客、身份核验、反欺诈筛查&#x…

📰

Square Attack:黑盒对抗攻击的高效查询方法解析

1. 这不是“黑客攻击”,而是一次对AI模型鲁棒性的压力测试 你可能在论文标题里看到“attack”这个词就下意识绷紧神经——别慌,这不是教你怎么黑进别人系统,也不是教学生怎么篡改考试成绩。Square Attack 是一种 黑盒对抗样本生成方法 &am…

📰

SpringBoot+Vue.js客户关系管理系统毕设源码全解析

搞毕设的那段时间,最崩溃的不是写代码,而是拿着SpringBootVue.js的客户关系管理系统源码却没有头绪。这套项目是一套完整的Java Web毕设解决方案,里面包含了完整项目源码、SQL脚本、接口文档,前端是Vue.js做页面,后端是…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬