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. 进入 Bot → Reset 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 秒。DiscordGateway 将 streamDefaultIntervalMs 声明为 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 Messages 或 Embed Links。请编辑频道权限,为 Bot 角色授予 Send Messages

"Cannot send empty message (50006)"

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

"Stream feels choppy"

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

参考资料

本页目录