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

FiveM Lua调用Discord API PATCH方法报资源不存在错误求助

解决Discord API PATCH请求“资源不存在”错误的思路
  • 检查API端点路径准确性
    Discord的PATCH端点格式要求严格,比如修改频道权限的标准端点为/channels/{channel.id}/permissions/{overwrite.id},需确认:

    • 未混淆overwrite.id(权限覆盖条目ID)与角色/用户ID:若修改已有权限覆盖,必须使用对应覆盖条目的ID;若为新添加权限覆盖,应使用PUT请求而非PATCH
    • 路径无缺失片段(如漏写/permissions/),且频道ID未误用为分类ID
  • 验证令牌权限与格式

    • 确保Bot令牌包含MANAGE_CHANNELS权限,权限不足可能被Discord伪装成“资源不存在”报错
    • 确认令牌格式为Bot {token}(注意Bot后有空格),无拼写错误或过期情况
  • 检查PATCH请求Body格式
    Discord API对JSON格式的Body有严格要求:

    • allow、deny需为十进制权限位数值,而非字符串或二进制
    • 必须包含type字段(0代表角色,1代表用户),缺失会导致Discord无法识别权限覆盖对象
    • 输出完整请求Body并对比官方文档示例,排查语法错误(如逗号漏写、引号不匹配)
  • 直接测试API端点有效性
    用curl或Postman直接发起请求,排除Lua代码封装问题:

    curl -X PATCH "https://discord.com/api/v10/channels/CHANNEL_ID/permissions/OVERWRITE_ID" \
    -H "Authorization: Bot YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"allow": 0, "deny": 1024, "type": 0}'
    

    若直接调用仍报错,说明问题出在API参数或权限;若调用成功,则需排查Lua封装函数

  • 排查DiscordRequest封装函数

    • 确认已设置请求头Content-Type: application/json,PATCH请求必须携带该头才能让Discord解析Body
    • 检查是否正确传递PATCH请求方法,未误写为PUT/POST
    • 确认HTTP库处理HTTPS请求无异常,FiveM默认HTTP库无需额外配置证书,但自定义库可能存在问题
  • 确认权限覆盖对象存在性
    调用GET /channels/{channel.id}/permissions接口获取当前频道权限覆盖列表,确认要修改的overwrite.id确实存在于列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:51:06