如何在 Discord 導入書籤機器人(使用 Zeabur 部署)
書籤機器人功能
在 Discord 中,對一個訊息按 🔖,機器人就會傳私訊,
將該訊息轉送給你,並保留原始訊息連結。
藉由這個方式達到「書籤」的功能,不怕錯過訊息後再也找不到。
這是在侯智薰(雷蒙)的 Discord 社群中,
雷蒙已經實作給大家使用的超好用功能!
雷蒙也寫了文章分享,但他是部署在自己的 NAS 上,
我自己主要是用 Zeabur 部署,所以就嘗試了用 Zeabur 部署,
並學習雷蒙紀錄步驟並分享出來。
實作步驟
Step 1:在電腦中預備程式
- 在電腦中建立一個資料夾。
- 在該資料夾中新增
main.py,內容如下:
import discord
import os
from discord.ext import commands
intents = discord.Intents.default()
intents.messages = True
intents.reactions = True
intents.message_content = True
bot = commands.Bot(command_prefix="!", intents=intents)
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.event
async def on_raw_reaction_add(payload):
# 當有人添加 🔖 表情符號時
if payload.emoji.name == '🔖':
channel = bot.get_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
user = await bot.fetch_user(payload.user_id)
# 建立嵌入訊息 (Embed)
embed = discord.Embed(title="已儲存書籤", description=message.content, color=0x3498DB)
embed.add_field(name="來源頻道", value=channel.mention)
embed.add_field(name="原訊息連結", value=message.jump_url)
try:
await user.send(embed=embed)
except discord.Forbidden:
print("無法私訊該用戶")
bot.run(os.getenv("DISCORD_TOKEN"))
在這裡有一個地方可以調整:color=0x3498DB,後面的色碼可以自行換成其他顏色,它會是訊息的左邊框的顏色。
- 新增 requirements.txt,內容如下:
discord.py
Step 2:部署到 Zeabur
- 在 VS Code based Editor 中安裝 Zeabur extension,使用該 extension 進行 Deploy。
- 按照部署機器人的引導,在 Zeabur 中新增一個 Project。
Step 3:在 Discord Developer Portal 建立應用程式並將 Token 複製到 Zeabur
- 前往 Discord Developer Portal (https://discord.com/developers/applications )。
- 點擊 “New Application” 並命名。
- 導覽至 “Bot” 分頁。
- 修改 Username(機器人在伺服器裡面顯示的名稱)也可以上傳 Icon(機器人的頭像)。
- 在 Privileged Gateway Intents 區塊裡面找到 Message Content Intent,打開該設定。
- 按 Reset Token 按鈕,完成驗證後,複製 Token。
- 回到 Zeabur,在剛剛建立的 Project 中找到「環境變數」分頁,先確認是不是已經有一個變數名稱是 DISCORD_TOKEN,如果沒有就自己新增一個。
- 將變數值設定為剛剛複製的 Token。
Step 4:將機器人加入伺服器
- 回到 Discord Developer Portal,在剛剛建立的 Application 中,進入到 OAuth2 分頁,在 URL Generator 區塊中選擇 bot。
- 底下會多出一段 Bot Permissions,選擇 View Channel、Send Messages、Read Message History 這三個選項。
- 到底下 Generated URL 區塊複製邀請網址。
- 打開邀請網址,會轉到 Discord,選擇要加入的伺服器。
- 成功加入之後可以測試一下。
大功告成! 🎉🎉🎉