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

使用Requests触发Discord Slash Command时遇无效交互命令错误

解决Discord斜杠命令触发的INTERACTION_APPLICATION_COMMAND_INVALID错误

问题场景

尝试用Python的requests库触发Discord斜杠命令时,返回INTERACTION_APPLICATION_COMMAND_INVALID错误,即使复制开发者控制台的完整payload也无法解决。

原代码

import requests

payload = {
    "type": 2,
    "application_id": "999736048596816014",
    "guild_id": "1190781950944886867",
    "channel_id": "1190781950944886870",
    "session_id": "4d8f14035632b07e98830b5a9706e1d6",
    "data": {
        "version": "1171521015759769721",
        "id": "1001775070169022494",
        "name": "about",
        "application_command": {
            "id": "1001775070169022494",
            "application_id": "999736048596816014",
        },
    },
}

headers = {
    "Authorization": "my token here",
    "content-type": "application/json"
}

r = requests.post("https://discord.com/api/v9/interactions", json=payload, headers=headers)
print(r.text)

错误信息

{"message": "Invalid Form Body", "code": 50035, "errors": {"data": {"_errors": [{"code": "INTERACTION_APPLICATION_COMMAND_INVALID", "message": "Invalid interaction application command"}]}}}

问题分析及解决方案

  1. 冗余字段导致结构错误
    payload中data下的application_command字段是多余的,Discord交互API不需要这个嵌套结构,会触发格式验证失败,直接删除该字段即可。

  2. Session ID有效性问题
    Session ID与当前Discord客户端会话绑定,必须使用从当前活跃会话中获取的session_id(开发者工具Network标签里的interactions请求对应值),过期或不匹配的session_id会导致验证失败。

  3. API版本兼容性
    目前Discord API主流版本是v10,v9存在兼容性问题,建议将请求URL切换为https://discord.com/api/v10/interactions。

  4. Token权限与类型
    确保使用的是用户token(而非机器人token),且token未过期,账号拥有执行该斜杠命令的权限。

修正后的代码

import requests

payload = {
    "type": 2,
    "application_id": "999736048596816014",
    "guild_id": "1190781950944886867",
    "channel_id": "1190781950944886870",
    "session_id": "4d8f14035632b07e98830b5a9706e1d6",
    "data": {
        "version": "1171521015759769721",
        "id": "1001775070169022494",
        "name": "about"
    }
}

headers = {
    "Authorization": "my token here",
    "Content-Type": "application/json"
}

r = requests.post("https://discord.com/api/v10/interactions", json=payload, headers=headers)
print(r.text)

验证要点

  • 重新从活跃Discord会话中复制session_id,确保未过期
  • 检查application_id、command_id、version是否与目标斜杠命令的实际值完全匹配
  • 确认token是当前登录用户的有效token,无权限限制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:42:44