
ブログDigital Inspirations Amid Agarwal(Amit Agarwal)の著者は、Google Docsのスクリプトを公開しました。これは、サイトのステータスをポーリングし、応答をテーブルセルに入れます。 したがって、自分の手で監視サービスを作成できます。 Googleドキュメントでは、1分間隔でスクリプトを実行し、メール通知を受け取ることができます。
指示は次のとおりです。 このドキュメントを自分にコピーし、セルE3に監視URLを指定し、セルE5にメールアドレスを指定してから、メニューのツール→スクリプトエディター→リソース→現在のスクリプトのトリガーでスクリプトを実行する分のトリガーを設定します。

トリガーを保存しようとすると、認証を求める大きな赤い警告が表示されます。
スクリプトコード
/** Monitor your Site's Uptime **/ function isMySiteDown() { // Get the URL of the Website to monitor var url = SpreadsheetApp.getActiveSheet().getRange("E3").getValue(); // HTTP Response Code of the last server request if (!ScriptProperties.getProperty("status")) { ScriptProperties.setProperty("status", 200); } var response, error; try { // Fetch the web page using UrlFetchApp response = UrlFetchApp.fetch(url); } catch(error) { insertData(error, -1, "Website down"); return; } var code = response.getResponseCode(); // code = 200 means the fetch request was successful if (code == 200) insertData("Up", code, "Website up"); else insertData(response.getContent()[0], code, "Website down"); } function insertData(error, code, msg) { // Ignore if the error message is logged already if (ScriptProperties.getProperty("status") == code) return; // Log the server error in a Google Sheet var sheet = SpreadsheetApp.getActiveSheet(); var email = sheet.getRange("E5").getValue(); var row = sheet.getLastRow() + 1; sheet.getRange(row,1).setValue(new Date()); sheet.getRange(row,2).setValue(error); sheet.getRange(row,3).setValue(code); // Send an email alert for the downtime ScriptProperties.setProperty("status", code); MailApp.sendEmail(email, msg, error); }