創建您的第一個 Discord 機器人比您想像的要容易。您不需要電腦科學學位或多年的程式設計經驗。在 2026 年,如果您專注的話,構建和部署一個功能正常的機器人只需要一個週末。
本指南將引導您完成整個過程:註冊您的機器人、編寫您的第一個指令、在本地測試它,以及將其部署上線。到最後,您將有一個機器人在您的伺服器上運行。
了解什麼是 Discord 機器人
Discord 機器人是一個透過 API 連接到 Discord 並回應事件的程式:當有人輸入指令、對訊息做出反應、加入伺服器等。
關鍵概念:
- 應用程式 vs. 機器人:您的「應用程式」已在 Discord 開發者入口網站中註冊。「機器人」是與該應用程式關聯的使用者帳戶。一個應用程式有一個機器人。
- 令牌 (Tokens):一個驗證您的機器人的密鑰。永遠不要分享這個。它就像您機器人的密碼。
- 意圖 (Intents):允許您的機器人查看某些事件(訊息、反應、成員狀態變更等)的權限。您只啟用您需要的。
- 指令 (Commands):機器人回應指令。現代機器人使用斜線指令 (
/command) 而不是前綴指令 (!command)。斜線指令是官方支援且推薦的。 - 事件 (Events):您的機器人監聽 Discord 事件(發送訊息、新增反應、成員加入)並對其做出反應。
步驟 1:在 Discord 開發者入口網站中註冊您的機器人
這是您的機器人在 Discord 系統中正式存在的地方。
流程:
- 前往 Discord 開發者入口網站
- 使用您的 Discord 帳戶登入
- 點擊「新增應用程式」
- 為其命名(例如,「我的第一個機器人」)
- 點擊「創建」
- 您現在位於您的應用程式設定中
現在創建機器人使用者:
- 前往「機器人」部分(左側邊欄)
- 點擊「新增機器人」
- 在機器人的使用者名稱下,您會看到一個「TOKEN」按鈕
- 複製令牌 — 這是您的機器人驗證的方式。請保密。 永遠不要公開分享它或在沒有加密的情況下將其提交到 GitHub。
設定機器人設定:
- 啟用「訊息內容意圖」(讓機器人讀取訊息文字)
- 啟用「伺服器成員意圖」(讓機器人查看伺服器中的成員)
- 向下捲動到「OAuth2」部分
步驟 2:產生您機器人的邀請連結
您需要一個特殊的邀請連結才能將機器人新增到伺服器。
在開發者入口網站中:
- 前往「OAuth2」→「URL 產生器」
- 在「範圍」下,勾選:
bot - 在「權限」下,選擇您的機器人可以做什麼:
發送訊息(任何機器人都必備)管理訊息(如果您要進行管理)新增反應(如果機器人對事物做出反應)連接+說話(如果是音樂/語音機器人)- 為了學習,只需選擇
發送訊息+讀取訊息(最低可行)
- 複製底部的產生的 URL
- 與伺服器擁有者分享此 URL(或自己使用它來新增到您自己的測試伺服器)
除非絕對必要,否則不要使用管理員權限。 過度授權是一種安全風險。
步驟 3:選擇您的語言和框架
初學者的兩個主要選項:
JavaScript (discord.js)
Discord.js 是最受歡迎的 Discord 機器人框架。龐大的社群、大量的教學課程和出色的文件。
優點:
- 最大的社群和最多的線上教學課程
- discord.js 文件非常出色
- Node.js 被廣泛使用且易於學習
- 易於部署到大多數託管平台
缺點:
- JavaScript 有怪癖(async/await 學習曲線)
- Node.js 增加了記憶體開銷,相較於 Python
開始使用:
- 安裝 Node.js (v18+)
- 創建一個專案資料夾
npm init -ynpm install discord.js
Python (discord.py)
語法更簡單,非常適合初學者,非常適合學習基礎知識。
優點:
- 最容易學習的語法
- 對於初學者來說很直觀
- discord.py 文件很好
- Python 無處不在(資料科學、網路、自動化)
缺點:
- 社群比 discord.js 小(但仍然很大)
- 教學課程比 JavaScript 少
- 記憶體使用量略高
開始使用:
- 安裝 Python 3.10+
- 創建一個專案資料夾
pip install discord.py
給初學者的建議: 如果您熟悉 Python,請使用 discord.py。如果您熟悉 JavaScript,請使用 discord.js。如果您兩者都不熟悉,Python 更容易學習,但 JavaScript 在線上擁有更多資源。選擇一個並致力於學習。
步驟 4:編寫您的第一個機器人(Python 範例)
這是一個最小的可運作的 Python Discord 機器人,它可以回應指令:
import discord
from discord.ext import commands
# 使用指令前綴和意圖創建機器人
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} has connected to Discord!')
@bot.command(name='hello', help='打招呼')
async def hello(ctx):
await ctx.send(f'Hello {ctx.author.name}!')
@bot.command(name='ping', help='回應 pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('YOUR_TOKEN_HERE')
這做了什麼:
- 連接到 Discord
- 監聽
!hello和!ping指令 - 在觸發時回應訊息
要運行它:
- 將
'YOUR_TOKEN_HERE'替換為您在步驟 1 中的實際令牌 - 另存為
bot.py - 運行:
python bot.py - 在 Discord 中,在任何頻道中輸入
!hello - 機器人回應:「Hello [您的名字]!」
步驟 5:在本地測試
在部署之前,請在本地(在您的電腦上)測試您的機器人。
設定測試伺服器:
- 創建一個私人的 Discord 伺服器以進行測試
- 使用步驟 2 中的邀請連結將您的機器人新增到其中
- 在本地運行您的機器人程式碼
- 在測試伺服器中輸入指令
- 留意終端機中的錯誤;修復它們
常見錯誤:
- 「無效的令牌」 — 您複製的令牌錯誤或已過期。在開發者入口網站中重新產生。
- 「缺少權限」 — 機器人沒有權限在此頻道中執行該操作。新增權限或使用機器人擁有更多權限的頻道。
- 「未啟用意圖」 — 您需要在開發者入口網站中啟用意圖(訊息內容意圖、伺服器成員意圖等)。
徹底測試。在生產環境中出現錯誤的機器人會令人尷尬。
步驟 6:新增更多指令
現在您了解了基礎知識,請擴展更多功能。
Python 範例 — 一個簡單的經濟指令:
@bot.command(name='balance', help='查看您的金幣餘額')
async def balance(ctx):
# 在真正的機器人中,這會查詢資料庫
# 現在,只需傳回一個模擬值
await ctx.send(f'{ctx.author.name}, you have 100 coins!')
@bot.command(name='roll', help='擲骰子 (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} rolled: **{result}**')
每個指令都是一個簡單的函數。新增您想要的數量。
步驟 7:部署您的機器人
在本地託管適用於測試,但當您關閉筆記型電腦時,您的機器人會停止。部署到伺服器,使其 24/7 全天候運行。
免費託管選項
Replit(對初學者來說最簡單):
- 前往 Replit.com
- 創建新的 Repl → Python(或 Node.js)
- 貼上您的機器人程式碼
- 點擊「運行」
- Replit 免費託管它(有限制:可能會在不活動後休眠)
Railway.app(現代、可靠):
- 前往 Railway.app
- 連接 GitHub(或直接上傳檔案)
- 創建新專案 → 選擇您的機器人
- Railway 自動部署
- 免費方案包括每月 5 美元的信用額度
Glitch(類似於 Replit):
- 前往 Glitch.com
- 創建新專案
- 貼上程式碼
- Glitch 使其保持運行(在免費方案限制內)
重要: 不要將您的令牌硬編碼到您推送到 GitHub 的程式碼中。使用環境變數:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
在本地創建一個 .env 檔案(新增到 .gitignore,使其不被提交):
DISCORD_TOKEN=your_actual_token_here
在 Replit/Railway 上,將令牌設定為平台設定中的秘密環境變數(不在程式碼中)。
常見的初學者錯誤
錯誤 1:硬編碼令牌 永遠不要將您的令牌放在您推送到 GitHub 的程式碼中。洩漏令牌的機器人會立即受到威脅。使用環境變數。
錯誤 2:不處理錯誤 您的機器人在遇到意外輸入時崩潰。新增錯誤處理:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Cannot divide by zero!')
except ValueError:
await ctx.send('Please enter valid numbers!')
錯誤 3:不尊重速率限制 Discord 限制了您發送訊息的速度。不要濫發 API。在批量操作之間新增延遲。
錯誤 4:忽略意圖 許多初學者機器人失敗是因為他們沒有在開發者入口網站中啟用必要的意圖。在部署之前,請檢查您的機器人需要的意圖。
錯誤 5:過於雄心勃勃的範圍 不要試圖在您的第一個機器人中構建經濟系統、管理、音樂和 50 個指令。從 3-5 個簡單的指令開始。一旦您感到舒適,就進行擴展。
後續步驟
現在您有了一個基本的機器人:
- 擴展功能: 新增更多指令、使用資料庫來持久化資料、實作複雜的邏輯
- 使用斜線指令: 現代
/command語法,而不是前綴指令 - 新增反應: 讓使用者點擊按鈕或使用表情符號做出反應
- 連接資料庫: 儲存使用者資料、金幣、偏好設定(SQLite 適合初學者,PostgreSQL 適合擴展)
- 加入社群: Discord 機器人開發者社群 (reddit.com/r/discordbots, Discord.js support server) 擁有每個問題的答案
資源
- discord.js 文件: https://discord.js.org
- discord.py 文件: https://discordpy.readthedocs.io
- Discord API 文件: https://discord.com/developers/docs/intro
- YouTube 教學課程: 搜尋「[discord.js/discord.py] tutorial」— 大量的內容
您的第一個 Discord 機器人是一個週末專案。您的第一個好的 Discord 機器人是一個月的練習。您的第一個被 1,000 個伺服器使用的機器人是幾個月的迭代、功能開發和社群建設。現在開始,不斷迭代,不要過度思考。