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

NodeJS调用Discord API修改Vanity URL遇阻求助

解决Discord Vanity URL修改的API调用问题

看起来你在调用Discord API修改服务器自定义URL的时候踩了两个关键的坑,我来帮你逐一解决:

第一个问题:POST请求不对,应该用PATCH

Discord API中,/guilds/{guild.id}/vanity-url这个端点的POST方法是用来获取当前的自定义URL信息,而不是修改它。要修改自定义URL,你需要使用PATCH请求。这就是为什么你用Bot令牌调用POST时,只会返回当前的cherrys邀请码——因为这个请求本来就只是查询用的。

修正后的代码应该是这样的:

fetch('https://discord.com/api/v10/guilds/762359120031907871/vanity-url', {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bot ' + client.token,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ "code": "test458" })
})
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));

注意几个细节:

  • 把请求方法从POST改成PATCH
  • 把payload换成标准的body参数(fetch API里没有payload这个参数,这也是潜在问题)
  • 建议使用最新的API版本(v10,而不是你用的v6,旧版本可能已经被废弃)

第二个问题:用户令牌返回401的原因

如果你想用用户令牌调用这个接口,需要满足几个条件:

  • 你的账号必须拥有目标服务器的管理服务器权限
  • 用户令牌的格式是直接使用,不要加Bot 前缀(比如Authorization: "你的用户令牌",而不是Bot 你的用户令牌)
  • 你的账号可能需要开启2FA(如果服务器开启了服务器安全等级要求的话)
  • 另外,Discord现在对用户令牌的API调用有严格的限制,官方推荐始终使用Bot令牌来做机器人操作,不建议用用户令牌替代

额外注意事项

  • 确保你的Bot账号拥有目标服务器的管理服务器权限,否则即使是PATCH请求也会返回权限不足的错误
  • 自定义URL的code必须是未被占用的,而且符合Discord的格式要求(只能包含字母、数字和连字符,长度在3-32之间)
  • 记得处理请求的错误情况,比如捕获catch里的异常,方便排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 21:12:59