Last active
May 18, 2018 04:34
-
-
Save anzfactory/9c889ead2de5d3ce029bb22eff8edcd1 to your computer and use it in GitHub Desktop.
NCMBの特定のデータストアを監視して変更があればメールおくるやつ for Google Apps Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 + "に変更がありました!確認して下さい!!" | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
updateDateでソートかけて取得する時に降順じゃなくて昇順になってたのを直した....mm