Discord
隨附於 Macro Deck從面板在 Discord 中靜音、拒聽、加入語音頻道、變更語音設定,以及透過 Webhook 張貼訊息。
「連線 Discord」對話方塊,含「用戶端 ID」和「用戶端密鑰」欄位
- 顯示實際狀態的靜音和拒聽按鈕
- 加入或離開語音頻道,開啟文字頻道
- 設定麥克風和輸出音量、語音模式和語音處理
- 在個人資料上顯示自訂的豐富狀態活動
- 透過 Webhook 將訊息和嵌入內容張貼到頻道
Discord 整合會將 Macro Deck 連線到同一台電腦上的官方 Discord 桌面應用程式。它使用 Discord 的本機 RPC 介面,也就是 Discord 提供給控制用戶端的應用程式的介面,因此按鈕的作用就如同親手在 Discord 中點按一樣。Discord 只會將此存取權授予自己擁有的應用程式,因此設定時需要在 Discord Developer Portal 中建立一個免費的應用程式,並授權一次。
可以做什麼
- 使用 麥克風靜音 和 拒聽 將自己靜音或拒聽。按鈕會顯示是否已靜音,在 Discord 本身中靜音時也一樣。
- 加入其中一個伺服器的語音頻道、離開目前的語音頻道,或在 Discord 應用程式中開啟文字頻道。
- 設定、提高或降低麥克風和輸出音量,在 按鍵通話 和 語音偵測 之間切換,以及開啟或關閉標準雜訊抑制、回音消除和自動增益控制。
- 使用 設定豐富狀態 在個人資料上顯示自訂活動,並使用 清除豐富狀態 將其移除。
- 使用 執行 Webhook 透過 Webhook 將訊息(可附嵌入內容)張貼到任何頻道。只要此整合已啟用,此動作不需要設定整合即可使用。
設定範例:
- 麥克風 按鈕使用 切換 模式的 麥克風靜音,其顏色會跟隨
discord_is_self_muted變數。 - 一個按鈕加入團隊的語音頻道,並開啟 如果我已連線,則移動我,因此在其他頻道中時也能使用。
- 一個在 麥克風已停止傳送 觸發器上的流程會開啟紅燈,另一個在 麥克風已恢復傳送 上的流程則會再將它關閉。
- 一個按鈕透過 Webhook 張貼「Stream is live」以及頻道連結。
運作方式
Macro Deck 會在啟動時連線到 Discord,並在關閉並重新開啟 Discord 時自動重新連線,每次嘗試失敗後會稍微延長等待時間,最長一分鐘。發生這種情況時會觸發 已連線 和 已中斷連線 觸發器。Discord 未連線期間,除了 discord_is_connected 之外的變數都會顯示為無法使用。在 Discord 中所做的變更,以及管理員造成的靜音,都會立即反映在變數和觸發器中。可以設定一個 Discord 帳戶。
需要準備
- 在與 Macro Deck 相同的電腦上執行的官方 Discord 桌面應用程式。在 Linux 上,Flatpak 和 Snap 版本也可以使用。
- Discord 帳戶,以及在 Discord Developer Portal 中自行建立的免費應用程式。
- Macro Deck 和 Discord 以相同的權限啟動(兩者都不以系統管理員身分執行,或兩者都以系統管理員身分執行)。
- 僅限 執行 Webhook:頻道的 Webhook URL。此整合需要啟用,但不需要任何設定。
開始設定
步驟 1: 建立 Discord 應用程式
開啟 Discord Developer Portal 並建立新的應用程式。名稱不重要。從 General Information 複製 Application ID:這就是 用戶端 ID。
步驟 2: 加入重新導向 URI 並複製密鑰
在應用程式中開啟 OAuth2。加入
http://localhost/作為重新導向並儲存。這個位址永遠不會被開啟,Discord 只會檢查它是否已註冊。然後複製 Client Secret(如果 Discord 沒有顯示,請重設)。步驟 3: 在 Macro Deck 中開啟 Discord
請確認 Discord 桌面應用程式正在執行。在 Macro Deck 的側邊欄中按一下 整合,然後按一下 Discord。
步驟 4: 輸入用戶端 ID 和用戶端密鑰
在 概覽 分頁的 設定 區段中按一下 設定。開啟右上角的開關也會開啟相同的對話方塊。在 連線 Discord 對話方塊中貼上 用戶端 ID 和 用戶端密鑰,然後按一下 繼續。
步驟 5: 在 Discord 中授權
在 在 Discord 中授權 步驟中按一下 繼續。Discord 會顯示應用程式的授權提示:請接受。Macro Deck 會將連線儲存為 Discord,後面以括號附上使用者名稱,並啟用此整合。
步驟 6: 在按鈕上加入動作
在 面板 頁面上按一下一個按鈕。面板必須處於解鎖狀態:右上角顯示 鎖定 按鈕時,即表示已解鎖。編輯器開啟時會選取 短按。按一下 + 新增動作,在 新增動作 對話方塊左側選擇 Discord,選擇 麥克風靜音,然後將 動作 設為 切換。
步驟 7: 按下按鈕
在面板上按下按鈕。Discord 會將麥克風靜音,而按鈕會顯示靜音狀態,直到從面板或在 Discord 中取消靜音為止。
動作14
可放在按鈕上,或從流程中執行。
- 麥克風靜音
- 將麥克風靜音、取消靜音或切換靜音。
- 拒聽
- 拒聽、取消拒聽或切換拒聽。
- 標準雜訊抑制
- 開啟或關閉 Discord 的標準雜訊抑制。無法控制 Krisp。
- 回音消除
- 開啟或關閉 Discord 的回音消除。
- 自動增益控制
- 開啟或關閉自動增益控制。
- 設定語音模式
- 切換為按鍵通話或語音偵測,或在兩者之間切換。
- 設定麥克風音量
- 設定、提高或降低 Discord 的麥克風音量。
- 設定輸出音量
- 設定、提高或降低 Discord 的輸出音量,最高 200%。
- 加入語音頻道
- 連線到其中一個伺服器的語音頻道,可選擇從其他頻道移過去。
- 離開語音頻道
- 中斷與目前語音頻道的連線。
- 開啟文字頻道
- 在 Discord 應用程式中開啟文字頻道。
- 設定豐富狀態
- 在個人資料上顯示自訂活動(正在玩、正在聽、正在看或正在參加競賽),包含詳細資訊、圖片和經過時間。
- 清除豐富狀態
- 移除 Macro Deck 在個人資料上設定的活動。
- 執行 Webhook
- 透過 Webhook URL 將訊息(可附嵌入內容)傳送到頻道。不需要設定即可使用。
觸發器18
按鈕或流程可以對這些事件做出反應。
- 已連線
- Macro Deck 已連線到 Discord 應用程式。
- 已中斷連線
- Discord 應用程式已關閉或連線已中斷。
- 麥克風已靜音
- 自己將麥克風靜音。
- 麥克風已取消靜音
- 自己將麥克風取消靜音。
- 已拒聽
- 自己開啟了拒聽。
- 已取消拒聽
- 自己取消了拒聽。
- 伺服器靜音
- 管理員將你靜音。
- 伺服器取消靜音
- 管理員取消了你的靜音。
- 伺服器拒聽
- 管理員將你設為拒聽。
- 伺服器取消拒聽
- 管理員取消了你的拒聽。
- 麥克風已停止傳送
- 麥克風因任何原因停止傳送:自己或管理員造成的靜音或拒聽。
- 麥克風已恢復傳送
- 麥克風可以再次傳送:沒有任何靜音或拒聽生效。
- 已加入語音頻道
- 自己加入了語音頻道,可限定於特定頻道。
- 已離開語音頻道
- 自己離開了語音頻道,可限定於特定頻道。
- 語音連線狀態已變更
- Discord 的語音連線狀態已變更,例如變為
VOICE_CONNECTED,附平均延遲。 - 有人開始說話
- 目前語音頻道中有人開始說話,並附上是否為自己。
- 有人停止說話
- 目前語音頻道中有人停止說話,並附上是否為自己。
- 收到通知
- Discord 顯示了桌面通知,附其標題和內文。
變數11
在按鈕和小工具上顯示這些值,或在條件中使用。
discord_is_connected- Macro Deck 是否已連線到 Discord 應用程式。
discord_user_name- 已連線帳戶的名稱。
discord_is_self_muted,discord_is_self_deafened- 你是否將自己靜音或拒聽。
discord_is_server_muted,discord_is_server_deafened- 管理員是否將你靜音或拒聽。
discord_is_muted,discord_is_deafened- 你是否因任何原因而處於靜音或拒聽狀態。
discord_is_speaking- 你目前是否正在說話。
discord_is_in_voice_channel,discord_voice_channel,discord_voice_server- 你是否位於語音頻道中,以及頻道及其伺服器的名稱。
discord_voice_connection_state,discord_voice_ping- 語音連線的狀態,以及以毫秒為單位的平均延遲。
discord_input_volume,discord_output_volume- 以百分比表示的 Discord 輸入和輸出音量。也可以設定這些值,例如使用滑桿。
discord_voice_mode- Discord 使用按鍵通話還是語音偵測。
discord_noise_suppression,discord_echo_cancellation,discord_automatic_gain_control- 雜訊抑制、回音消除和自動增益控制是否已開啟。
常見問題
為什麼需要自己的 Discord 應用程式?
Discord 只會將控制用戶端的權限授予自己所屬團隊的應用程式。自己的應用程式是免費的,而 Macro Deck 只會使用其 用戶端 ID 和 用戶端密鑰 向 Discord 授權。
可以搭配 Vesktop、Legcord 或其他 Discord 用戶端使用嗎?
不行。第三方用戶端可以分享遊戲活動,但 Macro Deck 無法控制它們。請啟動官方 Discord 桌面應用程式;其他用戶端可以同時繼續執行。
Discord 在另一台電腦上執行時也能運作嗎?
不行。Macro Deck 會透過本機連線與 Discord 通訊,因此 Discord 必須在執行 Macro Deck 的電腦上執行。只有 執行 Webhook 不需要 Discord 應用程式。
設定時顯示 Discord 拒絕連線,問題出在哪裡?
Macro Deck 和 Discord 以不同的權限執行,例如其中一個是以 以系統管理員身分執行 啟動的。請以相同的方式啟動兩者,然後再試一次。
為什麼語音設定沒有變更?
可能有其他連線到 Discord 的應用程式佔用了語音設定,或 Discord 在 Krisp 啟用時會忽略進階語音設定。請關閉其他控制 Discord 的應用程式,在 Discord 的 語音與視訊 設定中變更一次該設定,然後再次執行動作。
憑證儲存在哪裡?
用戶端密鑰 和 Discord 傳回的權杖會加密儲存在電腦上,只會傳送給 Discord。當 Discord 不再接受已儲存的授權時,此整合會顯示 Discord 授權已過期 以及 重新連線 按鈕。
更多「聊天和語音」整合
Discord Webhook
隨附於 Macro Deck透過 Webhook 將含有嵌入內容和提及的豐富訊息發布到 Discord 頻道,並提供即時預覽。
SinusBot
隨附於 Macro Deck控制 SinusBot 執行個體的音樂,並在面板上顯示正在播放的內容。