Skip to content

Instantly share code, notes, and snippets.

@anzfactory
Last active May 18, 2018 04:34
Show Gist options
  • Save anzfactory/9c889ead2de5d3ce029bb22eff8edcd1 to your computer and use it in GitHub Desktop.
Save anzfactory/9c889ead2de5d3ce029bb22eff8edcd1 to your computer and use it in GitHub Desktop.
NCMBの特定のデータストアを監視して変更があればメールおくるやつ for Google Apps Script
var APPLICATION_KEY = "YOUR NCMB DATA STORE APPLICATION KEY";
var CLIENT_KEY = "YOUR NCMB DATA STORE CLIENT KEY";
var TARGET_CLASS = "監視したいクラス名";
var MAIL_ADDRESS = "送りたいメールアドレス";
function checkNCMB() {
Logger.log("Start");
var latestUpdateTime = getLatestUpdateTime();
if (isNaN(latestUpdateTime)) {
Logger.log("not found data store...");
return;
}
sendMailIfNeeded(latestUpdateTime);
Logger.log("Finish");
}
function getLatestUpdateTime() {
var ncmb = NCMB.init(APPLICATION_KEY, CLIENT_KEY);
var TargetClass = ncmb.DataStore(TARGET_CLASS);
var results = TargetClass.order("updateDate", true).limit(1).fetchAll();
if (results.length == 0) {
return NaN;
}
return new Date(results[0].fields.updateDate).getTime();
}
function sendMailIfNeeded(targetTime) {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(1, 1);
var cellValue = cell.getValue();
if (typeof(cellValue) == "string") {
sendMail();
} else if (targetTime > cellValue) {
sendMail();
}
cell.setValue(targetTime);
}
function sendMail() {
Logger.log("Send Mail");
MailApp.sendEmail({
to: MAIL_ADDRESS,
subject: "NCMBデータストア監視",
body: TARGET_CLASS + "に変更がありました!確認して下さい!!"
});
}
@anzfactory
Copy link
Author

updateDateでソートかけて取得する時に降順じゃなくて昇順になってたのを直した....mm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment