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

參考資料

本頁目錄