å®è£
ã«ã¼ãå
ã§ã¯、ã¡ã¼ã«ãéä¿¡ããããã¨ã«(ã¤ã¾ã、ã¡ã½ãã GmailApp.sendEmail() ã使ç¨ãããã¨ã«)、Apps Script UrlFetch ãµã¼ãã¹ã使ç¨ã、Firebase ã«ãã® REST API ã使ç¨ãã¦æ¸ãè¾¼ã¿ã¾ã。Firebase ã®æ©è½ã«ãã、ãããç°¡åããã¦å®å
¨ã«è¡ããã¨ãã§ã、ã¾ãOAuth èªè¨¼ããã¼ã使ãã
Firebase app secret ã®ã¿ã§å®ç¾ãããã¨ãã§ãã¾ã。以ä¸ã¯ä¸ä¾ã§ã。
function addNewUserToFirebase() {
var dbUrl = "https://test-apps-script.firebaseio.com";
var secret = PropertiesService.getScriptProperties().getProperty("fb-secret");
var path = "/users/";
var userData = {
romainvialard:{
firstName:"Romain",
lastName:"Vialard",
registrationDate: new Date()
}
};
var params = {
method: "PUT",
payload : JSON.stringify(userData)
}
UrlFetchApp.fetch(dbUrl + path + ".json?auth=" + secret, params);
}
ã¯ã©ã¤ã¢ã³ãå´ã§ã¯、æ¹åããã Apps Script
HtmlService ã«ãã、æ£å¼ãª JS ã¯ã©ã¤ã¢ã³ã ã©ã¤ãã©ãªã使ç¨ã㦠Firebase ã«æ¥ç¶ã、以åã«æ ¼ç´ããããã¼ã¿ãåå¾ã§ããããã«ãªãã¾ãã。ç¹ã«、ãã®ã©ã¤ãã©ãªã®
on() ã¡ã½ããã¯、ãã¼ã¿ãã¼ã¹å
ã®ç¹å®ã®å ´æã«ããããã¼ã¿å¤æ´ã®ç£è¦ã«ä½¿ç¨ã§ãã¾ã。ãããã£ã¦、ãµã¼ãã¼å´ã§æ°ããã¿ã¹ã¯ãå®äºãã(ã¤ã¾ãæ°ããã¡ã¼ã«ãéä¿¡ããã)ãã¨ã«、Firebase ã«éç¥ã、ããã«å¿ã㦠UI ãèªåçã«ã¢ãããã¼ãããã¾ã。
var fb = new Firebase("https://test-apps-script.firebaseio.com ");
var ref = fb.child('users/' + UID + '/nbOfEmailsSent');
ref.on("value", function(data) {
if (data.val()) {
document.getElementById("nbOfEmailsSent").innerHTML = data.val();
}
});
ã¢ããªã³ã§ã®ãã®ä»ã® Firebase ã®ä½¿ç¨æ³
ä¸è¨ã®ä¾ã«å ã、Google Apps Script ã¢ããªã³ã§ Firebase ã便å©ã«ä½¿ç¨ããæ¹æ³ã¯ä»ã«ãããã¾ã。
Yet Another Mail Merge ã¯、æ¯æããã©ã³ãææ¡ãããã¨ãã§ã、ãã®å ´å顧客ãªã¹ãã®ä¿åãå¿
è¦ã¨ãã¾ã。Firebase ã¯ãããã£ãã±ã¼ã¹ã«ãã¾ãã«ãã£ã¦ã¤ãã§ã。誰ãããã©ã³ãè³¼å
¥ãããã¨ã«、æ¯æããã¼ã«ã Apps Script ã¦ã§ã ã¢ããªãå¼ã³åºã、ããã Firebase ã«æ¯æãã®è©³ç´°ãæ¸ãè¾¼ã¿ã¾ã。ãããã£ã¦、è³¼å
¥ã®ç´å¾ã«ã¦ã¼ã¶ã¼ã追å æ©è½ãéãã¨、ãµã¼ãã¼å´ã®æ©è½ã Firebase ãå¼ã³åºã、該å½ãã¬ãã¢ã æ©è½ããã®ã¦ã¼ã¶ã¼ã«å¯¾ãã¦æå¹åããã¦ãããã¨ã確èªã§ãã¾ã。
ããã²ã¨ã¤ä¾¿å©ãªä½¿ç¨æ¹æ³ã¨ãã¦、ã¡ã¼ã« ãã¼ã¸ã®æçµæ®µéã§、Firebase ã使ç¨ãã¦éãããã¡ã¼ã«ã®ãªã¢ã«ã¿ã¤ã ã¬ãã¼ããã¹ãã¬ããã·ã¼ãã®ãµã¤ããã¼ã«æä¾ã§ãã¾ã。
以ä¸ã¯、Apps Script ã¨Firebase ã使ç¨ãã¦å®ç¾å¯è½ãªæ©è½ã®ã»ãã®æ°ä¾ã«éãã¾ãã。ãæ°è»½ã«èªåã§è©¦ããã、
Yet Another Mail Merge ãã¤ã³ã¹ãã¼ã«ãã¦、å®éã®ä¾ã確èªãã¦ãã ãã。ã¾ã、
FirebaseApp ã¨å¼ã°ãã
å
¬é Apps Script ã©ã¤ãã©ãª ããã、ããã㯠Firebase ã®ä½¿ç¨ãéå§ããéã«å½¹ç«ã¡ã¾ã。ãã®ä»ã®æ¨æº Apps Script ã©ã¤ãã©ãªã¨åæ§ã«ä½¿ç¨ãã¦ãã ãã。
ãã¨ãã°、次ã®ç¹å®ã®ãã©ã¡ã¼ã¿ã使ç¨ãã¦、Firebase ãããã¼ã¿ãç°¡åã«ãã§ããã§ãã¾ã。
function getFrenchContacts() {
var firebaseUrl = "https://script-examples.firebaseio.com/";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
var queryParameters = {orderBy:"country", equalTo: "France"};
var data = base.getData("", queryParameters);
for(var i in data) {
Logger.log(data[i].firstName + ' ' + data[i].lastName
+ ' - ' + data[i].country);
}
}
Google Apps Script ã使ç¨ãã¦ç¬èªã®ã¢ããªã³ãæ§ç¯ãã¦ã¿ã¦ãã ãã。ããã«è©³ããç¥ãããå ´åã¯、ããã¥ã¡ã³ã(
developers.google.com/apps-script )ãåç
§、ã¾ãQuickstart ããã¸ã§ã¯ããã試ããã ãã。çãã¾ã®ã¢ããªã³ã®ãå½¹ã«ç«ã¦ãã°å¹¸ãã§ã。
Posted by
Ian Lewis - Developer Relations Team
[ãã®è¨äºã¯ Romain Vialard(Google Developers Expert 、Google ã¹ãã¬ããã·ã¼ã ã¢ããªã³ Yet Another Mail Merge éçºè
)ã«ãã Google Apps Developers Blog ã®è¨äº "Real-time notifications in add-ons with Firebase " ãå
ã«ç¿»è¨³・å çãããã®ã§ã。詳ããã¯å
è¨äºãã覧ãã ãã。]
Yet Another Mail Merge ã¯、Gmail ã§ä¸æ¸ãã¨ãã¦ä¿åããããã³ãã¬ã¼ã㨠Google ã¹ãã¬ããã·ã¼ãã®ãã¼ã¿ã«åºã¥ãã¦、ååä¿¡è
ã®å人åã®æ¸ãããã¡ã¼ã«ãä¸æéä¿¡ãããã¨ãå¯è½ã«ãã Google ã¹ãã¬ããã·ã¼ã ã¢ããªã³ã§ã。ãã®ã¢ããªã³ã¯、æ°ç¾ã®ã¡ã¼ã«ãéä¿¡ã§ãã¾ãã、ãã®ç¨®ã®æä½ã®å®äºã«ã¯é常æ°åã®æéãè¦ãããã、æ©è½ãé·æéãµã¼ãã¼å´ã§å®è¡ãã¦ããéã«、ã¦ã¼ã¶ã¼ ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ä½ã表示ããã¹ãã、ã¨ããåé¡ãçãã¾ã。
ã¢ããªã³ã§ã®ãªã¢ã«ã¿ã¤ã éç¥
Firebase ã¯、ãªã¢ã«ã¿ã¤ã ã«ç¹åããæ©è½ãæä¾ã、ãã®åé¡ã解決ãã¾ã。æ¨å¹´ 12 æ、Apps Script ãã¼ã 㯠HtmlService ã®æ¹è¯ãã¼ã¸ã§ã³ ãçºè¡¨ãã¾ãã。ããã«ããå¶éäºé
ã大å¹
ã«åæ¸ãã、å¤é¨ JS ã©ã¤ãã©ãªã使ç¨ã§ããããã«ãªãã¾ãã。Firebase ã使ãã°、ãªã¢ã«ã¿ã¤ã ã§ç°¡åã«ãã¼ã¿ãæ ¼ç´ããã³åæãããã¨ãå¯è½ã§ã。
ããããçµã¿åããããã¨ã§、ãµã¼ãã¼å´ã§å®è¡ãã¦ããApps Script æ©è½ã«ããéä¿¡ãããã¡ã¼ã«ã®æ°ããªã¢ã«ã¿ã¤ã ã§ã¦ã¼ã¶ã¼ã«éç¥ãããã¨ãå¯è½ã¨ãªãã¾ã。ã¦ã¼ã¶ã¼ãã¡ã¼ã«ã®ãã¼ã¸ãéå§ããã¨、ã¡ã¼ã«ãéä¿¡ãã Apps Script ãå¼ã³åºãã、åæã« Firebase ã«æ¥ç¶ããã¾ã。Apps Script ãæ°ããã¡ã¼ã«ã®éä¿¡ãå®äºãããã¨ã«、Firebase ã®ã«ã¦ã³ã¿ãã¤ã³ã¯ãªã¡ã³ããã、次ã®å³ã«ç¤ºãããã« UI ããªã¢ã«ã¿ã¤ã ã§ã¢ãããã¼ãããã¾ã。
å®è£
ã«ã¼ãå
ã§ã¯、ã¡ã¼ã«ãéä¿¡ããããã¨ã«(ã¤ã¾ã、ã¡ã½ãã GmailApp.sendEmail() ã使ç¨ãããã¨ã«)、Apps Script UrlFetch ãµã¼ãã¹ã使ç¨ã、Firebase ã«ãã® REST API ã使ç¨ãã¦æ¸ãè¾¼ã¿ã¾ã。Firebase ã®æ©è½ã«ãã、ãããç°¡åããã¦å®å
¨ã«è¡ããã¨ãã§ã、ã¾ãOAuth èªè¨¼ããã¼ã使ããFirebase app secret ã®ã¿ã§å®ç¾ãããã¨ãã§ãã¾ã。以ä¸ã¯ä¸ä¾ã§ã。
function addNewUserToFirebase() {
var dbUrl = "https://test-apps-script.firebaseio.com";
var secret = PropertiesService.getScriptProperties().getProperty("fb-secret");
var path = "/users/";
var userData = {
romainvialard:{
firstName:"Romain",
lastName:"Vialard",
registrationDate: new Date()
}
};
var params = {
method: "PUT",
payload : JSON.stringify(userData)
}
UrlFetchApp.fetch(dbUrl + path + ".json?auth=" + secret, params);
}
ã¯ã©ã¤ã¢ã³ãå´ã§ã¯、æ¹åããã Apps Script HtmlService ã«ãã、æ£å¼ãª JS ã¯ã©ã¤ã¢ã³ã ã©ã¤ãã©ãªã使ç¨ã㦠Firebase ã«æ¥ç¶ã、以åã«æ ¼ç´ããããã¼ã¿ãåå¾ã§ããããã«ãªãã¾ãã。ç¹ã«、ãã®ã©ã¤ãã©ãªã® on() ã¡ã½ããã¯、ãã¼ã¿ãã¼ã¹å
ã®ç¹å®ã®å ´æã«ããããã¼ã¿å¤æ´ã®ç£è¦ã«ä½¿ç¨ã§ãã¾ã。ãããã£ã¦、ãµã¼ãã¼å´ã§æ°ããã¿ã¹ã¯ãå®äºãã(ã¤ã¾ãæ°ããã¡ã¼ã«ãéä¿¡ããã)ãã¨ã«、Firebase ã«éç¥ã、ããã«å¿ã㦠UI ãèªåçã«ã¢ãããã¼ãããã¾ã。
var fb = new Firebase("https://test-apps-script.firebaseio.com ");
var ref = fb.child('users/' + UID + '/nbOfEmailsSent');
ref.on("value", function(data) {
if (data.val()) {
document.getElementById("nbOfEmailsSent").innerHTML = data.val();
}
});
ã¢ããªã³ã§ã®ãã®ä»ã® Firebase ã®ä½¿ç¨æ³
ä¸è¨ã®ä¾ã«å ã、Google Apps Script ã¢ããªã³ã§ Firebase ã便å©ã«ä½¿ç¨ããæ¹æ³ã¯ä»ã«ãããã¾ã。
Yet Another Mail Merge ã¯、æ¯æããã©ã³ãææ¡ãããã¨ãã§ã、ãã®å ´å顧客ãªã¹ãã®ä¿åãå¿
è¦ã¨ãã¾ã。Firebase ã¯ãããã£ãã±ã¼ã¹ã«ãã¾ãã«ãã£ã¦ã¤ãã§ã。誰ãããã©ã³ãè³¼å
¥ãããã¨ã«、æ¯æããã¼ã«ã Apps Script ã¦ã§ã ã¢ããªãå¼ã³åºã、ããã Firebase ã«æ¯æãã®è©³ç´°ãæ¸ãè¾¼ã¿ã¾ã。ãããã£ã¦、è³¼å
¥ã®ç´å¾ã«ã¦ã¼ã¶ã¼ã追å æ©è½ãéãã¨、ãµã¼ãã¼å´ã®æ©è½ã Firebase ãå¼ã³åºã、該å½ãã¬ãã¢ã æ©è½ããã®ã¦ã¼ã¶ã¼ã«å¯¾ãã¦æå¹åããã¦ãããã¨ã確èªã§ãã¾ã。
ããã²ã¨ã¤ä¾¿å©ãªä½¿ç¨æ¹æ³ã¨ãã¦、ã¡ã¼ã« ãã¼ã¸ã®æçµæ®µéã§、Firebase ã使ç¨ãã¦éãããã¡ã¼ã«ã®ãªã¢ã«ã¿ã¤ã ã¬ãã¼ããã¹ãã¬ããã·ã¼ãã®ãµã¤ããã¼ã«æä¾ã§ãã¾ã。
以ä¸ã¯、Apps Script ã¨Firebase ã使ç¨ãã¦å®ç¾å¯è½ãªæ©è½ã®ã»ãã®æ°ä¾ã«éãã¾ãã。ãæ°è»½ã«èªåã§è©¦ããã、Yet Another Mail Merge ãã¤ã³ã¹ãã¼ã«ãã¦、å®éã®ä¾ã確èªãã¦ãã ãã。ã¾ã、FirebaseApp ã¨å¼ã°ããå
¬é Apps Script ã©ã¤ãã©ãª ããã、ããã㯠Firebase ã®ä½¿ç¨ãéå§ããéã«å½¹ç«ã¡ã¾ã。ãã®ä»ã®æ¨æº Apps Script ã©ã¤ãã©ãªã¨åæ§ã«ä½¿ç¨ãã¦ãã ãã。
ãã¨ãã°、次ã®ç¹å®ã®ãã©ã¡ã¼ã¿ã使ç¨ãã¦、Firebase ãããã¼ã¿ãç°¡åã«ãã§ããã§ãã¾ã。
function getFrenchContacts() {
var firebaseUrl = "https://script-examples.firebaseio.com/";
var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
var queryParameters = {orderBy:"country", equalTo: "France"};
var data = base.getData("", queryParameters);
for(var i in data) {
Logger.log(data[i].firstName + ' ' + data[i].lastName
+ ' - ' + data[i].country);
}
}
Google Apps Script ã使ç¨ãã¦ç¬èªã®ã¢ããªã³ãæ§ç¯ãã¦ã¿ã¦ãã ãã。ããã«è©³ããç¥ãããå ´åã¯、ããã¥ã¡ã³ã(developers.google.com/apps-script )ãåç
§、ã¾ãQuickstart ããã¸ã§ã¯ããã試ããã ãã。çãã¾ã®ã¢ããªã³ã®ãå½¹ã«ç«ã¦ãã°å¹¸ãã§ã。
Posted by Ian Lewis - Developer Relations Team