GASのトリガー実行で定期的にリンク先のチェックを行うような例です。
実際のやりたいことはちょっと違いますが、今回は下記のようなスプレッドシート(テーブル)で書きます。
name | url | response_code |
---|---|---|
example | http://example.com | 404 |
Qiita | https://qiita.com | 200 |
foo | http://bar.com |
要件
- 時間ベースのトリガーでシートに記載しているURLの存在チェックを実施
- UrlFetchApp.fetchの結果から取得できるステータスコードをresponse_codeカラムに上書き
- 未チェックの場合、response_codeカラムは空。
結論(コード)
一応、2パターン。
破壊的変更なし
function updateBackgroundsColor() {
const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getRange();
const data = dataRange.getValues();
const colors = data.map((row) => {
// ステータスコード200の時とそれ以外の時のカラーコード定義
const color = row[2] === 200 ? '#acd33f' : '#e41134';
return row.slice().fill(color);
});
dataRange.setBackgrounds(colors);
}
破壊的変更あり
function updateBackgroundsColor() {
const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getRange();
const data = dataRange.getValues();
data.forEach((row) => {
const color = row[2] === 200 ? '#acd33f' : '#e41134';
row.fill(color);
});
dataRange.setBackgrounds(data);
}
参考リンク