GASと連携してDiscordボットを作成するステップバイステップガイド

GASと連携してDiscordボットを作る方法が知りたいけど、どこから手を付けていいかわからないな…
猫男
猫男
catman
catman
心配は無用だ、初心者よ。catmanが君に一からDiscordボットの作り方を教えてやろう。まずは基本から始めようか。

Discordボットを作るための基本知識

Discordボットを作るには、まずDiscord Developer Portalでボット用のアプリケーションを作成します。

ここでは、ボットトークンを取得して、ボットの設定を行っておく必要があります。

Discord Developer Portalへの登録とボットトークンの取得

Discord Developer Portalにサインインし、新しいアプリケーションを作成します。

アプリケーション内で「Bot」というタブを選択し、ボットを追加することでトークンが取得できます。

 

ボットトークンって重要そうだね…間違って漏らさないようにしなきゃ。
猫男
猫男
catman
catman
その通りだ。ボットトークンは秘密にしておくべきものさ。さあ、次はGASを準備しよう。

GASでDiscordボットを動かす準備

GASを利用してDiscordボットを動かすためには、スクリプトを作成する必要があります。

GASプロジェクトの作成

GoogleのG SuiteアカウントでGASのプロジェクトを作成します。

新規プロジェクトを開始し、必要なライブラリを用意します。

必要なライブラリとセットアップ

「UrlFetchApp」を使って、HTTPリクエストをDiscord APIに送る準備をします。

次は、必要な関数を作成していきます。

 

GASの中でどうやってボットを動かすか、少し難しそうに聞こえるけど、行けるかな…。
猫男
猫男
catman
catman
心配無用だ、猫男よ。catmanの指導のもとでやれば、大丈夫だ。次は具体的にスクリプトを書いてみよう。

GASでDiscord APIを使ったスクリプト作成

GASを用いて、HTTPリクエストを送ることでDiscordボットの動作を実現します。

Discordにメッセージを送る基本スクリプト


function sendMessageToDiscord(content) {
  const url = "https://discord.com/api/v8/channels/YOUR_CHANNEL_ID/messages";
  const token = "YOUR_BOT_TOKEN";
  
  const options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bot " + token
    },
    "payload": JSON.stringify({ "content": content })
  };
  
  UrlFetchApp.fetch(url, options);
}

このスクリプトは、特定のチャンネルにメッセージを送ります。

URLやトークンを送信対象に合わせて設定してください。

GASスクリプトの実行とデバッグ

プロジェクト内で、スクリプトを実行して動作を確認します。

GASのログを利用して、問題があればデバッグを行ってください。

 

これで実際にメッセージを送ったりできそうだ!ドキドキするなぁ。
猫男
猫男
catman
catman
まさにその通りさ。君もわかってきたようだな。次は練習問題でさらに理解を深めよう。

練習問題

特定の条件(例:時間帯)に応じて、GASを使ってDiscordチャンネルにメッセージを自動送信してみましょう。

  

解答と解説


function sendScheduledMessage() {
  const hour = new Date().getHours();
  if (hour === 9) { // 午前9時
    sendMessageToDiscord("おはようございます!");
  } else if (hour === 21) { // 午後9時
    sendMessageToDiscord("おやすみなさい!");
  }
}

function sendMessageToDiscord(content) {
  const url = "https://discord.com/api/v8/channels/YOUR_CHANNEL_ID/messages";
  const token = "YOUR_BOT_TOKEN";
  
  const options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bot " + token
    },
    "payload": JSON.stringify({ "content": content })
  };
  
  UrlFetchApp.fetch(url, options);
}

このスクリプトでは、時間に応じて異なるメッセージを送信します。

新しいDateオブジェクトを使って、現在の時間を取得しています。

条件に応じて、適切なメッセージを設定します。これで自動化されたメッセージ送信が可能です。

完璧に理解できたし、やってみたらうまくいったよ!catman、ありがとう!
猫男
猫男
catman
catman
その調子でどんどん学んでいけ。君のスキルはすぐに成長するさ。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。