Google Apps Scriptで実現!Slackの複数チャンネルに同時送信する方法

あの、catmanさん、仕事でSlackの複数チャンネルにメッセージを同時送信したくて…GASでできるって聞いたんですが、本当ですか?
猫男
猫男
catman
catman
もちろん、できるさ。Slackの複数チャンネルに同時送信する方法をGASで解説しよう。

GASでSlackの複数チャンネルに同時送信する方法

まず、GASを使用してどのようにSlackのチャンネルにメッセージを送信するか、全体の流れを理解する必要があります。

GASとSlackの連携準備

GASからSlackにメッセージを送信するためには、Slack APIを使います。事前にSlack API Tokenを取得しましょう。

Slack APIは、Slackの設定画面から取得できます。必要な権限を持つトークンを用意してください。

GASスクリプトの作成

Slackの複数チャンネルに同時送信するスクリプトを作成します。以下のコードをGASに書いてください。


function sendToSlackChannels() {
  const slackToken = 'YOUR_SLACK_API_TOKEN';
  const channels = ['channel1', 'channel2', 'channel3']; // チャンネルIDの配列
  const message = 'こんにちは、Slackへ!';

  channels.forEach(function(channel) {
    const payload = {
      token: slackToken,
      channel: channel,
      text: message,
    };

    const options = {
      method: 'post',
      payload: payload,
    };

    UrlFetchApp.fetch('https://slack.com/api/chat.postMessage', options);
  });
}

このスクリプトでは、GASのUrlFetchApp.fetch()メソッドを利用してSlack APIのエンドポイントにメッセージを送信します。

スクリプトの実行と確認

実行すると、指定した全てのチャンネルにメッセージが届いていることを確認してください。

もしメッセージが届かない場合は、APIトークンやチャンネルIDが正しいかを確認しましょう。

 

ありがとうございますcatmanさん!この手順で頑張ってみます!
猫男
猫男
catman
catman
やってみなさい。きっとすぐにできるようになるさ。

練習問題

GASを使って、異なるメッセージを複数のSlackチャンネルに送信するスクリプトを書いてみましょう。メッセージの内容は各チャンネルごとに異なるものに設定してください。

  

解答・解説


function sendVariousMessagesToSlackChannels() {
  const slackToken = 'YOUR_SLACK_API_TOKEN';
  const messagesData = {
    'channel1': 'チャンネル1へのメッセージ',
    'channel2': 'チャンネル2へのユニークメッセージ',
    'channel3': 'チャンネル3専用のメッセージ'
  };

  Object.keys(messagesData).forEach(function(channel) {
    const message = messagesData[channel];
    const payload = {
      token: slackToken,
      channel: channel,
      text: message,
    };

    const options = {
      method: 'post',
      payload: payload,
    };

    UrlFetchApp.fetch('https://slack.com/api/chat.postMessage', options);
  });
}

解説:このスクリプトでは、各チャンネルごとに異なるメッセージを設定するため、オブジェクトを使用しています。Object.keys()メソッドでオブジェクト内のチャンネル名を取得し、forEachメソッドで処理を行っています。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。