特定の単語に反応するSlack BotをGASで作る簡単ステップ!
特定の単語に反応するSlack Botの基本
特定の単語に反応するSlack Botは、GASとSlackのAPIを利用して構築します。
まず、SlackのAppを作成し、APIトークンを取得するところから始めます。
次に、GASでスクリプトを作成してSlackと連携します。
Slack Appを作成する
Slack Appを作成し、APIトークンを取得しておきましょう。
1. SlackのAPIページにアクセスし、新しいAppを作成します。
2. OAuth & Permissions からAPIトークンを発行します。
GASでスクリプトを作成する
GASを使ってSlack Botを作成します。まずは、GASエディタを開きます。
GASエディタで以下のスクリプトを例に作成します。
function doPost(e) {
var slackRequest = JSON.parse(e.postData.contents);
var text = slackRequest.event.text;
if (text && text.toLowerCase().indexOf('hello') !== -1) {
respondToSlack(slackRequest);
}
}
function respondToSlack(request) {
var responseText = "こんにちは!いかがお過ごしですか?";
var payload = {
token: "<Your-API-Token>",
channel: request.event.channel,
text: responseText,
};
UrlFetchApp.fetch("https://slack.com/api/chat.postMessage", {
method: 'post',
payload: payload
});
}
このスクリプトでは、特定の単語「hello」に反応してSlackにメッセージを送信します。
GASスクリプトの構成
GASのスクリプトには、Slackからのリクエストを受け取る部分と、メッセージを送信する部分があります。
イベントを受け取る
doPost()関数はSlackからのイベントを受け取ります。
特定の単語に反応
text.toLowerCase().indexOf(‘hello’) !== -1 で特定の単語をチェックします。
Slackにメッセージを送信
respondToSlack関数を使ってSlackにメッセージを送信します。
payloadを構築し、UrlFetchApp.fetch()を使って実際にSlackにメッセージを送ります。
まとめ:GASで簡単にSlack Botを作成
- Slack Appを作成し、APIトークンを取得
- GASスクリプトでイベントを受け取り、特定の単語を検出する
- 検出した単語に基づいてSlackにメッセージを送信
練習問題
特定の単語「thanks」に反応して、「どういたしまして!」と返答するSlack BotをGASで作成してください。
解答・解説
function doPost(e) {
var slackRequest = JSON.parse(e.postData.contents);
var text = slackRequest.event.text;
if (text && text.toLowerCase().indexOf('thanks') !== -1) {
respondToSlack(slackRequest);
}
}
function respondToSlack(request) {
var responseText = "どういたしまして!";
var payload = {
token: "<Your-API-Token>",
channel: request.event.channel,
text: responseText,
};
UrlFetchApp.fetch("https://slack.com/api/chat.postMessage", {
method: 'post',
payload: payload
});
}
このスクリプトでは、Slackからのリクエストを受け取り、そのメッセージに「thanks」が含まれている場合に「どういたしまして!」と応答します。
doPost()関数でSlackからのイベントを受け取り、indexOf()で特定の単語を探します。
respondToSlack()関数では、Slackにメッセージを返すためのpayloadを作成し、UrlFetchApp.fetch()で送信します。