初心者でも簡単!GASでSlackメッセージを自動送信する方法

GASを使ってSlackにメッセージを送信したいんだけど、どうすればいいんだろう?僕、プログラミング初心者なんだ。
猫男
猫男
catman
catman
心配する必要はないさ、猫男。catmanがGASを使ってSlack APIでメッセージを送信する方法を教えてあげよう!

GASとSlack APIの初めの一歩

Slackにメッセージを送信するためには、GASでスクリプトを書く必要があります。このためには、まずSlackのAPIを用いて適切な設定が必要です。

Slack APIトークンを取得する

Slack APIを利用するにはAPIトークンが必要です。トークンはSlackの管理画面を通じて入手できます。

1. SlackのApp Directoryにアクセスします。

2. 新規アプリを作成し、適切なワークスペースにインストールします。

3. OAuth & Permissionsで適切なスコープを設定し、APIトークンを取得します。

GASでスクリプト環境を準備

GASを使うにはGoogleのスクリプトエディタを利用します。

1. Googleドライブで新しいスプレッドシートを作成します。

2. メニューから「拡張機能」→「Apps Script」を選択してスクリプトエディタを開きます。

 

なるほど、Slackのトークンを取得して、GASのスクリプトエディタを使うんですね。
猫男
猫男
catman
catman
その通りさ。次は、実際にGASでSlackメッセージを送信するスクリプトだ。

GASでSlackにメッセージを送信する仕組み

以下のコードは、GASを使ってSlackにメッセージを送信する基本的なスクリプトです。

コードの追加

これが基本のコードです。


function postToSlack() {
  var url = 'https://slack.com/api/chat.postMessage';
  var token = 'YOUR_SLACK_TOKEN_HERE';
  
  var payload = {
    'channel': '#general',
    'text': 'Hello from Google Apps Script!',
  };
  
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': {
      'Authorization': 'Bearer ' + token
    },
    'payload': JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(url, options);
}

スクリプトの解説

このスクリプトでは、Slack APIのchat.postMessageエンドポイントを呼び出します。

APIトークンはBearerトークンとしてヘッダーにセットします。

メッセージを送信するチャンネルとテキストはpayloadオブジェクトとして設定します。

 

スクリプトを書けば、簡単にSlackにメッセージを送信できるんですね。すごいかも!
猫男
猫男
catman
catman
その通りさ、猫男。次に簡単な練習問題に挑戦してみよう。

練習問題:トークンを変数に変えてみよう

先ほどのコードで、APIトークンを直接スクリプトに書く代わりに、GASのプロパティサービスを使って安全に管理するように変更してみましょう。

解答・解説


function postToSlack() {
  var url = 'https://slack.com/api/chat.postMessage';
  var token = PropertiesService.getScriptProperties().getProperty('SLACK_TOKEN');
  
  var payload = {
    'channel': '#general',
    'text': 'Hello from Google Apps Script!',
  };
  
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'headers': {
      'Authorization': 'Bearer ' + token
    },
    'payload': JSON.stringify(payload)
  };
  
  UrlFetchApp.fetch(url, options);
}

PropertiesServiceを使うと、スクリプトに直接トークンを記載せずに、セキュアに管理ができます。まず、GASのスクリプトエディタで「ファイル」→「プロパティ」を選び、そこにSLACK_TOKENを設定します。この方法により、トークンがハードコーディングされず、セキュリティが向上します。