技術ブログ

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

/ 初心者向け

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

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

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

そんな時、Slack Botが役立つ場面は多いはずです。しかし、「Bot開発なんて難しそう…」「プログラミングは初めて…」と諦めていませんか?

実は、Google Apps Script(GAS)を使えば、プログラミング初心者の方でも驚くほど簡単にSlack Botを作成できるんです!

本記事では、GASでSlack Botを作成する基本的な手順を、具体的なコード例を交えながら、誰でも理解できるように丁寧に解説していきます。

1. Slack Botの作成とトークンの取得

まず、Slack上でBotを作成し、API連携に必要なトークンを取得しましょう。

1. Slackアプリの作成: Slackの「https://api.slack.com/apps」にアクセスし、「Create an App」ボタンをクリックします。

2. 「From scratch」を選択: アプリケーションの種類を選択する画面で、「From scratch」を選びます。

3. アプリ名とワークスペースの設定: アプリ名(例: MyGASBot)と、開発対象の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」ボタンをクリックしてSlackワークスペースにアプリをインストールします。インストールが完了すると、「OAuth & Permissions」画面に Bot User OAuth Token が表示されるので、これをコピーしておきましょう。このトークンは、GASからSlack APIにアクセスする際に必要になります。

2. GASプロジェクトの作成とコードの実装

次に、GASプロジェクトを作成し、Slack Botの動作を実装していきます。

1. GASプロジェクトの作成: Googleドライブを開き、「新規」→「その他」→「Google Apps Script」を選択します。プロジェクト名(例: SlackBotGAS)を付けて保存します。

2. スクリプトエディタの準備: 初期状態の Code.gs ファイルに、以下のコードを記述します。

function postMessageToSlack() {
  var slackToken = "YOUR_SLACK_BOT_TOKEN"; // ここに取得したBot User OAuth Tokenを貼り付けます
  var channel = "#general"; // メッセージを送信したいチャンネル名
  var message = "GASからこんにちは!";

  var url = "https://slack.com/api/chat.postMessage";
  var payload = {
    "channel": channel,
    "text": message
  };

  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + slackToken
    },
    "payload": JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);
}

コードの説明:

  • slackToken: 先ほど取得したBot User OAuth Tokenを貼り付けます。
  • channel: メッセージを送信したいSlackチャンネル名を指定します。#general の部分は、ご自身のワークスペースのチャンネル名に合わせて変更してください。
  • message: Botが送信するメッセージ内容です。
  • url: Slack APIの chat.postMessage エンドポイントを指定します。
  • payload: APIに送信するデータ(チャンネル名、テキストメッセージ)をJSON形式で定義します。
  • options: HTTPリクエストの詳細(メソッド、コンテンツタイプ、ヘッダー、ペイロード)を指定します。Authorization ヘッダーに、取得したトークンを Bearer の後に付けて設定することが重要です。
  • UrlFetchApp.fetch(): GASでHTTPリクエストを送信するための関数です。ここでSlack APIにリクエストが送られます。

3. GASスクリプトの実行とSlackでの確認

コードを記述したら、実際にGASスクリプトを実行してみましょう。

1. スクリプトの実行: GASエディタの上部にある実行ボタン(▶︎)をクリックし、「postMessageToSlack」関数を選択して実行します。

2. 初回実行時の承認: 初めて実行する場合、スクリプトが外部サービス(Slack API)にアクセスするための承認を求められます。「権限を確認」→「アカウントを選択」→「詳細を表示」→「(プロジェクト名)(安全ではありません)に移動」→「許可」と進んで、スクリプトの実行を承認してください。

3. Slackでの確認: 承認後、再度スクリプトを実行します。指定したSlackチャンネルに、GASから投稿されたメッセージが表示されていれば成功です!

4. さらに発展!トリガーを使った自動化

ここまでで、手動で実行するSlack Botの基本は完成しました。しかし、GASの真価は「自動化」にあります。例えば、以下のような自動化が可能です。

  • 時間トリガー: 特定の時間に定型メッセージを自動送信する。
  • スプレッドシートの変更トリガー: スプレッドシートのデータが更新されたら、Slackに通知を飛ばす。
  • フォーム送信トリガー: Googleフォームの回答が送信されたら、Slackに通知する。

これらの自動化には「トリガー」機能を使います。GASエディタの左側メニューにある時計のアイコン(トリガー)をクリックし、「トリガーを追加」から、実行したい条件を設定してください。

まとめ

GASを使えば、プログラミング経験が浅い方でも、比較的簡単にSlack Botを作成し、業務の自動化やチームのコミュニケーション活性化に役立てることができます。まずは今回ご紹介した基本的なメッセージ送信から始め、慣れてきたら、さらに高度な機能を持つBot開発に挑戦してみてください。

GASとSlack Botを使いこなし、より快適なワークスタイルを実現しましょう!

GAS自動化の導入相談

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

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