前置作業
建立 Bot
-
到 https://discord.com/developers/applications 按下右上角
New Application
取個名字按下 Create
-
點選左邊 Bot 分頁
按下右上角的 Add Bot
Yes,不然呢
-
這個 bot 因為預計作為自己用,所以把 Public Bot 點掉
點完之後點下面的存檔
將 Bot 加到 Channel 中
-
點選左邊 Oauth2 分頁
-
拉到下面 OAuth2 URL Generator 的地方 Scopes 的地方 bot 勾起來
-
再來下面 Send Message 勾起來
-
此時會得到一個網址,複製起來
-
用瀏覽器開這個網址來用自己的 user 邀請這個 bot 加入 channel,看到以下畫面,按下 Continue
-
按下 Authorize。注意這邊有 Send Message 這個權限
-
授權之後就完成了
-
此時在 Channel 裡面會看到 Bot 已經加入的訊息
以 Bot 身份傳遞訊息
HTTP API
HTTP API 的 base URL 為(文件):
https://discord.com/api/v{version_number}
傳送訊息的 API 為 Create Message(Channel ID 取得方式):
POST /channels/{channel.id}/messages
驗證的方式是加上 Authorization
這個 header(文件):
Authorization: Bot MTk4NjIyNDgzNDcxOTI1MjQ4.Cl2FMQ.ZnCjm1XVW7vRze4b7Cq4se7kKWs
Bot Token 可在 Bot 頁面中取得
範例
curl https://discord.com/api/v9/channels/903797273786462291/messages \
-H 'Authorization: Bot MTk4NjIyNDgzNDcxOTI1MjQ4.Cl2FMQ.ZnCjm1XVW7vRze4b7Cq4se7kKWs' \
-H 'Content-Type: application/json' \
--data @data.json
其中 data.json
為:
{
"content": "hello world!",
"embeds": [
{
"title": "Oops!",
"description": "[Something](https://example.com) happened",
"fields": [
{
"name": "speed",
"value": "fast",
"inline": true
},
{
"name": "mood",
"value": "happy",
"inline": true
}
],
"timestamp": "2021-10-30T22:40:28+08:00"
}
]
}
結果:
Appendix
取得 Channel ID
{channel.id}
可以從頻道的網址直接取得:
https://discord.com/channels/{guild_id}/{channel_id}
或是開啟 developer mode 以後對頻道按右鍵取得
Developer Mode 可從 App settings 中的 Advanced 開啟