GASを使ってDiscordとシームレスに連携する方法
GASとDiscordを連携するための基本
GAS(Google Apps Script)は、Googleの様々なサービスを使ったアプリケーションを作る際に非常に便利なツールです。ここでは、特にそのGASを使って、Discordという人気のチャットアプリと連携する方法について解説します。
Discordは、APIを通じてさまざまなサービスと連携する機能を持っています。GASを用いることで、このAPIにリクエストを送信し、指定のチャンネルにメッセージを送ることができます。
DiscordでWebhookを設定する
まず、DiscordとGASを連携するために、DiscordのWebhookを設定する必要があります。
1. Discordで、連携したいサーバーの設定を開く。
2. サーバーの設定メニューから「Integrations」タブに進む。
3. 「Webhook」を選択して「New Webhook」をクリックし、新しいWebhookを作成します。
4. 作成したWebhookのURLをコピーします。このURLをGASで使用します。
GASでDiscordにメッセージを送るスクリプトを作成する
次に、Webhookで得たURLを使って、GAS側でメッセージを送るスクリプトを作成します。
function sendMessageToDiscord() {
var url = 'YOUR_WEBHOOK_URL_HERE';
var payload = JSON.stringify({ content: "こんにちは、猫男です!" });
var params = {
method: 'post',
contentType: 'application/json',
payload: payload
};
UrlFetchApp.fetch(url, params);
}
次に、このスクリプトをGoogle Apps Scriptのエディタに貼り付け、YOUR_WEBHOOK_URL_HEREを先ほどコピーしたWebhookのURLで置き換えてください。
このコードは、指定したURLにメッセージを送信します。Pythonと異なり、JavaScriptのメソッドを活用して、GAS上でHTTPリクエストを行うことができます。
スクリプトを実行する
スクリプトの準備が整ったら、GASエディタで「Run」ボタンを押してスクリプトを実行します。これで、実際にDiscordにメッセージが送られます。
Discordの該当チャンネルを確認し、メッセージが正常に表示されていることを確認してください。
練習問題
Webhook URLを使って、GASからDiscordのチャンネルに「今日はいい天気ですね!」というメッセージを送るスクリプトを書いてください。
解答・解説
function sendWeatherMessageToDiscord() {
var url = 'YOUR_WEBHOOK_URL_HERE';
var payload = JSON.stringify({ content: "今日はいい天気ですね!" });
var params = {
method: 'post',
contentType: 'application/json',
payload: payload
};
UrlFetchApp.fetch(url, params);
}
この解答例は、WebhookのURLに対してPOSTリクエストを送信し、Discordの指定されたチャンネルに「今日はいい天気ですね!」というメッセージを送るものです。
- UrlFetchApp.fetch(): GASのメソッドで、HTTPリクエストを送って外部データを取得するのに使います。
- JSON.stringify(): JavaScriptのオブジェクトをJSON文字列に変換するメソッドです。
- methodとcontentType: HTTPリクエストの種類(POST)とコンテンツタイプを指定するプロパティです。
この方法を使えば、GASから簡単にDiscordと連携が可能です。