You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Discord INTERACTIONS ENDPOINT URL获取表情反应交互请求

核心原因

你配置的INTERACTIONS ENDPOINT URL仅会接收Discord交互类事件,包括斜杠命令触发、按钮/下拉菜单点击、模态框提交这类场景,普通频道消息发送、消息表情反应事件根本不会推送到这个端点,这就是你斜杠命令正常、但收不到消息/反应请求、CloudWatch无对应日志的根本原因。

解决方法

根据你当前使用AWS Lambda无服务器环境的场景,推荐选第二种方案,适配性更好:

  • 方案一:通过网关长连接接收事件
    1. 前往Discord开发者后台,进入应用的Bot设置页,在Privileged Gateway Intents分区开启MESSAGE CONTENT INTENT(读取消息内容必填)、消息反应相关的网关意图权限
    2. 注意:AWS Lambda是短执行周期的无服务器环境,默认无法维持WebSocket长连接,要使用这个方案你需要把服务部署到常驻运行环境(EC2、ECS等),成本和改造成本更高
  • 方案二(适配Lambda架构):配置Discord事件Webhook
    1. 进入开发者后台对应应用的Integrations页面,新建Webhook,勾选你需要订阅的事件:MESSAGE_CREATE(频道新消息)、MESSAGE_REACTION_ADD(新增表情反应)等
    2. 将Webhook的投递地址设置为你Lambda暴露的API接口地址,注意Webhook的签名校验规则和Interactions端点的校验规则不同,需要单独编写校验逻辑,不能直接复用你现有的交互签名校验代码
    3. 补充机器人权限:你之前OAuth2选的权限范围缺少读取消息内容、查看频道、读取消息历史的相关权限,重新生成邀请链接勾选全对应权限后,重新邀请机器人进服务器即可
现有代码问题修正

你当前路由定义顺序有问题:express.json()中间件写在了根路径POST路由的后面,会导致该路由无法正常获取解析后的请求体,建议把所有全局中间件移动到路由定义之前,避免出现请求解析异常。

内容的提问来源于stack exchange,提问作者simon Shim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 05:03:39