見出し画像

【GAS】slack連携方法を覚えよう!

おはようございます!MARIEです(`・ω・´)ゞ

前回までは、GASとスプレットシートを連携する方法を学んできましたね!

今回の記事では、GASとslackを連携する方法を学んでいきたいと思います。
また、前提ですがslackアカウントは既に取得済みで、Slackの基本的な操作もできるというていでお話をしますね。

slack連携でできること

GASとslackを連携した時にできることは以下のようなものです。

①プログラムの実行結果をslackチャンネルorDMに通知する
②プログラムのエラーを通知する
③フォームが送信されたら通知する
④スプレットシートの特定の列が更新されたら通知する
⑤スプレットシートの情報を毎時/毎日/毎週/毎月 1回通知する

このように、何かが起きた時に検知や通知をしたり、定期的に状況を知りたい場合に役立ちます。

Webhookを取得する

まずは、slackのWebhook URLを取得しましょう。

この記事がわかりやすいかもです!
もしくはググって調べてみましょう( `ー´)ノ

slack連携のプログラムを書いてみよう

function postToSlack() {
 const text = "slack連携のテストです。";

 const url = "webhookのURLを入れる";
 const payload = {
   'text': text
 };

 const options = {
   'method': 'post',
   'contentType': 'application/json',
   'payload': JSON.stringify(payload)
 };

 UrlFetchApp.fetch(url, options);
}

ではさっそく上記プログラムを書いて、実行をしてみましょう!
const url = "webhookのURLを入れる";
ここの部分にさっき取得したWebhookのURLをいれてください(゜-゜)

どうでしょうか。私は無事Slackにメッセージが届きました!

画像1

少しややこしくなるかもしれませんが、こんなやり方もあります。

const postUrl = 'Webhook URLを入れてね';
const username = 'MARIE';  // 通知時に表示されるユーザー名
const icon = ':hatching_chick:';  // 通知時に表示されるアイコン
const message = 'テストだよーん♪';  // 投稿メッセージ

function myFunction() {
 const jsonData =
 {
   "username": username,
   "icon_emoji": icon,
   "text": message
 };
 const payload = JSON.stringify(jsonData);

 const options =
 {
   "method": "post",
   "contentType": "application/json",
   "payload": payload
 };

 UrlFetchApp.fetch(postUrl, options);
}

画像2

上記の記事を参考にしてみました!
アイコンや通知するユーザー名の変更もできました(゚∀゚)

【コピペで使える】朝礼ファシリ担当をSlackに通知するプログラム

例えば、スプレットシートにこういったものを準備します。

画像3

以下のプログラムをスクリプトにセットし、実行をします。

function myFunction() {
 let obj = SpreadsheetApp.openById('スプレットシートのIDを入れてね');
 let = sheet = obj.getSheetByName('担当者');

 let member = sheet.getRange('A2').getValues().filter(String);
 let lastrow = sheet.getLastRow();

 sheet.getRange(lastrow + 1, 1).setValue(member);
 sheet.deleteRow(2);

 let options = {
   'method': 'post',
   'contentType': 'application/json',
   'payload': JSON.stringify(
     {
       'username': '本日の朝礼のファシリ連絡',
       'icon_emoji': 'hatched_chick:',
       'text': '<!here> 本日の朝礼のファシリは、ドゥルルルルルル・・・' + member + 'です♪',
       link_names: 1
     }
   )
 };
 UrlFetchApp.fetch('webhookのURLを入れてね', options);
}

画像4

こんな感じで通知が届きました(゜-゜)

このようにGASとslackの連携と一言でいっても、プログラムの書き方ってたくさんありますし通知のアイコンを変えたりすることもできたり。
これ!っていうものは無いのですが、まずはwebhookを取得しなければ何も始まりませんということと、GASとスプレットシートとSlackが合わさった連携もできるなど、概要を覚えておいていただければと思います!

また、今までの基礎知識があれば、な~んとなく見慣れないプログラムを見た時に、だいたいどういった内容になっているのか等も読み取れるかと思います。

そこまでの知識があれば、わからないことを調べるということもできるはずです!

宿題はこちら

ということで宿題です!
先ほど紹介をした朝礼のファシリを通知してくれるプログラムについて、毎日10時~11時の間に通知されるように設定をしてみてください。

ヒント:「GAS トリガー 時間設定」でググると良さそう(゜-゜)

ではまた次回、よろしくお願いいたします(`・ω・´)ゞ


この記事が気に入ったらサポートをしてみませんか?