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 進行實時流式傳輸

參考資料

本頁目錄