GASでSlack Bot作成!基本から応用まで徹底解説
/ 初心者向け
GASでSlack Bot作成!基本から応用まで徹底解説
「もっと業務を効率化したい」「チームとのコミュニケーションを円滑にしたい」
そんな願いを叶える強力なツール、それがSlack Botです。そして、そのSlack Botを驚くほど簡単に、しかも無料で作成できるのがGoogle Apps Script (GAS) なのです。
この記事では、GASの専門家ブロガーである私が、GASを使ったSlack Botの作成方法を、初心者の方でも理解できるように、基本から応用まで徹底的に解説します。
なぜGASでSlack Botを作るのか?
GASでSlack Botを作成するメリットは数多くあります。
- 無料: Googleアカウントがあれば誰でも無料で利用できます。
- 簡単: JavaScriptの知識があれば、比較的容易に開発できます。
- 連携力: Google Workspace (Gmail, スプレッドシート, ドキュメントなど) との連携が強力です。
- Webhooks: SlackのIncoming Webhooks機能を利用すれば、外部サービスからのメッセージ送信が容易になります。
準備するもの
1. Googleアカウント: GASを利用するために必須です。
2. Slackワークスペース: Botを連携させるためのSlackワークスペースが必要です。
3. Slack Incoming Webhooks: Slack Botにメッセージを送信するために必要です。後ほど設定方法を解説します。
Slack Incoming Webhooksの設定方法
Slack Botにメッセージを送信するためには、まずSlack側でIncoming Webhooksを設定する必要があります。
1. Slackアプリディレクトリにアクセス: Slackのワークスペースで、「アプリ」>「アプリディレクトリ」にアクセスします。
2. 「Incoming Webhooks」を検索: 検索バーに「Incoming Webhooks」と入力し、検索結果から選択します。
3. 「Add to Slack」をクリック: 「Add to Slack」ボタンをクリックし、設定を進めます。
4. 連携するチャンネルを選択: Botのメッセージを送信したいチャンネルを選択し、「Allow」をクリックします。
5. Webhook URLをコピー: 最後に表示される「Webhook URL」をコピーしておきます。このURLはGASからSlackにメッセージを送信する際に使用します。
GASでSlack Botを作成してみよう!
1. GASプロジェクトの作成
Googleドライブを開き、「新規」>「その他」>「Google Apps Script」を選択して、新しいスクリプトプロジェクトを作成します。
プロジェクトに分かりやすい名前(例: SlackBotSender)を付けましょう。
2. Slackへのメッセージ送信スクリプト
以下のコードをGASのエディタに貼り付けます。
function sendSlackMessage() {
// ここにコピーしたSlack Incoming Webhooks URLを貼り付けます
var webhookUrl = 'YOUR_WEBHOOK_URL';
var message = {
"text": "こんにちは!GASから送信されたメッセージです!",
"username": "GAS Bot", // Botの名前
"icon_emoji": ":robot_face:" // Botのアイコン (Slackで利用可能なemoji)
};
var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(message)
};
UrlFetchApp.fetch(webhookUrl, options);
}
コードの説明:
webhookUrl: 先ほどコピーしたSlack Incoming WebhooksのURLをここに貼り付けます。message: 送信するメッセージの内容をJSON形式で記述します。text、username、icon_emojiなど、様々な設定が可能です。options: HTTP POSTリクエストのオプションを指定します。method、contentType、payloadを設定します。UrlFetchApp.fetch(): 指定したURLにHTTPリクエストを送信します。
3. スクリプトの実行
GASエディタの上部にある関数選択メニューで sendSlackMessage を選択し、実行ボタン(▶︎)をクリックします。
初めて実行する際には、スクリプトへのアクセス権限を承認する必要があります。
4. Slackでの確認
設定したチャンネルに、GASから送信されたメッセージが表示されていれば成功です!
応用編:トリガーを使って自動化する
GASの真価は、トリガーを使った自動化にあります。例えば、以下のような自動化が可能です。
- スプレッドシートの更新をSlackに通知: 特定のセルの値が変更されたらSlackに通知する。
- Gmailの新着メールをSlackに通知: 特定の条件に合致するメールを受信したらSlackに通知する。
- 定期的なメッセージ送信: 毎日決まった時間に定型メッセージをSlackに送信する。
スプレッドシート更新をトリガーにする例
1. GASエディタで「トリガー」アイコン(時計のマーク)をクリックします。
2. 「トリガーを追加」ボタンをクリックします。
3. 「実行する関数を選択」で sendSlackMessage を選択します。
4. 「実行するデプロイを選択」は「ヘッド」のままにします。
5. 「イベントのソースを選択」で「スプレッドシートから」を選択します。
6. 「イベントの種類を選択」で「セルの編集時」などを選択します。
7. 「通知設定」は必要に応じて設定します。
8. 「保存」をクリックします。
これで、スプレッドシートが編集されるたびにSlackにメッセージが送信されるようになります。
さらに高度な活用
- Slack APIの利用: Incoming Webhooksだけでなく、Slack APIを利用することで、より高度なBot開発が可能になります。例えば、Slack上のユーザーにメッセージを返信したり、チャンネルの情報を取得したりできます。
- JSONパーサー: Slack APIから返されるJSONデータをGASで解析して、さらに複雑な処理を行うことができます。
- エラーハンドリング:
try-catch文を使って、エラー発生時の処理を記述し、Botの安定性を高めましょう。
まとめ
GASを使えば、プログラミング初心者でも手軽に、そして強力なSlack Botを作成できます。業務の自動化やチームのコミュニケーション活性化に、ぜひGASとSlack Botを活用してみてください。
この記事が、あなたのSlack Bot作成の一助となれば幸いです!
GAS自動化の導入相談
請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。