はじめに
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サービスと紐づかない、独立したスクリプトです。
今回はスプレッドシート等とは連携しないので、こちらを使用します。
スタンドアロンスクリプトの作成方法
この中にコードを書いていきます。
「無題のプロジェクト」の部分を押すと、プロジェクト名を変更できます。
コード例
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キーなどはスクリプトプロパティに保存しておくと安全です。
スクリプトプロパティの保存方法
値の部分には、発行されたWebhook URLを入れてください。
テスト実行
GASの実行ボタンを押します。
初回は権限の承認が求められるので、許可します。

トリガーで自動化
トリガーを設定することで、毎日決まった時間に通知を送ることもできます。
トリガーの登録方法
- イベントのソースを選択→「時間主導型」
- 時間ベースのトリガーのタイプを選択→「日付ベースのタイマー」
- 時刻を選択→「午前0時〜1時」
を選択すると、
毎日午前0時〜1時の間にスクリプトが実行されて、slackへ自動通知されます。
応用例
このWebhookとGASの仕組みを使うことで、
- スプレッドシートの更新をslackに通知
- kintoneのレコード追加をslackに通知
などと応用することができます。
まとめ
今回はGASとSlackのIncoming Webhookを使用して、Slackにメッセージを自動送信する方法をご紹介しました。
以下ポイントです。
- Slack側でWebhook URLを発行する
- GASからPOSTリクエストを送信する
- Webhook URLはスクリプトプロパティで安全に管理する
まずはシンプルな通知から始めて、スプレッドシートやkintoneとの連携など、用途に応じて拡張してみてください。







