GASを使って簡単!Discordの自動返信Botを作成する方法
必要な準備
Discordの自動返信Botを作るために、まずは必要な準備を整えましょう。今回はGASを用いて、簡単にボットを作成します。
1. Discordアプリでボットを作成
ここでは、Discord Developer Portalを使用してBotを作成します。
- Discord Developer Portalにアクセスし、新しいアプリケーションを作成します。
- 「Bot」タブで、「Add Bot」をクリックしてボットを作成します。
- トークンが表示されるので、メモしておきます。これは後でGASに設定します。
このボットを実際に作成した後、Discordのサーバーにボットを追加しておく必要があります。
2. GASプロジェクトを作成
次に、Google Apps Script(略してGAS)のプロジェクトを作成します。
- Googleドライブを開き、新しい「Google Apps Script」プロジェクトを作成します。
- プロジェクト名は「DiscordBot」など、わかりやすい名前に設定します。
GASでDiscord自動返信Botを作成
GASを使って、Discordで動作する自動返信Botを作成していきましょう。
1. スクリプトを記入する
自動返信BotのコードをGASに書きましょう。
const DISCORD_TOKEN = 'YOUR_DISCORD_TOKEN_HERE';
function doPost(e) {
const input = JSON.parse(e.postData.contents);
if (input.t === 'MESSAGE_CREATE') {
const message = input.d.content;
if (message === 'こんにちは') {
sendReply(input.d.channel_id, 'こんにちは!');
}
}
}
function sendReply(channelId, text) {
const url = 'https://discord.com/api/channels/' + channelId + '/messages';
const options = {
method: 'post',
headers: {
'Authorization': 'Bot ' + DISCORD_TOKEN,
'Content-Type': 'application/json'
},
payload: JSON.stringify({ content: text })
};
UrlFetchApp.fetch(url, options);
}
このスクリプトがボットの基礎を構成します。Discordのイベントをキャッチし、特定のメッセージに対して返信を行います。
2. GASでスクリプトを実行設定
このコードを正確に動作させるために、GASのトリガーを設定します。
- スクリプトエディタで「トリガー」を開き、新しいトリガーを設定します。
- 「doPost」を選び、イベントソースを「ウェブアプリケーションとして公開」に設定します。
上記のトリガー設定を正しく行うことで、Discordのイベントを取得し、Botが自動返信を行う仕組みが機能します。
実装のまとめ
- Discord Developer Portalでボットを作成し、トークンを取得しました。
- Google Apps Scriptでプロジェクトを作成し、スクリプトを書きました。
- トリガーをGASに設定し、自動返信ができる環境を整えました。
これで、基本的なDiscordの自動返信Botが完成しました。このBotは、特定の条件に応じて自動でメッセージを返信することが可能になります。
練習問題
次のスクリプトが動作するように、何を設定する必要があるでしょうか。考えてみてください。
- 二つ以上の異なるキーワードに対して異なる返信を行うには、どのようにスクリプトを変更する必要があるでしょうか。
解答と解説
以下のスクリプトで、複数のキーワード「おはよう」「こんばんは」に対して、それぞれ異なる返信を設定しました。
const DISCORD_TOKEN = 'YOUR_DISCORD_TOKEN_HERE';
function doPost(e) {
const input = JSON.parse(e.postData.contents);
if (input.t === 'MESSAGE_CREATE') {
const message = input.d.content;
if (message === 'こんにちは') {
sendReply(input.d.channel_id, 'こんにちは!');
} else if (message === 'おはよう') {
sendReply(input.d.channel_id, 'おはようございます!');
} else if (message === 'こんばんは') {
sendReply(input.d.channel_id, 'こんばんは!');
}
}
}
function sendReply(channelId, text) {
const url = 'https://discord.com/api/channels/' + channelId + '/messages';
const options = {
method: 'post',
headers: {
'Authorization': 'Bot ' + DISCORD_TOKEN,
'Content-Type': 'application/json'
},
payload: JSON.stringify({ content: text })
};
UrlFetchApp.fetch(url, options);
}
このスクリプトでは、メッセージ内容の条件分岐を追加し、異なるメッセージに対してそれぞれの返信を設定しています。このように条件分岐(if文)を使用すれば、さまざまな自動返信Botを構築することができます。
しっかりと設定とコードを書き込み、トリガーやAPIの設定を正確に行うことで、Botの動作を確認することができるはずです。ぜひ、いろいろ試してみてください!