0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GAS × Slack通知

Last updated at Posted at 2020-04-24

##はじめに
GAS勉強中です。
まとめてここのサイトにアップしているのでよかったらみてください。

【ビジボット】https://bzbot.work
【記事レシピ】https://bzbot.work/2019/05/22/gas-recipe/

##本題
今回はGASでSlackに通知するプログラムのレシピを書きました。
スプレッドシートを編集したときや特定操作をした時にSlackにそのまま通知が遅れたらいいなって思って作成。

詳細→https://bzbot.work/2020/04/25/gas-slack/

特定列だけを編集したときに実行されるように作ってます。
あと、カスタムで使えるように使ってない変数もちょこっとあります。

GAS
/*トリガーについて
*実行する関数を選択:onEdit
*イベントの種類を選択:編集時
*/

function onEdit(e) {
  var oldVal = e.oldValue; //変更前の値
  var newVal = e.value; //変更後の値
  var sheet = e.source.getActiveSheet(); //変更があったシート
  var range = e.source.getActiveRange(); //変更があったセル
  var rowVal = range.getRow(); //変更があった行
  var colVal = range.getColumn(); //変更があった列
  var postItem = sheet.getRange(rowVal,1).getValue(); // Slackに送りたい値
        
  var lCol = sheet.getLastColumn();
  var input = '';
  var Ch = 'XXXXXXXXX';
  var val = '';

  for (i = 1; i <= lCol; i++){
    val = sheet.getRange(1,i).getValue();
    if(val === 'テスト完了日'){
      input = i;
    };
  };
  
  //Browser.msgBox('onEdit関数の中にある...' + 'input:' + input + 'rowVal:' + rowVal + 'colVal:' + colVal);
    
  if(input === colVal){
    var result = Browser.msgBox('Slack送信確認',"チャンネルに送信しますか?", Browser.Buttons.OK_CANCEL);
    if(result == "ok"){
      sendToSlack(postItem,rowVal,Ch);
    };
  };
}

function sendToSlack(Item,row,ch) { //引数にセットされた値をこっちの変数に入れる

  var url = 'https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; //送信する為のWebhookURI

  var body =  '<!here>' + '\n' +'`テストが完了!!!!`'+ '\n' + '名前:' + Item; //送信するメッセージ
  var data = { 'channel' : ch, 'username' : 'ビジボット', 'text' : body};
  
  //Browser.msgBox('sendToSlack関数の中にある...' + 'Item:' + Item + 'と' + 'ch:' + ch);

  var payload = JSON.stringify(data);
  var options = {
    'method' : 'POST',
    'contentType' : 'application/json',
    'payload' : payload
  };
  var response = UrlFetchApp.fetch(url, options);
}
0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?