技術ブログ

GASでSlack Botを爆速作成!初心者でも簡単解説

/ 初心者向け

GASでSlack Botを爆速作成!初心者でも簡単解説

GASでSlack Botを爆速作成!初心者でも簡単解説

「もっと業務を効率化したい」「チームのコミュニケーションを円滑にしたい」

そんな悩みを抱えるあなたへ。Google Apps Script (GAS) を使えば、プログラミング初心者でも、あっという間にオリジナルのSlack Botを作成できます。

この記事では、GASの基本からSlack APIとの連携、そして実際に動くBotを作るまでのステップを、画像付きで分かりやすく解説していきます。さあ、あなただけの便利なSlack Botを作りましょう!

なぜGASでSlack Botを作るのか?

GASでSlack Botを作るメリットはたくさんあります。

  • 学習コストが低い: JavaScriptの知識があれば、すぐに始められます。GASはGoogle Workspaceとの連携が容易なため、普段からGoogleドキュメントやスプレッドシートを使っている方なら、さらに馴染みやすいでしょう。
  • 無料: Googleアカウントがあれば無料で利用できます。
  • 手軽さ: 複雑なサーバー構築や環境設定は一切不要。ブラウザ上で完結します。
  • Google Workspaceとの連携: Googleカレンダーの予定通知や、スプレッドシートのデータ更新をSlackに通知するなど、Googleサービスと連携させたBotも簡単に作成できます。

準備するもの

1. Googleアカウント: Gmailなどで使用しているアカウントがあればOKです。

2. Slackワークスペース: Botを連携させたいSlackワークスペースが必要です。

ステップ1:Slackアプリの作成とトークンの取得

まず、Slack APIにアクセスして、Botの「顔」となるアプリを作成します。

1. Slack APIサイトにアクセス: https://api.slack.com/ にアクセスし、「Create an App」ボタンをクリックします。

2. 「From scratch」を選択: 「Create an App」画面で、「From scratch」を選択します。

3. アプリ名とワークスペースの設定: アプリ名(例:GAS Slack Bot)と、開発対象のSlackワークスペースを選択して「Create App」をクリックします。

4. 「OAuth & Permissions」へ移動: 作成したアプリの管理画面から、左側のメニューにある「OAuth & Permissions」を選択します。

5. Bot Token Scopes の追加: 「Scopes」セクションにある「Bot Token Scopes」で、「Add an OAuth Scope」をクリックし、chat:write を追加します。これで、Botがメッセージを送信できるようになります。(その他、必要に応じて権限を追加します。)

6. トークンのインストールと取得: 画面上部にある「Install to Workspace」ボタンをクリックし、権限を承認すると、「Bot User OAuth Token」が表示されます。このトークンは 絶対に他人に知られないように 厳重に管理してください。後ほどGASで利用します。

ステップ2:GASスクリプトの作成

次に、取得したトークンを使ってSlackにメッセージを送信するGASスクリプトを作成します。

1. GASエディタを開く: Googleドライブで「新規」>「その他」>「Google Apps Script」を選択して、新しいスクリプトプロジェクトを作成します。プロジェクト名を分かりやすいもの(例:Slack Bot Sender)に変更しましょう。

2. コードの記述: 以下のコードを コード.gs ファイルに貼り付けます。

    // Slack Bot Token (取得したトークンに置き換えてください)
    const SLACK_BOT_TOKEN = "YOUR_SLACK_BOT_TOKEN";
    // メッセージを送信するチャンネルID (例: "C012345ABC")
    const TARGET_CHANNEL_ID = "YOUR_CHANNEL_ID";

    function sendSlackMessage() {
      const message = "GASからこんにちは!"; // 送信したいメッセージ

      const options = {
        "method": "post",
        "contentType": "application/json",
        "headers": {
          "Authorization": "Bearer " + SLACK_BOT_TOKEN
        },
        "payload": JSON.stringify({
          "channel": TARGET_CHANNEL_ID,
          "text": message
        })
      };

      const url = "https://slack.com/api/chat.postMessage";
      UrlFetchApp.fetch(url, options);
      Logger.log("Slackメッセージを送信しました。");
    }

3. トークンとチャンネルIDの置換: 上記コードの YOUR_SLACK_BOT_TOKEN を、ステップ1で取得したBot Tokenに、YOUR_CHANNEL_ID をメッセージを送信したいSlackチャンネルのIDに置き換えます。チャンネルIDは、Slackのチャンネルを開いたときにブラウザのアドレスバーに表示されるURLの末尾(例: C012345ABC の部分)などで確認できます。

ステップ3:スクリプトの実行とテスト

作成したスクリプトを実行して、Slackにメッセージが送信されるか確認しましょう。

1. 関数の選択: GASエディタの上部にある関数選択ドロップダウンで sendSlackMessage を選択します。

2. 実行ボタンをクリック: ▶️ の実行ボタンをクリックします。

3. 初回実行時の承認: 初めて実行する場合、スクリプトが外部サービス(Slack API)にアクセスするための承認を求められます。「権限を確認」をクリックし、アカウントを選択して「許可」をクリックしてください。

4. Slackの確認: Slackワークスペースで、指定したチャンネルに「GASからこんにちは!」というメッセージが届いていれば成功です!

ステップ4:トリガーの設定(自動化)

GASの強力な機能である「トリガー」を使えば、特定のタイミングで自動的にSlackメッセージを送信できます。例えば、毎日決まった時間に挨拶メッセージを送ったり、スプレッドシートの更新を検知して通知したりすることが可能です。

1. トリガー設定画面を開く: GASエディタの左側にある時計アイコン(トリガー)をクリックします。

2. トリガーを追加: 右下にある「トリガーを追加」ボタンをクリックします。

3. トリガーの設定:

  • 実行する関数を選択: sendSlackMessage を選択します。
  • 実行するデプロイを選択: 「ヘッド」を選択します。
  • イベントのソースを選択: 「時間主導型」を選択します。
  • 時間の間隔を選択: 「日タイマー」や「特定の日時」など、目的に合わせて選択します。今回は「日タイマー」で「午前9時~10時」を選択してみましょう。

4. 保存: 設定が完了したら「保存」をクリックします。

これで、指定した時間に自動でSlackメッセージが送信されるようになります。

まとめ

GASを使えば、数ステップで簡単にSlack Botを作成し、自動化することができます。今回ご紹介した内容は、あくまで基本的なメッセージ送信ですが、これを応用すれば、

  • Googleカレンダーの予定をリマインドするBot
  • スプレッドシートのデータをSlackに定期送信するBot
  • 特定のキーワードに反応して定型文を返すBot

など、様々な業務効率化に繋がるBotを開発することが可能です。

ぜひ、この機会にGASとSlack Botの世界に飛び込んでみてください!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

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