GASとDiscordの連携でメンションを活用する極意
GASとDiscordをつなぐ準備
まず、GASを使ってDiscordでメンションをするための準備をしましょう。最初に必要なのは、DiscordのWebhooks機能です。
DiscordでWebhookを設定する方法
DiscordのWebhookを利用することで、GASから直接メッセージを送信できるようになります。
- Discordのサーバーを開き、Webhookを設定したいチャンネルの「設定」をクリックします。
- 「インテグレーション」に移動し、「ウェブフック」を選択します。
- 「ウェブフックを作成」をクリックし、名前やアイコンを設定します。
- URLが生成されるので、それをGASで利用します。
これで、GASでメッセージをDiscordに送信する準備が整いました。
GASプロジェクトをセットアップする
次に、GASプロジェクトを設定していきます。スクリプトエディタを開き、以下の手順で準備します。
- Googleドライブで新規プロジェクトを作成します。
- スクリプトエディタを開きます。
- 新しいプロジェクトを選択し、スクリプトを書く準備をします。
これで、GASプロジェクトが作成できました。
GASでDiscordにメンションを送る方法
ここからは、GASでDiscordにメンションをする具体的なスクリプトを書く方法を説明します。
スクリプトを書いてメッセージを送信する
GASとDiscordをつなぐスクリプトを作成していきます。
function sendDiscordMessage() {
const url = 'DISCORD_WEBHOOK_URL';
const payload = {
"content": "@everyone GASからのメッセージです!"
};
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
UrlFetchApp.fetchを使って、DiscordのWebhook URLへHTTP POSTリクエストを送っています。このリクエストにはメンション内容を含むペイロードを与えています。
メンションの個別指定もしてみよう
特定のユーザーにメンションを送ることもできます。以下の方法で実現可能です。
特定ユーザーへのメンション
ユーザーIDを利用して、特定のユーザーにメンションを送信することができます。
function sendMentionToUser() {
const url = 'DISCORD_WEBHOOK_URL';
const userID = "USER_ID";
const payload = {
"content": "<@!" + userID + "> こんにちは、メッセージが届きましたよ!"
};
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
ユーザーIDを<@!USER_ID> 形式で指定することで、特定のユーザーに対してメッセージを送れます。
練習問題:GASでメンションを自動化する
GASを使ってDiscordで特定の言葉を聞くたびにメンションを自動的に送るスクリプトを作成してください。使用するWebhook URLは “DISCORD_WEBHOOK_URL” で、Webhookを活用してください。
解答・解説:自動化メンションスクリプト
function autoMentionOnKeywords() {
const keywords = ["緊急", "重要", "知らせ"];
const url = 'DISCORD_WEBHOOK_URL';
// チェックしたいメッセージを仮定
const message = "これは重要なお知らせです!";
keywords.forEach(function(keyword) {
if (message.includes(keyword)) {
const payload = {
"content": "@everyone 重要なお知らせがあります!"
};
const options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload)
};
UrlFetchApp.fetch(url, options);
}
});
}
このスクリプトは、特定のキーワードが登場した場合に、自動的にDiscordチャンネルへメンションを送信するように設定しています。forEachメソッドを使ってキーワードをチェックし、見つかった場合にはメッセージを送信しています。