MINARA
使用 Minara客户端与界面消息平台

Discord

单频道 Bot Token 配置,支持流式传输的网关,2000 字符限制,适合社区服务器。

🟢 运行时就绪:网关通过消息编辑接口支持流式传输编辑(暂无生产端调用,详见下文)。仅支持 Bot 模式;Discord Webhook 不提供流式传输所需的编辑 API。

功能概览

  • 流式传输编辑:通过 PATCH /channels/{channel}/messages/{id} 实现(限速 1 秒,以保持在每频道 5 次 / 5 秒的速率限制内)。由 createStreamSink 驱动;send_message 本身为单次发送。
  • 附件支持:通过单个 multipart POST /channels/{cid}/messages 接口发送图片、文件和音频,使用 payload_json + files[n] 格式。语音附件显示为带播放器的音频文件(原生语音消息波形 UI 为后续功能)。
  • 2000 字符限制send_message 在工具边界处拒绝超长文本;流式传输截断时附加 … (truncated) 标记。
  • 每网关单频道:如需在多个频道发送,在 send_message 中使用 channel 参数覆盖目标频道。

配置步骤

1. 创建 Bot 应用

  1. 打开 Discord Developer Portal,点击 New Application
  2. 进入 BotReset Token,复制 token(仅显示一次)
  3. Privileged Gateway Intents 下,将 Message Content 保持关闭。Minara 只发送消息,不读取消息
  4. OAuth2 → URL Generator 复制 Bot 的安装链接:在 Scopes 中勾选 bot,在 Bot Permissions 中勾选 Send Messages,将链接粘贴到浏览器中,把 Bot 添加到服务器

2. 获取目标频道 ID

在 Discord 客户端中:用户设置 → 高级 → 开发者模式 = 开启,然后右键点击频道 → 复制频道 ID。格式为纯数字雪花 ID,例如 1234567890123456789

3. 配置 Minara

快捷方式:

"set up Discord notifications in channel 1234567890"

手动方式:

minara auth messaging add discord

或直接编辑项目根目录的 .env 文件:

DISCORD_BOT_TOKEN=<bot token>
DISCORD_CHANNEL_ID=1234567890123456789

4. 测试

minara auth messaging test discord

流式传输行为

Discord 的消息编辑接口每频道限速 5 次编辑 / 5 秒DiscordGatewaystreamDefaultIntervalMs 声明为 1000,因此 createStreamSink 在前五秒内最多触发约 5 次编辑,之后以 1 Hz 频率继续。调用方可通过 createStreamSink(gw, msg, { intervalMs: 1500 }) 放宽限速。这是调用方侧选项,不是 send_message 工具参数。流式传输本身已具备接入条件,尚未被任何生产代码路径调用。

超过 2000 字符的响应会直接截断,而非分段发送。Discord 将每个 chat.postMessage 视为原子操作,流式编辑链的分段拼接会导致阅读混乱。

覆盖目标频道

send_message({
  provider: "discord",
  channel: "9876543210987654321",
  text: "Critical: position liquidation imminent",
})

常见问题

"Missing Access (50001)"

  • Bot 不在服务器中,或无权查看该频道。请重新检查 OAuth 安装链接及频道角色权限

"Missing Permissions (50013)"

  • Bot 已在服务器中,但无法在该频道执行 Send MessagesEmbed Links。请编辑频道权限,为 Bot 角色授予 Send Messages

"Cannot send empty message (50006)"

  • 消息内容在内容审核阶段被清空。Discord 会屏蔽部分看起来像标记语言的纯文本格式;可尝试稍微修改标点后重新发送

"Stream feels choppy"

  • 默认限速为 1000 毫秒。Discord 的 5/5 速率限制是上限,超出此限速会触发临时 429 错误。接受当前节奏,或改用 Telegram 进行实时流式传输

参考资料

本页目录