前提・実現したいこと
GoogleスプレッドシートからGASでslackへアラートを飛ばす際、土日祝はアラートを出さないようにする式を
記載しましたが、土日祝でもアラートが飛んでしまいます。
誤り箇所をご教授下さい。
発生している問題・エラーメッセージ
エラーメッセージは特にないですが、土日祝でslackへのアラートが飛ばないようにしたい
該当のソースコード
// 休日は実行させない var currentDate = new Date(); var weekday = currentDate.getDay(); if (weekday == 0 || weekday == 6) { return; } var calendar = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com'); if (calendar.getEventsForDay(currentDate, {max: 1}).length > 0) { return;
試したこと
上記コードを追加しましたが適応されず。
補足情報(FW/ツールのバージョンなど)
特になし
私の環境では再現出来なかったので解答できません。
なので、まずはお手元の環境で具体的にどこからどこまでが期待通りで、どこがうまく行かないのか探ってみてはいかがでしょうか?
```
target = 1; // ここを変えてみる
currentDate.setDate(currentDate.getDate() + target);
```
を使うとデバッグしやすいかと思います。
日付判定部分は問題ないと思いますが、提示されているソースコードが一部だけで、slack の部分との関連が不明なので、return 後の処理に問題があるのではないでしょうか。
最近、別の方の質問で、そのコードを送信部分の後に書いているケースがありました。
そのコードを書いた方が解説を付けておられますが、判定して、その後に本来の処理をする、という順でコーディングされている必要があります。
ひとまず、前後含め全体をお示しください。
皆さま、ご回答ありがとうございます。
ご返信遅くなりすみません。
コードはあっているが、入れる箇所がおそらくことなるのですね、
コードはこちらへの記載でよろしいのでしょうか?
下記が全体となります。
--------------------------
function postSlack() {
var sheet = SpreadsheetApp.openById('1Qn9sjpQZ8ekq-QC9mu9pXkjjySrvi8qncgeUa3TX2X0');
var sentence = sheet.getSheetByName('アラート用').getRange(4,16).getValue();
var payload = {
'text' : sentence,
};
var options = {
'method' : 'post' ,
'contentType' : 'application/json' ,
'payload' : JSON.stringify(payload),
};
var url = 'https://hooks.slack.com/services/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';
/*外部へアクセスさせる */
UrlFetchApp.fetch(url, options);
// 休日は実行させない
var currentDate = new Date();
var weekday = currentDate.getDay();
if (weekday == 0 || weekday == 6) {
return;
}
var calendar = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');
if (calendar.getEventsForDay(currentDate, {max: 1}).length > 0) {
return;
}
}
--------------------------