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

Discord API无法更新服务器横幅问题求助

解决Discord服务器横幅更新成功但未生效的问题

核心问题:图片数据格式错误

你当前传给API的是完整的data:image/png;base64,xxx格式字符串,但Discord的Guild更新API对banner字段的要求是仅需纯base64编码的图片数据,不需要带data URI前缀。API返回成功是因为它接收了合法的请求结构,但无法解析带前缀的数据,所以实际没有完成横幅更新。

修复步骤

  1. 修改图片加载函数,去掉data URI前缀,只返回纯base64字符串:
async function loadImage (path) {
    let data = await promises.readFile(path)
    let base64 = data.toString('base64');
    console.log('loaded ', path);
    return base64; // 移除data:image/png;base64,前缀
}
  1. 验证图片尺寸:Discord服务器横幅强制要求图片为1920x480像素(4:1比例),如果图片尺寸不符,哪怕API返回成功,新横幅也不会显示。确保_banners目录下的图片都符合这个规格。

  2. 确认机器人权限:你的Token必须拥有MANAGE_GUILD权限,否则即使请求返回成功,也没有修改服务器设置的权限。

额外排查点

  • 更新后可以重新获取Guild数据,打印guild.banner字段,确认该字段是否有变化(Discord会存储缩略后的哈希值,更新成功的话这个值会改变)。
  • 刷新Discord客户端缓存(按Ctrl+R或重启客户端),有时候旧横幅会被客户端缓存导致看不到新变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:34:51