Google Apps Scriptã§ãããã°ããã€ããéãGASã
Google Apps Scriptã§ã¢ããªãéçºããã«ã¯æ§ã ãªã¡ãœãããèŠããããšãéèŠã§ãããäœãããããããã°ãããææ³ããã¡ããšèº«ã«ã€ããŠããå¿ èŠããããŸããéåžžã®ããã°ã©ãã³ã°èšèªãšåæ§ã®ææ³ãå¿ ãããåºæ¥ãããã§ã¯ãªãã®ãšãå²ãšæè¿ãŸã§åå§çãªãããã°æ¹æ³ããæããªãã£ããšããã®ããããŸãã
ããã§ä»åã¯èªåãGASã§ãããã°ããéã«å©çšããŠãææ³ããŸãšããŠã¿ãŸããã
ç®æ¬¡
éåžžã®ãããã°ææ³
ãã°åºå
V8察å¿ã®æ°å¯Ÿå¿åã«ã¯Logger.logãããªãã£ãGoogle Apps ScriptãçŸåšã®æ°IDEã«ãªã£ãŠããã¯é垞䜿ããããã°çšã®ã¡ãœããã¯console.logãäž»æµã«ãªã£ãŠããŸããåå§çãªææ³ã§ããã倿°ã®äžèº«ããšã©ãŒã¡ãã»ãŒãžãååŸããŠåºåãããšããç¹ã§ã¯åºç€ã®åºç€ãªã®ããã°åºåã§ãã
çŸåšã®GASã§äœ¿ãããã°åºåã®ã¡ãœãããã¿ãŒã³ã¯ä»¥äžã®5çš®é¡ã§ããconsole.logç³»ã¯V8æ§æããã¯ãã³ãã¬ãŒããªãã©ã«ãªã©ã䜿ããããã«ãªã£ãŠããŸãã
- Logger.log : æãåºç€çãªãã°åºåãV8以åããçŸåšãå©çšå¯èœ
- console.log : çŸåšæãæ®éã«äœ¿ãããŠããã°åºåãåŒæ°ã§è²ã
ãšæå®ãå¯èœã以äžã¯åŒæ°ïŒãã©ãŒãããæååïŒãåã£ãŠå€æ°ãåœãŠèŸŒãåºåæ¹æ³ã§ãã
123456//äžè¬çãªãã°åºåvar str = "ããŠã¿ãŸãã"console.log('æååã®åºå : %s', str)//åºåçµæ20:28:32 æ å ± æååã®åºå : ããŠã¿ãŸãã - console.infoïŒãšã©ãŒã§ã¯ãªãããã©æ å ±åºåãšããŠå©çšãã
- console.warnïŒèŠåæãåºãå Žåã«äœ¿çšããããªã¬ã³ãžè²åºåã§å®è¡ãã°ã«åºåãããŸãã
- console.error : ãšã©ãŒãšããŠåºåãããèµ€è²åºåã§å®è¡ãã°ã«åºåãããŸãã
GASã§ã¯å©çšã§ããªãconsoleåºåã®ã¡ãœããããã£ãããããã®ã§ãããã ãã¯æ³šæã§ãã
å³ïŒè²ã ãšäœ¿ãåããå¯èœã§ãã
JSONãæŽåœ¢ããŠãã°åºå
console.logãªã®ã§ãããJavaScriptã®é£æ³é åãªã©ã®ãªããžã§ã¯ãã®äžèº«ãåºåããå Žåããã®ãŸãŸã ãšéåžžã«èŠã«ãããREST APIãªã©ã§ããŒã¿ãåã£ãŠãããšãã«æŽåœ¢ããŠè¡šç€ºããããã«ãããšãããã°ãããããªããŸãã
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function seikeiman(){ let obj = { name : "nyancat", phone : "0120-222-222", company : "nyannyan house" } //ã€ã³ãã³ãã§æŽåœ¢åºå console.log(JSON.stringify(obj, null, 2)); //ã¿ãã§æŽåœ¢åºå console.log(JSON.stringify(obj, null, '\t')); } |
å³ïŒãã¬ã€ã«æŽåœ¢ãããã®ã§èŠããããªã
èšæž¬æéãåºåãã
èªåã®ããã°ã©ã ã®ãã³ãããŒã¯ãªã©ãåãããã«éå§æå»ãšçµäºæå»ãåã£ãŠãã°åºåãããå ŽåããããŸããå€ãããæ¹ã ãšä»¥äžã®ãããªã³ãŒãã§å·®åãåã£ãŠåºåããŸãã
1 2 3 4 5 6 7 8 9 10 11 12 |
function oldtimewatch(){ //çŸåšæå»ãååŸãã let starttime = new Date(); Utilities.sleep(3000) //çµäºæå»ãšã®å·®åãç®åºããŠãã¡ãã»ãŒãžã衚瀺 let endtime = new Date(); let diff = (endtime.getTime()-starttime.getTime()) / 1000; console.log(diff + "ããªç§æãã£ã"); } |
Google Apps Scriptã¯V8ããconsoleãæ¡åŒµãããŠããŠã以äžã®ãããªæžãæ¹ãå¯èœã«ãªã£ãŠããŸããtimeãštimeEndã¯åãåŒæ°ãåãå¿ èŠããããŸãã
1 2 3 4 5 6 7 8 |
function timewatch(){ var label = 'çµéæé調æ»'; console.time(label); Utilities.sleep(3000) console.timeEnd(label); } |
å³ïŒãããªå ·åã«ãã³ããåãã
onEditããããã°ãã
èªäœã®ãŠãŒã¶å®çŸ©é¢æ°ãç·šéæã€ãã³ãã®ã·ã³ãã«ããªã¬ãŒã§ããonEditããããã°ããã«ã¯åŒæ°ã®eãåè§£ããŠè¡šç€ºããããã«ããå®è¡æ°æ¬¡é ã®å®è¡æ°ãã確èªãããšè¯ãã§ãããã
1 2 3 4 5 6 7 8 9 10 11 12 |
function onEdit (e) { var debug_e = { authMode: e.authMode, range: e.range.getA1Notation(), source: e.source.getId(), user: e.user, value: e.value, oldValue: e. oldValue } console.log({message: 'onEdit() Event Object', eventObject: debug_e}); } |
å³ïŒonEditãåŒæ°ãåè§£ããŠãããã°åºæ¥ã
doGetããããã°ãã
doGetã«ã€ããŠã¯æ°IDEã«ãªã£ãŠããã¯parameterãæ®éã«ååŸããŠãããã°åºåãå¯èœã«ãªã£ãŠããŸããdoPostã¯ãã®ãŸãŸã§ã¯åºæ¥ãªãã®ã§ãåŸè¿°ã®é«åºŠãªãããã°ææ³ãåç §ããŠãã ãããå·Šãµã€ãããŒã®å®è¡æ°ãããdoGetã®äžèº«ã確èªããã°ååŸãå¯èœã§ãã
1 2 3 4 5 6 7 |
function doGet(e) { //åãåããã©ã¡ãŒã¿ãçšæãã var filterparam = e.parameter.param1; console.log(filterparam) } |
å³ïŒdoGetã¯ãã¡ããšååŸãå¯èœ
å®è¡æ°ãã確èªãã
éå»ã®å®è¡ãã°åºåçµæã¯ãã¹ã¯ãªãããšãã£ã¿ãããã·ã¥ããŒãã®å®è¡æ°ãã確èªããããšãå¯èœã§ããã¹ã¯ãªãããšãã£ã¿ã®å Žåãå·Šãµã€ãããŒã®å®è¡æ°ããéãããšãå¯èœã§ãã
å®è¡ãã°ã¯çŽåŸã®ãã°ã¯ç¢ºèªåºæ¥ãŸããããã以åã®ãã°ã¯å®è¡æ°ã«èããããŠãã®ã§ããã¡ãã§ç¢ºèªããããšã«ãªããŸãã
å³ïŒå®è¡æ°ããéå»ã®ãã°åºåã確èª
BetterLogãå©çšãã
Google Apps Scriptã®ã©ã€ãã©ãªã§ããBetterLogãå©çšããŠãã¹ãã¬ããã·ãŒãã«ãã°ãåºåãããšããæ¹æ³ããããŸããã¹ã¯ãªããIDãã©ã€ãã©ãªã«è¿œå ããŠãã以äžã®ãããªã³ãŒããå®è¡ãããšãæå®ããã¹ãã¬ããã·ãŒãã«Logãšããã·ãŒããäœæããŠãããã«ãã®ã³ã°å 容ãåºåããŸããLogger.logãäžæžãããŠå®è¡ããŸãã
1 2 3 4 5 6 7 8 9 10 |
function breakpoint(){ var point = 10 Logger = BetterLog.useSpreadsheet('ã¹ãã¬ããã·ãŒãã®IDãããã«å
¥ãã'); for(var i = 0;i<10;i++){ var temppoint = point + i; Logger.log(temppoint); } } |
å³ïŒãã°ãã¹ãã¬ããã·ãŒãã«åºåããã©ã€ãã©ãª
Google Formsã®å Žåã®ãããã°ææ³
Google Formsã«ã¹ã¯ãªãããèšè¿°ããŠãéä¿¡ãããŠããå€ããããã°ããŠã³ãŒããèšè¿°ãããããããã·ãŒã³ã¯å€ãã§ããããã®åºŠã«æ¯åFormãéããŠéä¿¡ããå 容ãèšè¿°ããŠã»ã»ã»ãªããŠãã£ãŠããæ¥ãæ®ããŠããŸããŸãã
ããã§Formsã§äžåéä¿¡ããŠæŒããŠããããã°ããæã¯Formsã«èç©ãããŠãããŒã¿ãåŒã£åŒµãåºããŠæ€èšŒãããšããææ³ããªã¹ã¹ã¡ã§ããéåžžã¯ä»¥äžã®ãããªã³ãŒããèšè¿°ããŸã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function sendForms(e){ //倿°ã宣èšãã var user = ""; //ã¡ãŒã«ã¢ãã¬ã¹æ ŒçŽçš var body =""; //æ¬æçšå€æ° //ãã©ãŒã ããŒã¿ãååŸãã var formdata = e.response.getItemResponses(); //ã«ãŒãã§ã¡ã¢ãååŸïŒå
¥åå€ãæ¬æã«å ãã for (var j = 0; j < formdata.length; j++){ //å
¥åé
ç®åãååŸãã var title = formdata[j].getItem().getTitle(); //ã¡ãŒã«ã¢ãã¬ã¹ãååŸãã if(title == "ã¡ãŒã«ã¢ãã¬ã¹"){ user = formdata[j].getResponse(); } //å
¥åé
ç®ãå
¥ããïŒã¿ã€ãã«ãšå
¥åå€ïŒ body += "ã"+formdata[j].getItem().getTitle()+"ã<br>"; body += formdata[j].getResponse()+"<br><br>"; ïœ } |
e.response.getItemResponsesãéãããŠããäžèº«ãååŸããŠããããã®ã§ãããããã ãšæ¯åéä¿¡ãå¿ èŠãªã®ã§ãäžåéä¿¡ããŠãããŠèç©ãããŠãããŒã¿ã§ãããã°ããå Žåã«ã¯e.responseã®ä»£ããã«ä»¥äžã®å 容ã«çœ®ãæãã
1 2 3 4 |
function sendman(e){ ããããvar formdata = FormApp.getActiveForm().getResponses()[0].getItemResponses(); } |
ããã§èç©ãããŠã0çªç®ã®ããŒã¿ã®å¡ãååŸåºæ¥ãã®ã§ããããå ã«ããšã®ã³ãŒãããããã°ããã°ãªãã±ãŒãæ¬çªéçšæã¯ãã®éšåãå ã®e.responseã«çœ®ãæããŠããã°è¯ãã
é«åºŠãªãããã°ææ³
ãã¬ãŒã¯ãã€ã³ãã§å€æ°ãç£èŠ
Google Apps Scriptã«ãVBAã®ããã«ãã¬ãŒã¯ãã€ã³ããèšçœ®ããŠãããã§äžæåæ¢ãããŠå€æ°ã®äžèº«ã確èªãã€ã€ãã¹ãããã€ã³ã§æ¬¡ã®å®è¡ãšãã£ãããšãå¯èœã«ãªã£ãŠããŸãã
ã³ãŒãã®æ¢ãããå Žæã®å·ŠåŽã«âãæãŠãã®ã§ãã¯ãªãã¯ãããšãã¬ãŒã¯ãã€ã³ããèšçœ®ãããŸãããããŠãéåžžã®ããã«é¢æ°ãå®è¡ããã®ã§ã¯ãªããã¡ãã¥ãŒã«ããããããã°ããã¯ãªãã¯ããŠå®è¡ãããšãã¬ãŒã¯ãã€ã³ãã§äžæåæ¢ããŠãå³ãµã€ãã«å€æ°ã®äžèº«ãªã©ã衚瀺ãããŠé·ç§»ã確èªããªãããåéãã¿ã³ãæŒãã°æ¬¡ã®ã¹ããããå®è¡ã§ããŸãã
ãŸããã®æãglobalãå±éãããšã°ããŒãã«ãªããžã§ã¯ãã確èªãå¯èœã«ãªã£ãŠããŸãã
ãã°ãšã¯ã¹ãããŒã©ã䜿ã
å®ã¯Google Apps Scriptã§ã¯ä»¥åã¯StackDriver Loggingãšããåç§°ã§é«åºŠãªãããã®ã³ã°ç°å¢ã䜿ãããšãåºæ¥ãŸãããçŸåšã¯ããã¯ãã°ãšã¯ã¹ãããŒã©ãšæ¹åãããŠãGCPåŽã§é«åºŠãªãã°è§£æãåºæ¥ãããã«ãªã£ãŠããŸããGoogle Cloud Functionsãªã©ã®Node.jsã®ãããã°çã§ãå©çšããããã®ã§ãGASã§doPostã®å Žåconsole.logã§ãã°åºåããããªããã®ãããã®æ©èœã ãšãã£ã¡ããã°ãååŸããäºãå¯èœã«ãªã£ãŠããŸãã
GASã§äœ¿ãå Žåã«ã¯ã以äžã®æé ã§ãããžã§ã¯ããšGCPåŽã®ãããžã§ã¯ããçŽä»ãã«ããå¿ èŠããããŸãã
ãããžã§ã¯ããç§»åãã
å³ïŒãããžã§ã¯ã倿Žç»é¢
ãã°ãšã¯ã¹ãããŒã©ãéã
çŽä»ããå®äºããdoPostãªã©ã®ãã°ãèŠãããšæã£ããã以äžã®æé ã§ãã°ãšã¯ã¹ãããŒã©ã§é²èЧãå¯èœã§ãã
- ãã°ãšã¯ã¹ãããŒã©ãéã
- å šãŠã®ãã°ãäžç®æã«éãŸã£ãŠãã®ã§ãæå»ãæ¥ä»ãªã©ã§ãã£ã«ã¿ãã€ã€äœ¿ããŸãã
- ãã°ã®ãã£ãŒã«ãã®Apps Script颿°ãã¯ãªãã¯ããŠçµã蟌ã¿ãã
- 察象ã®ãã°åºåãå±éããŠäžèº«ã確èªãã
ãŸããGASåŽã®å®è¡æ°ããCloudã®ãã°ãéããŠãçŽæ¥ãžã£ã³ãããŠäžèº«ã確èªåºæ¥ãŸãã
å³ïŒã¡ãã£ãšé«åºŠãªã®ã§æ £ããå¿ èŠã§ãã
Developer Toolã䜿ã
Google Apps Scriptã ãã®ããã°ã©ã ãªãã°äžèŠã§ãããå®éã«ã¯ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãäœãæ©äŒã¯éåžžã«å€ãã§ããããããHTMLåŽã®ãããã°ã¯GASåŽã§è¡ããããšããã®ã¯é£ããããšããããšã¯ãã¯ããChromeã®Developer Toolã䜿ã£ãŠã®å€æ°ã®å€åãElementå 容ã®ç¢ºèªçãå¿ èŠã«ãªããŸããéåžžã®ãŠã§ãéçºãšåæ§ã«GASã®ãŠã§ãã¢ããªãåæ§ã«ãããã°ãå¯èœã«ãªã£ãŠããŸãã
ãŸããGASã®ãŠã§ãã¢ããªã®å Žåã®ãšã©ãŒåºåã¯GASåŽã®ãšã©ãŒããããã°ã³ã³ãœãŒã«ã«åºåããããããã®ã§ãã¡ãã£ãšã ããããããã§ãã
GASã®ãŠã§ãã¢ããªã®äž»èŠãªããŒãã®äžã§å³ã¯ãªãã¯âæ€èšŒã§è¡šç€ºããŠèŠçŽ ã®äžèº«ãèŠãŠã¿ãããF12ããŒã§è¡šç€ºãå¯èœã
å³ïŒDeveloper Toolã§ãããã°äž
é¢é£ãªã³ã¯
- ã2022.8æä¿®æ£ãGoogle Apps Scriptã§ããªã¬ãŒå®è¡ïŒdoGet,doPostïŒã®ãã°ã衚瀺ããã«ã¯GCPãããžã§ã¯ãã«çŽä»ããå¿ èŠãããããã
- [Chrome] console.log()ã®è²ã ãªæžãæ¹
- How to debug Google Apps Script (aka where does Logger.log log to?)
- How to debug OnEdit event function in google sheets appscript? [duplicate]