【Bash】discordにメッセージを送信する方法

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チャンネルにメッセージを送信する方法でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です