0

0

如何在 Discord 中捕获 Modal 表单的用户输入数据

心靈之曲

心靈之曲

发布时间:2026-02-12 17:07:48

|

630人浏览过

|

来源于php中文网

原创

如何在 Discord 中捕获 Modal 表单的用户输入数据

discord modal 是前端交互组件,其问题字段和用户答案不会通过 http 请求明文暴露;requests 无法直接读取或监听 modal 内容,正确方式是通过 discord bot 的事件回调(如 interaction.response.send_message)在服务端接收结构化提交数据。

Discord Modal(模态框)是 Discord 提供的现代化交互组件,用于向用户呈现结构化表单(如文本输入、下拉选择等),但其设计本质是客户端渲染 + 服务端响应驱动:Modal 的定义(问题标题、输入框类型、必填项等)由 Bot 通过 InteractionResponse 发起,而用户填写后的数据则仅通过后续的 ModalSubmitInteraction 事件,以加密、签名且结构化的形式回传至 Bot 后端——全程不经过公开 HTTP 接口,也不在浏览器开发者工具的 Network 面板中以明文形式出现

因此,试图用 requests 库抓包分析 Chrome 的网络请求来提取 Modal 问题或答案,注定失败。你看到的 XHR 请求(如 /interactions)仅包含交互 ID、令牌(token)和基础元数据,所有表单字段内容均被封装在 Discord 服务端验证后的 interaction.data.components 中,并需通过官方 Bot SDK 解析。

✅ 正确实践方式(以 discord.py v2.3+ 为例):

Knowt
Knowt

Knowt是一款AI驱动的在线学习工具

下载
from discord import ui, Interaction
import discord

class MyModal(ui.Modal, title="用户反馈表单"):
    name = ui.TextInput(label="姓名", placeholder="请输入您的姓名", required=True)
    feedback = ui.TextInput(
        label="建议或问题",
        style=discord.TextStyle.long,
        max_length=500
    )

    async def on_submit(self, interaction: Interaction):
        # ✅ 用户提交后,字段值已自动解析为 Python 字符串
        await interaction.response.send_message(
            f"✅ 已收到:\n姓名:{self.name}\n反馈:{self.feedback}",
            ephemeral=True
        )
        # 可在此处记录到数据库、转发至 Webhook 等
        print(f"[Modal Submit] {interaction.user}: name={self.name}, feedback={self.feedback}")

? 关键注意事项:

  • Modal 必须由 Interaction(如按钮点击、命令触发)发起,不能独立弹出;
  • on_submit() 是唯一可靠的数据获取入口,所有 TextInput 属性值在此时才可安全访问;
  • 若需将数据转发至外部系统(如自建 API 或 Webhook),应在 on_submit 中调用 requests.post() 主动推送,而非反向“监听”请求;
  • 使用 requests 直接调用 Discord API(如 /webhooks/...)仅适用于发送消息,绝不能用于“读取” Modal——因为 Modal 数据根本不在客户端 HTTP 流量中。

? 总结:Modal 不是“前端表单+普通 POST”,而是 Discord 生态内建的受控交互协议。放弃抓包思路,拥抱 discord.py 的 ModalSubmitInteraction 事件模型,才是高效、稳定、符合平台规范的实现路径。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

932

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

776

2023.11.06

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6362

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

831

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1079

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1525

2024.03.01

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1393

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

319

2025.10.17

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号