Minecraftのサーバー用スクリプトをbashで作成した際に、
discordチャンネルにメッセージを送信する方法を調べたため記事にしました。
curlでpostしているだけです。
bot tokenを使用する方法とwebhookを用いた方法があります。
どちらも挙動は変わらないため、好きな方を採用してください。
事前準備
botの作成やwebhookの作成が終わってる人は飛ばしてください。
botを使用する場合
1. token・client IDの取得
こちら から新規Applicationを作成し、tokenとclient IDを取得してください。
また、botがサーバーに参加していないとメッセージを送信できないため、
下記URLにアクセスし、botを自分のサーバーに追加してください。
BOT_CLIENT_ID は書き換えてください。
https://discordapp.com/oauth2/authorize?client_id=BOT_CLIENT_ID&scope=bot&permissions=0
2. チャンネルIDの取得
discordのテキストチャンネル上で右クリック → IDをコピー
の手順でチャンネルIDを取得できます。
webhookを使用する場合
discordのテキストチャンネルの設定ボタン → 連携サービス → ウェブフックを作成
の順に進み、ウェブフックURLを取得してください。
サンプルコード
定数は適宜書き換えてください。
botを使用する場合
#!/bin/bash
readonly DISCORD_BOT_TOKEN="aaabbbcccdddeeefff"
readonly DISCORD_CHANNEL_ID="1234567890"
readonly MESSAGE="hogehogehoge"
curl \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bot $DISCORD_BOT_TOKEN" \
-d "{\"content\": \"$MESSAGE\"}" \
"https://discordapp.com/api/channels/$DISCORD_CHANNEL_ID/messages"
webhookを使用する場合
#!/bin/bash
readonly MESSAGE="fugafugafuga"
readonly WEBHOOK_URL="https://discord.com/api/webhooks/xxxxxxxxxx"
curl \
-X POST \
-H "Content-Type: application/json" \
-d "{\"content\": \"$MESSAGE\"}" \
"$WEBHOOK_URL"
以上、bashで(curlで)discordチャンネルにメッセージを送信する方法でした。