Googleスプレッドシートに申請があった際、Slackに通知する方法を教えてください。
解決したいこと
https://toranoana-lab.hatenablog.com/entry/2020/03/13/173949
こちらの記事を参考にGoogleスプレッドシートに勤怠申請があった際に、Google Apps Scriptを使って、Slackに通知しようとしています。
【通知させたい内容】
具体的には7行目に特定のチーム名を含んだ文字列がある場合に、
6列目の氏名と共に「勤怠連絡テスト+氏名の申請が追加されました」
+取得した追加されたタスクNoとスプレッドシートのURL
を通知させたいと思っています。
【解決したい内容】
スプレッドシートに記載される情報が、googleフォームからの申請情報のため、
情報が3列目~7列目同時に記載されます。
単に7列目を更新すれば、Slackに通知はされるのですが、やりたいことであるgoogleフォームに申請があった情報が記載された場合に通知がされません。
解決方法を教えていただけますと幸いです。
該当するソースコード
function myFunction() {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシート
var activeSheet = activeSpreadsheet.getActiveSheet(); // アクティブシート
if(activeSheet.getName() != "勤怠連絡テスト"){
return;
}
var activeCell = activeSheet.getActiveCell(); // アクティブセル
if(activeCell.getColumn() == 7 && activeCell.getValues() == "チーム名)"){
var newInputRow = activeCell.getRow();
var agtName = activeSheet.getRange(activeCell.getRow(), 6).getValues(); // 氏名
// 送信するSlackのテキスト
var slackText = "「勤怠連絡テスト」に" + agtName + " の申請が追加されました\n" +
"https://docs.google.com/spreadsheets/d/*******************/edit#gid=0&range=A" + newInputRow;
sendSlack(slackText);
}
}
function sendSlack(slackText){
// Step1で取得したWebhook URLを設定
var webHookUrl = "https://hooks.slack.com/services/*********/**********/**********";
var jsonData =
{
"channel": "#gastest", // 通知したいチャンネル
"text" : slackText,
"link_names" : 1,
"username" : "勤怠通知"
};
var payload = JSON.stringify(jsonData);
var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload,
};
// リクエスト
UrlFetchApp.fetch(webHookUrl, options);
}
自分で試したこと
activeCellとなっているため、activeRangeを使えばよいのかなと思ったのですが、
初心者のため修正方法がわかりませんでした。
どなたかわかる方いらっしゃいましたら教えていただけますと助かります。
よろしくお願いします。
0 likes