Google Apps Script (GAS) で Slack メッセージを送信する方法

Google Apps Script で Slack メッセージを送信するサンプルコードをご紹介します。

slack

Slack App 作成

まず Slack App を以下の記事を参考にして作成します。

🔗 Slack API 推奨Tokenについて – Qiita

GAS + Slack API で Slack メッセージ送信

Slack API を curl で実行

Slack アプリ作成後に管理画面から取得できる curl スクリプトを使って、Slack API が問題なく実行できるか確認しておきます。

curl -X POST \
-H 'Content-type: application/json' \
--data '{"text":"Hello, World!"}' \
https://hooks.slack.com/services/XXX/YYY/ZZZ

(サンプルコード) GAS で Slack メッセージ送信

Google Apps Script で Slack API を利用して Slack メッセージを送信するサンプルコードは以下のとおりです。

function postSlackMessage(text) {
  var data = {
    text: text
  };
  var options = {
    'method' : 'post',
    'contentType': 'application/json',
    'payload' : JSON.stringify(data) // Convert the JavaScript object to a JSON string.
  };
  
  UrlFetchApp.fetch(
    PropertiesService.getScriptProperties().getProperties().SLACK_URL,
    options
  );
}

PropertiesService.getScriptProperties().getProperties().SLACK_URL の設定方法や使い方については以下の記事を参考にしてください。

🔗 GoogleAppsScript スクリプトのプロパティの超簡単な使い方 – Qiita

https://hooks.slack.com のリクエストに失敗しました(エラー: 400)

もし Google Apps Script 実行時に下記のようなエラーメッセージが出た方も、上記の postSlackMessage method は問題なく動くので丸っとコピーして実装してみてください。

メッセージの詳細

https://hooks.slack.com のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: invalid_payload(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 43、ファイル「Code」)

以上、Google Apps Script で Slack へメッセージを送信したい、現場からお送りしました。

参考情報