技術ブログ

GASでSlack Bot作成!基本から応用まで徹底解説

/ 初心者向け

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形式で記述します。textusernameicon_emoji など、様々な設定が可能です。
  • options: HTTP POSTリクエストのオプションを指定します。methodcontentTypepayload を設定します。
  • 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通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る