前置作業

建立 Bot

  1. https://discord.com/developers/applications 按下右上角 New Application

    New Application

    取個名字按下 Create

    Create An Application

  2. 點選左邊 Bot 分頁

    Bot

    按下右上角的 Add Bot

    Add Bot

    Yes,不然呢

    Yes

  3. 這個 bot 因為預計作為自己用,所以把 Public Bot 點掉

    Public Bot

    點完之後點下面的存檔

    Save

將 Bot 加到 Channel 中

  1. 點選左邊 Oauth2 分頁

    OAuth2

  2. 拉到下面 OAuth2 URL Generator 的地方 Scopes 的地方 bot 勾起來

    bot

  3. 再來下面 Send Message 勾起來

    Send Message

  4. 此時會得到一個網址,複製起來

    OAuth2 URL

  5. 用瀏覽器開這個網址來用自己的 user 邀請這個 bot 加入 channel,看到以下畫面,按下 Continue

    Continue

  6. 按下 Authorize。注意這邊有 Send Message 這個權限

    Authorize

  7. 授權之後就完成了

    Success

  8. 此時在 Channel 裡面會看到 Bot 已經加入的訊息

    Joined

以 Bot 身份傳遞訊息

HTTP API

HTTP API 的 base URL 為(文件):

https://discord.com/api/v{version_number}

傳送訊息的 API 為 Create MessageChannel ID 取得方式):

POST /channels/{channel.id}/messages

驗證的方式是加上 Authorization 這個 header(文件):

Authorization: Bot MTk4NjIyNDgzNDcxOTI1MjQ4.Cl2FMQ.ZnCjm1XVW7vRze4b7Cq4se7kKWs

Bot Token 可在 Bot 頁面中取得

Token

範例

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"
        }
    ]
}

結果:

Result

Appendix

取得 Channel ID

{channel.id} 可以從頻道的網址直接取得:

https://discord.com/channels/{guild_id}/{channel_id}

或是開啟 developer mode 以後對頻道按右鍵取得

copy channel ID

Developer Mode 可從 App settings 中的 Advanced 開啟

App Settings

advanced