【用 JS 寫一個 Discord Bot!】01 建立機器人

創建機器人

首先到 Discord Developer 建立機器人。(需登入)

1. 新增 APP

進入網頁後,點擊按鈕 New Application。

2. 設定 APP 名稱

提醒一下,APP名稱會出現在這邊:

3. 點選左邊的 Bot

4. 新增 Bot

點擊 Add Bot。

Bot 新增後可以更改它的 USERNAME、ICON(頭貼),修改完畢後記得儲存。

這裡的 Token 指的是機器人的秘鑰,編寫程式時需要加入這串 token。

切忌不要將 token 洩漏出去,因為擁有 token 的人可以操控這隻 bot。

題外話:我曾經不小心把 token 上傳到 Github 上面過(當時還沒有開放私有庫),結果不到短短的一小時就被盜用,那時候整個 DC 群組的人都收到了廣告訊息…XD

※ 2021/06/27 補充:現在如果不小心把 token 上傳到 Github,Discord 官方會用 Discord 通知 token 擁有人並強制重新產生 token。

如果 token 不小心洩漏,可以點擊 Regenerate 重新產生 token。

5. 設定機器人權限

拉到最下面可以看到 Bot Permissions,這裡可以設定機器人的權限。

勾選完後記得將 PERMISSIONS INTEGER 記錄下來。

6. 邀請機器人至伺服器

回到 General Information,複製 APP 的 CLIENT ID。

邀請 url 的格式如下,將剛才複製的 CLIENT ID 與 PERMISSIONS INTEGER 替換即可:

https://discordapp.com/oauth2/authorize?&client_id=CLIENT_ID&scope=bot&permissions=PERMISSIONS_INTEGER

範例如下:

https://discordapp.com/oauth2/authorize?&client_id=695898879895404584&scope=bot&permissions=8

機器人進入伺服器後會是離線狀態,這完全是正常的,接下來我們就要用 Node.js 編寫機器人的功能。

建立基礎環境

必備:

  • Node.js 版本 v14.0.0 以上
  • 編輯器 (推薦 Visual Studio Code)

1. 安裝 Discord.js v12.5.3

1
$ npm install discord.js@12.5.3

2. 新增 token.json

1
2
3
{
"token": "Token"
}

Token 在 Bot 頁面複製:

※ 如果專案要上傳至 Github,切記要將 token.json 加入 .gitignore。

3. 新增 discord.js

於專案中新增 discord.js,這邊我們使用 Discord.js 的官方範例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const Discord = require('discord.js');
const { token } = require('./token.json');
const client = new Discord.Client();

// 連上線時的事件
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});

// 當 Bot 接收到訊息時的事件
client.on('message', msg => {
// 如果訊息的內容是 'ping'
if (msg.content === 'ping') {
// 則 Bot 回應 'Pong'
msg.reply('pong');
}
});

client.login(token);

4. 運行程式

讓機器人上線吧!

1
$ node discord.js

測試一下效果:

2021/09/22 更新

本篇文章之前預設安裝最新版 discord.js,而 discord.js 已於 2021/08/06 發布 v13 版本,寫法完全翻新,因此舊程式碼無法起作用。

請使用舊的 v12.5.3 版本。

1
$ npm install discord.js@12.5.3

這是本次實作的範例程式碼,可以參考檔案的配置,或是直接 Clone 到自己的電腦裡運行。

啟用步驟

  1. 安裝:npm install
  2. 到 token.json,將 Your token 更換自己機器人的 Token
  3. 執行:node discord.js

【用 JS 寫一個 Discord Bot!】系列文章

文章結束囉~

如果我的文章對你有幫助,可以幫我拍個手,感謝支持!