GASとSlackを連携して通知を設定する簡単ステップガイド!

あの、GASとSlackを連携して通知を設定したいんですけど、どうしたらいいんでしょうか?
猫男
猫男
catman
catman
いい質問だ。catmanが教えてやろう!GASとSlackの連携を設定するには、Slack APIをうまく使いこなす必要があるのだ。

GASとSlackの連携を始めよう

GASとSlackを連携して通知を送るためには、まず基本的な設定を行います。このプロセスは少し準備が必要ですが、一度設定すれば様々な通知を送ることができます。

Slack APIの設定方法

あなたが行う最初のステップは、Slack APIを利用するための設定です。

まず、Slackの公式サイトにアクセスして、Slack APIページに移動します。

次に、「Create New App」をクリックし、新しいアプリを作成します。

アプリの名前とワークスペースを選択し、「Create App」をクリックします。

必要な権限を設定

SlackアプリがGASからメッセージを送信できるようにするため、適切な権限を設定します。

左側のメニューから「OAuth & Permissions」を選択し、必要なスコープを追加します。通常は「chat:write」が必要です。

権限を設定したら、「Install App to Workspace」でアプリをワークスペースにインストールします。

GASからSlackへの通知設定

Slackの準備が整ったら、次にGAS内での設定に移ります。ここでは、簡単なスクリプトを作成してSlackに通知を送信します。

GASでのスクリプト作成

GASからSlackに通知を送るための基本スクリプトは以下の通りです。


function postToSlack(message) {
  var url = 'https://slack.com/api/chat.postMessage';
  var token = 'xoxb-your-slack-token';
  var params = {
    method: 'post',
    headers: {
      'Authorization': 'Bearer ' + token
    },
    payload: {
      channel: '#general',
      text: message
    }
  };
  UrlFetchApp.fetch(url, params);
}

このスクリプトは、GASからSlack APIにリクエストを送り、指定したチャンネルにメッセージを投稿します。

スクリプトの動作テスト

スクリプトが正しく動作するか、テストしていきます。GASエディタでスクリプトを実行し、Slackでメッセージが送信されるか確認しましょう。

エディタでpostToSlack(‘Hello, Slack!’);と実行すると、Slackの#generalチャンネルに「Hello, Slack!」と表示されるはずです。

 
 

練習問題

次のCSSクラスを使用して、独自のスタイルでSlackメッセージを送信する方法を考えてみましょう。

  • メッセージにプレーンテキストではなく、フォーマット済みのJSONを含めて送信する
  • チャンネルを動的に指定できるようにする

 
 

解答・解説

以下のスクリプトは、JSONフォーマットを使い、チャンネルを動的に指定してメッセージを送る方法です。


function postStyledToSlack(channel, message) {
  var url = 'https://slack.com/api/chat.postMessage';
  var token = 'xoxb-your-slack-token';
  var params = {
    method: 'post',
    headers: {
      'Authorization': 'Bearer ' + token,
      'Content-Type': 'application/json'
    },
    payload: JSON.stringify({
      channel: channel,
      text: message
    })
  };
  UrlFetchApp.fetch(url, params);
}

// 使用例
postStyledToSlack('#alerts', '*重要:* テストメッセージ');

このスクリプトでは、JSON.stringify()を用いてメッセージをフォーマットし、動的にチャンネルを指定できるようにしています。これにより、より汎用的な通知を行うことが可能になります。

Slackにメッセージが送れて…すごい!次にもっと考えられるように頑張ります!
猫男
猫男
catman
catman
何事も練習さ。続けていけば、きっとマスターできるようになるさ。