GASでSlack Botを爆速作成!基本から応用まで
/ 初心者向け
GASでSlack Botを爆速作成!基本から応用まで
GAS(Google Apps Script)は、Google Workspaceの各種サービスを連携させたり、自動化したりできるJavaScriptベースのスクリプト言語です。今回は、このGASを使って、手軽にSlack Botを作成する方法を初心者の方にも分かりやすく解説します。
1. Slack Appの作成と設定
まず、Slack側でBotの「顔」となるAppを作成し、必要な情報を取得します。
1. Slack App Directoryにアクセス: https://api.slack.com/apps にアクセスし、「Create an App」ボタンをクリックします。
2. Appの名前とワークスペースを選択: Appの名前を適当につけ(例: GAS Bot Example)、Botを連携させたいSlackワークスペースを選択します。
3. Bot Tokenの取得: 左側のメニューから「OAuth & Permissions」を選択し、「Scopes」セクションで「Bot Token Scopes」に chat:write を追加します。その後、「OAuth Tokens for Your Workspace」セクションにある「Install to Workspace」をクリックし、表示される「Bot User OAuth Token」をコピーしておきます。このトークンがGASからSlackへメッセージを送る際に必要になります。
4. Incoming Webhooksの設定: 左側のメニューから「Incoming Webhooks」を選択し、「Activate Incoming Webhooks」をオンにします。「Add New Webhook to Workspace」をクリックし、メッセージを投稿したいチャンネルを選択して「Allow」をクリックします。表示される「Webhook URL」もコピーしておきましょう。こちらは、GASから特定のチャンネルにメッセージを投稿する際に使用します。
2. GASプロジェクトの作成とコード記述
次に、GASでSlack Botの動作を記述します。
1. GASプロジェクトの作成: Googleドライブを開き、「新規」>「その他」>「Google Apps Script」を選択して新しいプロジェクトを作成します。
2. スクリプトエディタの開き方: プロジェクト名(例: Slack Bot Script)を付け、スクリプトエディタが表示されたら、Code.gs というファイルに以下のコードを記述します。
2.1. Webhook URLを使ったメッセージ送信
Webhook URLを使ってSlackにメッセージを送信する最も簡単な方法です。
function sendMessageToSlack() {
var webhookUrl = 'ここにコピーしたWebhook URLを貼り付け'; // ★ 取得したWebhook URL
var message = {
'text': 'GASからこんにちは!👋'
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(message)
};
UrlFetchApp.fetch(webhookUrl, options);
Logger.log('Slackにメッセージを送信しました。');
}
2.2. Bot Tokenを使ったメッセージ送信(より高機能)
Bot Tokenを使うと、より高度なAPI連携が可能になります。今回は、Bot Tokenを使ってダイレクトメッセージ(DM)を送る例を挙げます。
function sendDirectMessage() {
var botToken = 'ここにコピーしたBot User OAuth Tokenを貼り付け'; // ★ 取得したBot Token
var userId = 'ここにメッセージを送りたいユーザーのIDを貼り付け'; // ★ ユーザーID(例: U0123456789ABC)
var url = 'https://slack.com/api/chat.postMessage';
var message = {
'channel': userId,
'text': 'GAS BotからのDMです。何かお手伝いできることはありますか?'
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'headers': {
'Authorization': 'Bearer ' + botToken
},
'payload' : JSON.stringify(message)
};
var response = UrlFetchApp.fetch(url, options);
Logger.log('Slack DM送信結果: ' + response.getContentText());
}
補足: ユーザーIDは、Slackのプロフィール画面のURLや、@ユーザー名 と入力した際に表示されるIDなどで確認できます。
3. GASの実行とトリガー設定
作成したGASを動かしてみましょう。
1. 実行: スクリプトエディタの上部にある関数選択ドロップダウンで sendMessageToSlack または sendDirectMessage を選択し、▶️(実行)ボタンをクリックします。初回実行時には、スクリプトに権限を付与するための承認画面が表示されるので、内容を確認して許可してください。
2. トリガー設定: 定期的にメッセージを送信したり、特定のイベント(例: Googleフォームの回答があった時)に反応させたい場合は、トリガーを設定します。
- スクリプトエディタの左側にある時計アイコン(トリガー)をクリックします。
- 「トリガーを追加」ボタンをクリックします。
- 実行する関数、実行するデプロイ、イベントの種類(時間主導型、フォーム送信時など)を選択し、保存します。
4. まとめ
GASを使えば、複雑なAPI連携やサーバー構築なしに、手軽にSlack Botを作成できます。今回ご紹介したWebhook URLやBot Tokenを使ったメッセージ送信は、Slack Botの基本機能です。これを応用すれば、Googleフォームからの通知、スプレッドシートの更新通知、特定条件でのリマインダー送信など、様々な自動化を実現できます。ぜひ、GASであなただけの便利なSlack Botを作成してみてください!
さらに学びたい方へ:
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。