建立 Discord 機器人
建立並連線 Discord 機器人,讓 ForwardMsg 自動完成設定,並選擇它要傳送或讀取訊息的位置。
從 Discord 複製訊息時,您也可以使用自己的帳號。 **您無需邀請機器人加入原伺服器,無需擁有該伺服器,也不需要是管理員。**您的帳號只需能夠存取想要複製訊息的頻道。如果您要使用此方式,請先查看連線 Discord 帳號。
Discord 機器人可以將複製的文字和受支援媒體(例如圖片、影片和檔案)傳送到您的 Discord 伺服器。它也可以轉發來自 Discord 來源的 Discord 嵌入內容。在轉發選項中選擇訊息類型;目的地伺服器的上傳限制仍然適用。如果您想用機器人代替帳號讀取訊息,也可以讓機器人讀取原始訊息。
- **使用帳號讀取、機器人傳送?**只需將機器人邀請到接收副本的伺服器。
- **也用機器人讀取?**還要將它邀請到原始伺服器,並授予它要複製頻道的存取權限。
**您無需編寫程式碼,也無需自行代管機器人。**ForwardMsg 會為您執行它。
在 Discord 中建立機器人
- 開啟 Discord Developer Portal。
- 選擇New Application。
- 輸入一個易於識別的名稱,例如
Community Forwarder。 - 選擇 Create。
- 在應用程式左側選單中開啟 Bot。
Discord 將機器人的設定稱為應用程式。您可以在Bot 頁面管理機器人的名稱、頭像和登入權杖。
複製機器人權杖
機器人權杖相當於機器人的密碼,與您的 Discord 個人帳號權杖不同。
- 在Bot 頁面找到 Token。
- 選擇Reset Token以產生可複製的權杖。
- 完成 Discord 的確認步驟。
- 複製權杖並妥善保管。
快速方式:讓 ForwardMsg 設定機器人
您可以跳過下面的手動設定:將權杖貼上到新增 Discord 機器人中,選擇新增,然後完成繼續 → 邀請 → 完成步驟。ForwardMsg 會自動設定機器人支援的意圖和預設伺服器安裝設定。您也可以直接在該對話框中邀請機器人。接下來請按照連線機器人以傳送訊息操作;如果也希望機器人讀取訊息,請按照連線機器人以讀取訊息操作。之後請重新整理 Developer Portal 查看設定。機器人仍需存取接收頻道。
重置或撤銷權杖會斷開舊連線
如果您重置了 ForwardMsg 中已儲存的權杖,舊連線就無法再登入。請使用新權杖再次選擇新增 Discord 機器人。如果舊連線負責讀取訊息,請在來源下選擇新連線;如果它負責傳送副本,請在所有受影響的路由目的地中替換舊機器人。儲存更改並重新啟動受影響的自動化。編輯舊連線的名稱不會更新其權杖。
接下來的兩節介紹在邀請機器人之前,如何自行查看或變更這些設定。
允許機器人讀取訊息文字
Discord 將這些開關稱為意圖。對於 ForwardMsg,請啟用以下兩項意圖。無論機器人只傳送副本、讀取訊息,還是兩者都做,都建議採用此設定。意圖與允許機器人查看或在頻道中發文的權限不同。
- 在 Developer Portal 中開啟 Bot。
- 找到Privileged Gateway Intents。
- 開啟 Server Members Intent 和 Message Content Intent。
- 如果 Discord 顯示儲存按鈕,請儲存更改。
| 意圖 | 功能 | 應如何設定 |
|---|---|---|
| Message Content Intent | 允許機器人接收訊息文字和內容。 | 無論機器人讀取訊息、傳送副本還是兩者都做,ForwardMsg 設定都需要開啟。 |
| Server Members Intent | 允許機器人接收伺服器成員資訊。 | 無論機器人讀取訊息、傳送副本還是兩者都做,ForwardMsg 設定都需要開啟。 |
選擇所需權限
以下是邀請機器人時請求的預設權限。請在使用邀請連結前設定或檢查這些權限:
- 在 Developer Portal 中開啟Installation。
- 在Installation Contexts下啟用 Guild Install。Guild 是 Discord 對伺服器的稱呼。
- 在Default Install Settings下找到 Guild Install 設定。
- 包含 bot 範圍,這樣就可以將機器人新增到伺服器。ForwardMsg 轉發不使用斜線指令,無需設定命令。
- 檢查下方權限。ForwardMsg 的標準邀請會請求這一整組權限。
- 如果 Portal 要求,請儲存設定。
標準邀請包含的權限
請保留預設選中的權限,讓機器人能夠使用您選擇的轉發功能。部分權限只適用於可選功能;即使您尚未啟用這些功能,也可以保留它們。
| 權限 | 機器人可以執行的操作 |
|---|---|
| View Channels / View Channel(查看頻道) | 查看機器人要讀取或發文的頻道。 |
| Send Messages | 在接收頻道發佈複製的文字。 |
| Read Message History | 取得較早的訊息,包括作為回覆上下文的訊息。 |
| Attach Files | 上傳圖片、影片和其他檔案。 |
| Embed Links | 傳送嵌入卡片和連結預覽。 |
| Manage Messages | 刪除其他使用者的訊息;此權限屬於標準訊息管理權限組。 |
| Pin Messages | 啟用相應訊息操作同步時置頂或取消置頂訊息。 |
可選行為權限
標準邀請中也包含以下權限。只有使用相應功能時才需要:
| 權限 | 機器人可以執行的操作 |
|---|---|
| Manage Webhooks | 當啟用 webhook使用原作者名稱和頭像時,建立並管理頻道 Webhook。 |
| Send Messages in Threads | 向機器人有權存取的討論串傳送副本。 |
| Add Reactions | 啟用反應同步時新增反應。 |
| Mention Everyone | 訊息格式中使用 @everyone 和 @here 等提及時傳送提及。 |
| Use External Emojis | 使用其他伺服器中的自訂表情符號。 |
| Use External Stickers | 使用其他伺服器中的貼紙。 |
| Send Voice Messages | 傳送 Discord 語音訊息。 |
| Bypass Slowmode | 無需等待頻道的慢速模式即可發文。 |
無需為機器人授予管理員權限。安裝後,請檢查它在伺服器和頻道中的實際權限。Discord 的權限參考介紹了這些控制項。
如果機器人已經在伺服器中,變更 Portal 中的預設設定不會更新它在伺服器中的現有存取權限。在 Discord 中開啟伺服器設定 → 角色,選擇機器人的角色並檢查權限。要檢查某個頻道,請開啟編輯頻道 → 權限,查看機器人的角色或單獨權限項目。即使伺服器角色允許存取,分類和頻道規則仍可能拒絕存取。
將機器人安裝到伺服器
**要傳送副本,請將機器人新增到您希望副本到達的伺服器。**如果由您的帳號讀取原始訊息,機器人無需加入原伺服器。只有當您希望機器人自行讀取這些頻道時,才需要將其新增到原伺服器。
在 ForwardMsg 中選擇新增 Discord 機器人時,使用新增到目的地伺服器開啟邀請連結。如果機器人尚未加入,請選擇接收伺服器;若要設定機器人讀取訊息,則選擇原伺服器。在 Discord 中授權,返回 ForwardMsg 並選擇完成。如果機器人已在正確的伺服器中,無需再次邀請,直接選擇完成即可。
您也可以從 Developer Portal 邀請機器人:
- 在 Developer Portal 中開啟Installation。
- 在Install Link下選擇 Discord Provided Link。
- 複製連結,在已登入 Discord 的瀏覽器中開啟。
- 選擇新增到伺服器並選擇目標伺服器。
- 選擇授權並完成 Discord 確認。
- 確認機器人顯示在該伺服器的成員清單中。
如果您擁有伺服器、是管理員或擁有管理伺服器權限,就可以邀請機器人。否則請讓伺服器管理員代為邀請。如果使用自己的帳號複製訊息,無需在原伺服器擁有此權限。
如果 Portal 版面配置發生變化,請參閱 Discord 的安裝指南查看控制項位置。
連線機器人以讀取訊息
- 開啟使用 Discord 機器人讀取訊息的自動化,然後在來源下選擇新增 Discord 機器人。
- 貼上機器人權杖並選擇新增。
- 在 ForwardMsg 中保留或變更名稱,然後選擇繼續。
- 如果機器人尚未加入要讀取訊息的伺服器,請使用新增到目的地伺服器邀請它,並在 Discord 中授權。
- 返回 ForwardMsg 並選擇完成。
- 確認來源下已選中該機器人。
- 選擇更新設定。
- 選擇啟動並等待狀態變為執行中。
- 新增機器人需要讀取的伺服器和頻道。
來源是原始訊息的位置。請只選擇您要監控的頻道。
連線機器人以傳送訊息
如果機器人已儲存,請直接選擇它並繼續選擇接收頻道,無需再次貼上權杖。
- 點選編輯器左側清單中的來源聊天/頻道以開啟其設定。
- 開啟路由。
- 選擇新增目的地。
- 如果機器人尚未儲存,請選擇新增 Discord 機器人。
- 貼上權杖並選擇新增。
- 在 ForwardMsg 中保留或變更名稱,然後選擇繼續。
- 如有需要,使用新增到目的地伺服器邀請機器人加入接收伺服器,並在 Discord 中授權。
- 返回 ForwardMsg 並選擇完成。
- 選擇該機器人和接收副本的頻道。
- 完成目的地對話框。
- 選擇儲存更改。
目的地是副本到達的位置。如果機器人有權存取多個頻道,它可以向多個頻道傳送訊息。
**在多條轉發路由中重複使用同一個機器人。**在其他路由目的地或自動化中選擇已儲存的機器人即可;無需為每個聊天或路由建立新機器人。請將其邀請到每個接收伺服器,並授予相關頻道存取權限。
透過自動化傳送新的文字訊息以檢查結果。如果只有一個頻道失敗,請檢查機器人在該頻道中的權限。
檢查 ForwardMsg 的自動設定
使用新增 Discord 機器人儲存權杖後,ForwardMsg 會設定機器人支援的意圖、Guild Install 和預設安裝設定,使其可以讀取並傳送訊息。
- 返回 Developer Portal 並重新載入頁面。
- 開啟Bot → Privileged Gateway Intents,檢查 Message Content 和 Server Members。
- 開啟Installation,檢查 Guild Install 及其預設權限。
- 如果尚未邀請機器人,請邀請機器人,然後在 ForwardMsg 中選擇接收頻道。
您可以直接使用此快速方式,無需手動變更 Portal 中的每個欄位。如果某項設定尚未更新,請按上文手動操作。
Portal 預設設定與伺服器存取權限相互獨立
自動設定會準備機器人的應用程式設定,但不會邀請機器人加入伺服器、分配驗證角色或覆蓋頻道限制。機器人仍須在實際讀取或傳送訊息的伺服器中獲得存取權限。
機器人已連線但無法傳送訊息
已連線表示 ForwardMsg 可以使用機器人登入,並不表示每個接收頻道都允許它發文。
- 檢查伺服器和頻道。機器人必須加入接收伺服器,並在對應頻道擁有查看頻道和傳送訊息權限。討論串還需要在討論串中傳送訊息權限。
- **檢查驗證或門禁機器人。**某些伺服器會在成員獲得
Verified或Member等角色之前隱藏頻道。新邀請的機器人可能不會自動獲得該角色。請管理員為機器人分配合適角色,或在接收頻道中明確授權。例如,如果只有Verified成員才能在#news中發文,機器人也需要獲得相應存取權限。 - 檢查內容類型。上傳檔案需要附加檔案權限,傳送嵌入內容需要嵌入連結權限。啟用啟用 webhook後,還需要管理 Webhook權限。
- **檢查權杖。**如果權杖已重置或撤銷,請使用新權杖重新新增機器人,並在使用舊連線的地方替換它。
修復存取權限後,請在路由中選擇儲存更改,如有需要則重新啟動自動化,並從來源聊天傳送新訊息以確認其到達目的地。您可以使用私人測試聊天。
其他檢查項請參閱訊息送達與權限 → Discord 機器人。
作者名稱、回覆和置頂
一般機器人訊息使用機器人自己的名稱和頭像。例如,Maya 的副本會顯示為由您的機器人 Community Forwarder 發佈。訊息格式仍可在文字中包含 Maya 的名稱。
如果您希望 Discord 貼文本身顯示 Maya 的名稱和頭像,請使用 Webhook 傳送。每條複製訊息都可以使用其原作者身分,而不是所有貼文都使用同一個機器人頭像。
您可以讓已連線的機器人自動處理此操作:
- 為機器人在接收頻道授予管理 Webhook權限。
- 在 ForwardMsg 中點選左側清單中的來源聊天以開啟其設定;也可以點選全域性設定,將此選項套用到所有繼承它的聊天。
- 開啟進階 → 使用作者名稱和頭像照片傳送。
- 開啟啟用 webhook。
- 選擇儲存更改,然後透過自動化傳送新訊息,檢查它在 Discord 中顯示的名稱和頭像。
機器人現在會建立/管理用於傳送訊息的 Webhook。使用此選項時,無需為每個接收頻道手動建立 Webhook。
| 傳送方式 | Discord 貼文上的名稱和頭像 | 原生回覆和同步置頂/取消置頂 |
|---|---|---|
| Discord 機器人,關閉「啟用 webhook」 | 機器人自己的資料 | 具備相應權限並啟用同步選項後可用。 |
| Webhook,開啟「啟用 webhook」 | 原作者的名稱和頭像 | 不可用:Discord Webhook 無法建立原生回覆或置頂/取消置頂訊息。 |
需要回覆或置頂操作時,請關閉啟用 webhook。請參閱訊息操作同步和進階設定。
妥善保管權杖
請像密碼一樣保護機器人權杖
切勿透過聊天、郵件、工單、螢幕擷取畫面或共用程式碼傳送機器人權杖。如果權杖洩露,請在 Discord 中重置,並在 ForwardMsg 中使用新權杖重新新增機器人。在所有使用舊連線的地方替換連線、儲存設定,並重新啟動受影響的自動化。