2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GASを使ってslackにメッセージを自動通知する方法

Posted at

はじめに

Google Apps Script(GAS)を使って、slackにメッセージを自動で通知する方法をまとめました。
slackのIncoming WebhookとGASを組み合わせることで、通知を自動化できます。

GASとは

GASとはGoogleが提供する、JavaScriptベースの自動化ツールです。
サーバー不要でインターネット環境があれば実行でき、slackなどの外部サービスと連携できます。

仕組み

GASとslackの連携は、次のような仕組みで動きます。

GAS(POSTリクエスト) → Slack Incoming Webhook → slackチャンネルへ投稿

GASがslackのWebhook URLに対してPOSTリクエストを送信し、その内容がslackチャンネルに投稿されます。

準備

slack側の設定

まずはslack側で通知を受け取るための設定をします。
slackのIncoming Webhookを使うことで、外部のシステムからslackに送られたメッセージを受け取ることができます。

  • メッセージはJSON形式
  • コンテンツタイプはapplication/json
  • POSTメソッド
    で送信することで、slack側で受け取ることができます。

Incoming Webhookの具体的な設定方法は、以下の記事を参考にしてください。
Slack:Webhook URL取得してSlackに通知する

GAS側の設定

GASのスクリプトを作成します。
GASには2種類のスクリプトがあります。

  • コンテナバインドスクリプト
    スプレッドシートなどGoogleサービスと紐づくスクリプトです。

  • スタンドアロンスクリプト
    Googleサービスと紐づかない、独立したスクリプトです。
    今回はスプレッドシート等とは連携しないので、こちらを使用します。

スタンドアロンスクリプトの作成方法

  1. Googleドライブを開く

  2. 「新規」を押す
    スクリーンショット 2025-10-29 13.23.36.png

  3. 「その他」>「Google Apps Script」を押す
    スクリーンショット 2025-10-29 13.24.11.png

この中にコードを書いていきます。
「無題のプロジェクト」の部分を押すと、プロジェクト名を変更できます。

スクリーンショット 2025-10-30 15.17.02.png

コード例

function myFunction() {
  const props = PropertiesService.getScriptProperties().getProperties();
  const webhookUrl = props.SLACK_WEBHOOK_URL;
  
  UrlFetchApp.fetch(webhookUrl,{
    method: 'post',
    contentType: 'application/json',
    // textに送りたいメッセージを入れる
    payload: JSON.stringify({text: 'こんにちは!'}) 
  });
}

プロパティサービス

GASにはプロパティサービスという仕組みがあり、データをキーと値のペアで保存できます。
プロパティサービスには3種類ありますが、今回はその中でもスクリプトプロパティを使っています。
今回使ったWebhook URLは機密情報のため、そのままコードに書くのはリスクがあります。
Webhook URLやAPIキーなどはスクリプトプロパティに保存しておくと安全です。

スクリプトプロパティの保存方法

  1. 画面左側の「プロジェクトの設定」を押す
    スクリーンショット 2025-10-29 13.30.04.png

  2. スクロールして、「スクリプトプロパティ」を設定する
    スクリーンショット 2025-10-29 13.32.17.png

値の部分には、発行されたWebhook URLを入れてください。

テスト実行

GASの実行ボタンを押します。
初回は権限の承認が求められるので、許可します。
スクリーンショット 2025-10-29 13.36.31.png

slackにメッセージが届けば成功です。
スクリーンショット 2025-10-29 13.38.35.png

トリガーで自動化

トリガーを設定することで、毎日決まった時間に通知を送ることもできます。

トリガーの登録方法

  1. 画面左側の「トリガー」を押して、右下の「トリガーを追加」を押す
    スクリーンショット 2025-10-30 15.06.03.png

  2. トリガーの設定をし、保存する
    スクリーンショット 2025-10-30 15.08.14.png
    例えば、上記のように

  • イベントのソースを選択→「時間主導型」
  • 時間ベースのトリガーのタイプを選択→「日付ベースのタイマー」
  • 時刻を選択→「午前0時〜1時」
    を選択すると、
    毎日午前0時〜1時の間にスクリプトが実行されて、slackへ自動通知されます。

応用例

このWebhookとGASの仕組みを使うことで、

  • スプレッドシートの更新をslackに通知
  • kintoneのレコード追加をslackに通知
    などと応用することができます。

まとめ

今回はGASとSlackのIncoming Webhookを使用して、Slackにメッセージを自動送信する方法をご紹介しました。

以下ポイントです。

  • Slack側でWebhook URLを発行する
  • GASからPOSTリクエストを送信する
  • Webhook URLはスクリプトプロパティで安全に管理する

まずはシンプルな通知から始めて、スプレッドシートやkintoneとの連携など、用途に応じて拡張してみてください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?