Google Apps Scriptã¯ã©ã€ãã©ãªã掻çšãã¹ããGASã
Google Apps Scriptã§éçºãããŠãããšãã ãã ã䌌ããããªã³ãŒããåãä»çµã¿ãåããããžã§ã¯ãã«äœåºŠãæžãäºãåºãŠããŸãããããããã®ãŸãŸã§ã¯ä»ã®ãããžã§ã¯ãã§äœ¿ãåããããããã³ãŒããç°¡æœã«æžãã«ã¯ã¡ãã£ãšäžéœåã§ãããŸããïŒã€ã®ã¹ãã¬ããã·ãŒãã«è€æ°ã®ãããžã§ã¯ããã¡ã€ã«ã远å ããå Žåããããžã§ã¯ãããããã£ãªã©ã¯ãã®ãããžã§ã¯ãå ã®ãã®ããåç §åºæ¥ãªãã®ã§ãè€æ°ã®ãããžã§ã¯ãã§åç §ããããå Žåãããã§ã¯å°ã£ãäºã«ãªããŸãã
ããã§æŽ»çšãããã®ããã©ã€ãã©ãªæ©èœããªãã¹ããªãã¹ãå°ããªé¢æ°ã決ãŸã£ãåŠçãããã«ãŒãã³ã¯ã©ã€ãã©ãªã«ãŸãšããŠãè¶³ããªãéšåã ããã³ãŒãã§èšè¿°ããããã«ãããšãéçºããšã£ãŠãæ©ããªããŸããäœããå ¬åŒãµã€ãã«ãæ²èŒãããŠããŸãããã©ã€ãã©ãªã¯äœ¿çšãããšããã°ã©ã ã®å®è¡é床ã¯é ããªããŸãã®ã§ã泚æãå¿ èŠã§ãã5åã®å£åé¡ãçããå Žåã«ã¯ããããŠäœ¿ããªãäºãèæ ®ãã¹ãã§ãããã
â»2020/12æãªãªãŒã¹ã®æ°IDEãããããžã§ã¯ãããŒã¯å©çšäžå¯èœã«ãªããã¹ã¯ãªããIDã§çµ±äžãããŸãã
ç®æ¬¡
- 1 ä»å䜿çšããã¹ãã¬ããã·ãŒã
- 2 ã©ã€ãã©ãªã®äœãæ¹
- 3 ã©ã€ãã©ãªã®äœ¿ãæ¹
- 4 å
¬éããŠãã©ã€ãã©ãª
- 4.1 Moment.js
- 4.2 Underscore.js
- 4.3 HTML/XML Parser for Google Apps Script
- 4.4 BetterLog
- 4.5 ChatWorkClient for GAS
- 4.6 SlackApp for Google Apps Script
- 4.7 OAuth2 library for Google Apps Script
- 4.8 Google Service Account Library for Apps Script
- 4.9 CryptoJS libraries for Google Apps Script
- 4.10 spreadsheets-sql
- 4.11 NCMB for Google Apps Script
- 4.12 SORACOM API ã©ã€ãã©ãª
- 4.13 TwitterApp for Google Apps Script
- 4.14 Google Apps Script Kintone Library
- 4.15 GASUnit ã©ã€ãã©ãª
- 4.16 Google Apps Script Drive API v3 ã©ã€ãã©ãª
- 4.17 QualityForwardã©ã€ãã©ãª
- 4.18 Firestore for Google Apps Scripts
- 4.19 RunAllã©ã€ãã©ãª
- 4.20 Cheeriogs
- 5 é¢é£ãªã³ã¯
ä»å䜿çšããã¹ãã¬ããã·ãŒã
18ZTA1QAjtpJuhtn4Uka0Yo-VIKodP8zVVR71uJPg1qgr4vUkiGtt7lXS
ã©ã€ãã©ãªã®äœãæ¹
ã³ãŒããèšè¿°ãã
æ§ã ãªåŠçãè¡ã颿°ããŸããããžã§ã¯ãå ã«èšè¿°ããŸãããããã®æãä»ã®ããã°ã©ã ããåŒã³åºãããäºãæèããŠã³ãŒãã¯æžããªããã°ãªããŸããããããŸã§ãå¥ã ã®ãããžã§ã¯ããªã®ã§ãã¹ãã¬ããã·ãŒãæäœãªã©ã§getActiveSpreadsheetãªã©äœ¿ã£ãŠããã©ã€ãã©ãªåŽããã¯ã¢ã¯ãã£ããªã¹ãã¬ããã·ãŒããã©ããªã®ãããããŸããããã
ãŸããå€ãã£ãäœ¿ãæ¹ãšããŠã¯ãã©ã€ãã©ãªåŽã«ãã䜿ãCSSãJavaScriptã®å¡ãhtmlãã¡ã€ã«ãšããŠçšæããŠãããHTML Serviceã®getContent()ã§ååŸãè¿ããŠäžãããã©ã€ãã©ãªåŒã³åºãåŽã¯ãHtmlService.createTemplateFromFileã«ãŠè¡šç€ºãããŠã§ãã¢ããªã®ã³ãŒãå ã«ãã¹ã¯ãªããã¬ãããšããŠã©ã€ãã©ãªåŽã®CSSãåŒã³åºããŠããããšãcssãjavascriptã䜿ããŸããããäºãåºæ¥ãããã«ãªããŸãã
ã¹ã¯ãªããããããã£ãå ±çšããŠã¿ã
ã¯ãŒã¯ãããŒãªä»çµã¿ãäœãæã«ãäŸãã°èªã¿æžãããã¹ãã¬ããã·ãŒãã®IDãªã©ãéä¿¡å ã¡ã¢ããªã©ãããããã£ãµãŒãã¹ã䜿ã£ãŠä¿åããããã°ã©ã ã§å©çšããããšããããŸããããããç³è«çšãã©ãŒã ãšæ¿èªçšãã©ãŒã ã§å ±çšã®ïŒã€ã§å ±çšããããšããã¹ã¯ãªããããããã£ã¯ãã®ãããžã§ã¯ãå ããåç §ã§ããŸããã
ããã§ã©ã€ãã©ãªæ©èœã䜿ã£ãŠ1ç®æã§èªã¿æžãåºæ¥ãããã«ããŠäœ¿ã£ãŠããããŸãããã®å Žåãã®ã¹ãã¬ããã·ãŒãã«ã¯ç³è«çšãæ¿èªçšã«å ããŠã¹ã¯ãªããããããã£çšã®3ã€ç®ã®ãããžã§ã¯ãã远å ããŠããå¿ èŠããããŸãããã®3ã€ç®ãã©ã€ãã©ãªãšãªããŸãã
èªã¿æžãã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//ããããã£ãååŸãã function getProp(value) { var Properties = PropertiesService.getScriptProperties(); var temp = Properties.getProperty(value); return temp; } //ããããã£ãã»ãããã function setProp(key,value){ var Properties = PropertiesService.getScriptProperties(); Properties.setProperty(key,value); } |
åŒã³åºãåŽã¯ãäŸãã°library.getPropã§ããããã£ãååŸããŸããlibrary.setPropã§ããããã£ãä¿åããŸããåŒã³åºãåŽã§PropertiesServiceããã¡ãã¡èšè¿°ããå¿ èŠããªãã®ã§æ¥œã¡ãã§ããå ±éèšå®çšã®ãããžã§ã¯ããšããŠãããçä¿åãåŒã³åºãåŽã®ã©ã€ãã©ãªã«è¿œå ããŠãããŸãããã
CSSãã©ã€ãã©ãªãšããŠã¿ã
GASã®ã³ãŒã
1 2 3 4 5 6 7 |
//CSSãååŸããŠè¿ã function getcss(cssname){ var css = HtmlService.createHtmlOutputFromFile(cssname) .setSandboxMode(HtmlService.SandboxMode.IFRAME).getContent(); return css; } |
css.htmlã®ã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<style> table { border-collapse: collapse; width:100%; } th.t_top { border-top: #be1309 4px solid; } th { border-bottom: #e3e3e3 1px dotted; text-align: left; padding: 10px; font-weight: normal; } td.t_top { border-top: #b3b3b3 4px solid; } td { border-bottom: #e3e3e3 1px dotted; text-align: left; padding: 10px; } tr:hover { background: #3D80DF; color: #FFFFFF; } </style> |
åŒæ°ã«cssnameãåã£ãŠããŸããcssnameã§äœ¿ãcssãã¡ã€ã«ãåãæ¿ããããŸãã
åŒã³åºãåŽã³ãŒã
GASåŽã®ã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//ã¡ã€ã³ç»é¢åŒã³åºã function doGet(e) { var output = HtmlService.createTemplateFromFile('index2'); var html = output.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME); return html; } //ã©ã€ãã©ãªåŽã«ããCSSãã¡ã€ã«ãåŒã³åºã function retcss(){ var css = library.getcss("css"); return css; } |
HTMLåŽã®ã³ãŒã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<head> <?!= retcss(); ?> </head> <body> <!-- åºæ¬æ
å ±å
¥åéšå --> <table summary="ãŠã§ããµã€ã玹ä»"> <tr> <th class="t_top" width="100">ãµã€ãå</th> <td class="t_top">officeã®æ</td> </tr> <tr> <th>ãµã€ãã®ãžã£ã³ã«</th> <td>G SuiteãMicrosoft365</td> </tr> <tr> <th>URL</th> <td>https://officeforest.org/</td> </tr> <tr> <th>è¶£å³</th> <td>ããã·ã§ã³ãã«ãŒãã®æ œå¹</td> </tr> <tr> <th>ã¡ãŒã«ã¢ãã¬ã¹</th> <td>hogehoge@hogehoge.com</td> </tr> </table> </body> |
ãµã³ãã«ããŒãž
泚æäºé
ã©ã€ãã©ãªãèšè¿°ããæã«æ³šæããªããã°ãªããªããã€ã³ããããã€ããããŸãã
- ããåããããžã§ã¯ãå ã«åã颿°ãã¯ã©ã¹ãªã©ãããå ŽåããªãŒããŒã©ã€ããããŠããŸããŸãã
- ã©ã€ãã©ãªå ã§ã ã䜿ã£ãŠããã©ã€ããŒããªé¢æ°ã¯ãåç §ãããããªãã®ã§ã颿°åã®åŸã«ã¢ã³ããŒããŒïŒ_ïŒãå ¥åãããäŸãã°ãgetkinoko()ãšãã颿°ãªãã°ãgetkinoko_()ã§ãã©ã€ããŒã颿°ã«ãªããŸããã»ãã¥ãªãã£ããŒã«ã«ãªãã®ã§æ³šæã
- ã©ã€ãã©ãªãžã®ã¢ã¯ã»ã¹æš©éããªããã°ãã©ã€ãã©ãªã远å ããŠã䜿ããŸãããå¿ ããã®ã©ã€ãã©ãªãå±ããããã¥ã¡ã³ãã«å ¬éæš©éãä»ããããã«ããŸãããã
- ã©ã€ãã©ãªã¯æäœã§ã1åã¯çãšããŠä¿åããªããã°äœ¿ããªãã®ã§ãå¿ ãçãä¿åããŸãããããŸããçãšããŠä¿åããªããšãåæ ããããªãã®ã§ãèšè¿°ããã®ã«åºãŠããªãæã«ã¯æ³šæã
- ã©ã€ãã©ãªãåŒã³åºãåŽãçïŒããŒãžã§ã³ïŒæå®ã«ãã£ãŠäœ¿ãã颿°ãªã©ãå€ãã£ãŠããã®ã§æ³šæãå¿ èŠã§ããæäŸããåŽãå€ãçã¯æšãŠãããã«ããŸãããã
- ã©ã€ãã©ãªã®é¢æ°ãGoogleã¹ãã¬ããã·ãŒãäžã§ã¯çŽæ¥åŒã³åºããŸãããã¹ãã¬ããã·ãŒãã®ãããžã§ã¯ãäžã§åŒã³åºã颿°ãçšæããŠãããŸãããã
Google Apps Scriptã®é¢æ°ã¯èª°ã§ãå®è¡ã§ãã¡ããã®ã§æ³šæ
JSDocãèšè¿°ããŠãã
JSDocãšã¯ã颿°ãèšè¿°ããæã«é¢æ°ã®ãªã¹ããåè£ãšããŠåºãŠæ¥ãæååãçšæããŠãããã®ã§ãå©çšè ãã©ããªé¢æ°ãªã®ãïŒå ¥åäžã«ãããããã«ããŠããçºã®ãªã¹ãã§ããç¬ç¹ã®èšè¿°æ¹æ³ããããŸãããã®èšè¿°ã颿°ã®åã«èšè¿°ããŠããäºã§ããã®é¢æ°ã®äœ¿ãæ¹ãåŒæ°ã®åãæ¹ãªã©ããããããã«ãªãããŸããJSDocãèšè¿°ããããšã§ã©ã€ãã©ãªã®ãªãã¡ã¬ã³ã¹ãèªåçã«äœæãããŸãã
äŸãã°ãšãã颿°ã®JSDocãšããŠã¯ä»¥äžã®ããã«èšè¿°ããŠãããŸãã
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * ãããAdmin SDKæå¹ã«ããŠãããªããšäœ¿ããªããâ
* * var pass = ore.addUser("ã¡ãŒã«ã¢ãã¬ã¹","å","å§"); * @param {string} mail äœãããã¡ãŒã«ã¢ãã¬ã¹ãå
¥ãã * @param {string} firstname æåéããã¡ãŒã¹ãããŒã ãå
¥ããŸãã * @param {string} familyname ãã¡ããªãŒããŒã ãå
¥ããŸããå§ã§ããªã * @return {string} pass èªåçæãããã¹ã¯ãŒããè¿ããŸãã */ function addUser(mail, firstname, familyname) { var pass = String("_" + Math.random().toString(36).slice(-11)); var user = { primaryEmail: mail, name: { givenName: firstname, familyName: familyname }, // Generate a random password string. password: pass, changePasswordAtNextLogin: true }; user = AdminDirectory.Users.insert(user); return pass; } |
ãã®é¢æ°ãå
¥åããããšãããšãªãŒãã³ã³ããªãŒãã®åè£ãšããŠä»¥äžã®ããã«è¡šç€ºãããŸãã
å³ïŒaddUserã®å ¥ååè£ãåºãŠããŸãã
å ¬éãã
å ¬éããæã«å¿ èŠãªã®ã¯ãã¹ã¯ãªããIDã§ãã以åã¯ãããžã§ã¯ãããŒã䜿ã£ãŠããã®ã§ããçŸåšã¯æšå¥šãããŠããŸãããå ¬éããã«ã¯ãŸãã¯çŸåšã®çãä¿åããŸããä¿åæé ã¯ä»¥äžã®ãšããã§ãã
- ã¹ã¯ãªãããšãã£ã¿ã«æŒããŠã¡ãã¥ãŒããããã¡ã€ã«ãâãçã管çããã¯ãªãã¯
- ããã¹ãããã¯ã¹ã«ããŒãžã§ã³ã®èª¬ææãå ¥ããŠããæ°ããããŒãžã§ã³ãä¿åããã¯ãªãã¯
- æ¹ããŠã¡ãã¥ãŒããããã¡ã€ã«ãâããããžã§ã¯ãã®ããããã£ããã¯ãªãã¯
- æ å ±ã¿ãã®äžã«ãããã¹ã¯ãªããIDãã®æååãã³ããŒ
- ã¹ã¯ãªããIDã䜿ã£ãŠãããããäººã«æãã
å³ïŒã¹ã¯ãªããIDãéèŠãªã®ã§ã
V8ãšã³ãžã³å¯Ÿå¿
2020幎2æ6æ¥ããV8ãšã³ãžã³ãå©çšå¯èœã«ãªã£ãããšã«é¢é£ããŠãã©ã€ãã©ãªã§ã®èŠæ³šæäºé ã§ãã
GASã®ã©ã€ãã©ãªã䜿ãå ŽåãåŒã³åºãå ã®ãããžã§ã¯ããRhinoã§ãåŒã³åºãå ã®ã©ã€ãã©ãªåŽãV8ã®å ŽåãåŒã³åºãå ã§ãã®ã©ã€ãã©ãªã䜿ã£ãå ŽåãV8ã§ãªããã°äœ¿ããªãã¡ãœããçã®å Žåãšã©ãŒãšãªããŸãïŒéã«V8ã§ã¯äœ¿ããªãã¡ãœãããã©ã€ãã©ãªåŽã§äœ¿ã£ãŠããå ŽåãåãïŒã
åŒã³åºãããåŽã®ãšã³ãžã³ã§åãäºã«ãªãã®ã§ãã©ã€ãã©ãªéçšããŠã人ã¯èŠæ³šæäºé ã§ããå¿ ããäž¡æ¹ã®ãšã³ãžã³ã¯åãã«ããäºãã©ã€ãã©ãªåŽã§ããŸãåããŠãããåé¡ãªããšæã£ãããããã䜿ã£ãŠãããããžã§ã¯ãåŽãV8ã§ã¯ãªããšã©ãŒããã³ãã³åºãããšã«ãªããŸãã
å³ïŒå®æã«ã©ã€ãã©ãªåŽã¯V8ã«ãããšåä»ãªäºã«
ã©ã€ãã©ãªã®äœ¿ãæ¹
èªåãäœæããã©ã€ãã©ãªãä»äººãå ¬éãããŠãã©ã€ãã©ãªã¯ãå ¬éãããŠããããžã§ã¯ãããŒãã¹ã¯ãªããIDã远å ããäºã§å¯èœã«ãªããŸããå°çŸåšããããžã§ã¯ãããŒã¯äœ¿çšã¯æšå¥šãããŠããŸããã®ã§ãå ¬éããæã¯ã¹ã¯ãªããIDãå ¬éããããã«ããŸãããã
ããŠãã®ããŒãIDã远å ã䜿ããããã«ããŸãããã以äžã®æé ã§è¿œå ããŸãã
è¿œå æé
- ã¹ã¯ãªãããšãã£ã¿ã®ã¡ãã¥ãŒããããªãœãŒã¹ãâãã©ã€ãã©ãªããéããŸãã
- ã©ã€ãã©ãªã远å ã®ããã¹ãããã¯ã¹ã«ãããžã§ã¯ãããŒãã¹ã¯ãªããIDãå ¥ããŠã远å ãã¿ã³ãæŒã
- ã©ã€ãã©ãªäžèЧã«è¿œå ãããŸããå ¬éããŒãžã§ã³ãéžã³ãèå¥åãèšå®ããŸãã
- èå¥åã¯é¢æ°ã䜿ãæã«é ã«ä»ãããã®ã§ããããåºåãã§ãã®ã©ã€ãã©ãªã®é¢æ°ãåŒã¶ã®ã§ãäŸãã°momentãšä»ãããšãmoment.hogehogeãšãã£ã圢ã§hogehoge颿°åŒã³åºããŸããæ¥æ¬èªã¯äœ¿ããŸããã
- ä¿åãæŒããšäœ¿ããããã«ãªããŸãã
å³ïŒã©ã€ãã©ãªè¿œå ç»é¢
ã©ã€ãã©ãªã®é¢æ°ã䜿ã
远å ãããšãèå¥åã«ããããä»ããã°ãã©ã€ãã©ãªã®é¢æ°ãåŒã³åºãäºãå¯èœã«ãªããŸããèªåã®ãããžã§ã¯ãã«äœã£ã颿°ãšåãããã«äœ¿ããããã«ãªããŸããäŸãã°ãmoment.jsãåã蟌ã¿ãèå¥åã«momentãšæå®ããäºäŸãšããŠ
äŸãã°ããæ¥ä»ããŒã¿ãããæ¥ä»ããŒã¿ã®å±ããŠãé±ãšåããã©ãããæ€èšŒããå Žåã«ã¯
1 |
var hantei = moment.moment('2018/4/9').isSame('2018/4/13','week'); |
ãã®æå€æ°hanteiã«ãåãé±ãªãã°ãtrueãå ¥ããŸããéãé±ãªãã°falseãå ¥ããŸããèå¥åã¯å€§æåå°æååºå¥ããã®ã§æ³šæããŠäžããã
éçºè ã¢ãŒã
èªäœã®ã©ã€ãã©ãªã®å Žåãéçºè ã¢ãŒããšåŒã°ããããŒãžã§ã³ãããããã®ããŒãžã§ã³ã®å Žåãããã€ãããšãåžžã«ææ°ã®ã³ãŒããå®è¡ãããç¶æ ã«ãªããŸããã©ã€ãã©ãªãç»é²ããç¶æ ã§ã¯ãã®çã衚瀺ãããŠãã¯ãã§ãã
ãã ããã®ã¢ãŒãã¯ãèªåããå©çšã§ããªãçºã第äžè ã«ãã®ã©ã€ãã©ãªãå«ããã¹ã¯ãªãããæž¡ããŠãåäœããŸããã第äžè ã«æž¡ããããã¯å ¬éããŸãã¢ããªã³çã«å«ããŠGoogleã«ã¬ãã¥ãŒãåããå Žåã«ã¯ãå¿ ããããã€ããŠæå®ã®çã«ãŠèšå®ããŠãããªããã°åäœããŸããã®ã§èŠæ³šæã§ãã
å³ïŒãããŸã§éçºäžã ã䜿çšããäº
å ¬éããŠãã©ã€ãã©ãª
Moment.js
â»æ¬ãããžã§ã¯ãã¯2020幎9æã«å€§å ã®ãããžã§ã¯ããçµäºããŠããŸããŸããããã V8ã䜿ããããã«ãªã£ãGASãªãã°ãdays.jsãªã©ã®ãœãŒã¹ãåã蟌ãã§äœ¿ãããããããŸããã
ããšããšã¯JavaScriptã§æ¥ä»é¢ä¿ã®åŠçãããç°¡åã«æ±ãçºã«äœãããMoment.jsãGoogle Apps Scriptã§ã䜿ããããã«ãªãã¡ã€ã³ããã©ã€ãã©ãªãèªåã§ãç°¡åã«çšæåºæ¥ãã®ã§ãèªåã§ãœãŒã¹ã³ãŒãããŸãããšã³ããããŠãã©ã€ãã©ãªåããŠãè¯ãã§ããããå ¬åŒãªãã¡ã¬ã³ã¹ãèŠãªãããã®ãŸãŸäœ¿ããŸãã
ææ°ã®IDEã§ã¯ãããžã§ã¯ãããŒã䜿ããªãçºãã©ãããŠã䜿ããã人ã¯ãã¡ãã«ããã®ã倧å ã®ãããªã®ã§ãã³ããŒããŠèªåã§ã¹ã¯ãªããIDãã³ããŒãããšè¯ãããšæããŸãïŒV8ã§ãåããã©ããã¯æªæ€èšŒïŒãäžå¿èªåãã³ããŒããŠããããã®ã¯ãã¹ãã¬ããã·ãŒãã«ããŠãããŸãã
Underscore.js
ããšããšã¯JavaScriptã§é åããªããžã§ã¯ããåçš®é¢æ°ãªã©ããã£ãšäŸ¿å©ã«äœ¿ããããã«ãšçšæãããŠãUnderscore.jsãGoogle Apps Scriptã§ã䜿ããããã«ããã©ã€ãã©ãªã§ããGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸãã100çš®é¡ã«ãããã¶æ°ã ã®é¢æ°ã䜿ããããã«ãªããŸãã
ãã¡ãã¯7幎åã§éçºãæ¢ãŸã£ãŠããŸããã倧å ã®ã¹ã¯ãªããã¯ãã¡ãã®ããã§ãã³ããŒããŠèªåã§ã¹ã¯ãªããIDãã³ããŒãããšè¯ãããšæããŸãïŒV8ã§ãåããã©ããã¯æªæ€èšŒïŒãäžå¿èªåãã³ããŒããŠããããã®ã¯ãã¹ãã¬ããã·ãŒãã«ããŠãããŸãã
HTML/XML Parser for Google Apps Script
Google Apps Scriptã«ãŠHTMLã®ã¹ã¯ã¬ã€ãã³ã°ãXMLãã¡ã€ã«ã®ããŒã¹ãç°¡åã«è¡ããããã«ãšäœãããã©ã€ãã©ãªã§ãGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸããäœ¿ãæ¹ã®èª¬æã¯è£œäœè ã®ããŒãžã«èšèŒãããŠããŸãã
BetterLog
Google Apps Scriptã¯Logger.logã«ãŠåçš®ãã°ãååŸããããšãã§ããŸãããã¡ãã£ãšäœ¿ãã«ãããå床ã¹ã¯ãªãããå®è¡ãããšåã®ãã°ã¯æ¶ããŠããŸããŸãããããã§ãã®logãã¹ãã¬ããã·ãŒãã«æžãåºããŠãããã©ã€ãã©ãªããã®ã©ã€ãã©ãªãGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸãã
4幎åããã¹ãããããŠããã®ã§ãã³ããŒããŠèªåã§ã¹ã¯ãªããIDãã³ããŒãããšè¯ãããšæããŸãïŒV8ã§ãåããã©ããã¯æªæ€èšŒïŒãäžå¿èªåãã³ããŒããŠããããã®ã¯ãã¹ãã¬ããã·ãŒãã«ããŠãããŸãã
ChatWorkClient for GAS
ãã£ãããµãŒãã¹ã§ãããChatWorkãã®APIãGoogle Apps Scriptããæ±ããããã«ããçºã®ã©ã€ãã©ãªã§ããå ¬åŒãµã€ãã§ã¡ã³ããã³ã¹ãããŠããŸãïŒGithubã¯ãã¡ãïŒãGoogle Apps Scriptãããã£ãããæããäºãå¯èœã«ãªã£ããããŸãã
SlackApp for Google Apps Script
ããžãã¹åããšããŠããã·ã¥ããŠããã£ãããµãŒãã¹ãSlackãã«Google Apps Scriptããæçš¿ã§ããããã«ããŠãããã©ã€ãã©ãªã§ããäœè ã®ãµã€ãã§ã¡ã³ããã³ã¹ãããŠããŸããITã®ã¹ã¿ãŒãã¢ããäŒæ¥ãªã©ã§ããã¿ãããŸããã
OAuth2 library for Google Apps Script
Google Apps Scriptã«ãŠå€éšã®ãµãŒãã¹èªèšŒã§çšããããŠãOAuth2èªèšŒãæè»œã«åºæ¥ãããã«ããçºã®ã©ã€ãã©ãªã§ãããããçšããããšã§ãäŸãã°Facebookãªã©ã®ãµãŒãã¹ã«OAuth2èªèšŒããŠé£æºãªã©ãåºæ¥ãããã«ãªããŸããGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸããåçš®ãµã³ãã«ãçšæãããŠããã®ã§ãããããã§ãã
Google Service Account Library for Apps Script
Googleã®ãããžã§ã¯ãã«æŒããŠãµãŒãã¹ã¢ã«ãŠã³ãã容æã«æ±ããããã«ããããã®ã©ã€ãã©ãªã§ããGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸããããŸãäžè¬ã®äººã¯äœ¿ãããšããªããããããŸããããGoogleéçºè ãšããŠã¯å©çšãã䟡å€ããããããããŸãããã
CryptoJS libraries for Google Apps Script
JavaScriptã§çšããããŠãæåãç»åé¡ãªã©ãAESæå·åããçºã®ã©ã€ãã©ãªã§ãããã¡ãã®ãµã€ãã§è©³çްãèŠãããšãåºæ¥ãŸãããœãŒã¹ã³ãŒãã¯ãã¡ãããé²èЧã§ããŸãã
spreadsheets-sql
Googleã¹ãã¬ããã·ãŒãäžã®ããŒã¿ãæŽæ°ã倿Žãåé€ãããã®ã¯çµæ§æéãæãããŸãããã®æŽæ°äœæ¥ãSQLã£ãœãæãã®ã³ãŒãã§æè»œã«æ±ããããã«ããŠãããã©ã€ãã©ãªã§ããGithubã«ãŠã¡ã³ããã³ã¹ãããŠããŸããå ¬åŒãµã€ãã§ããã¥ã¡ã³ããèŠãããšãå¯èœã§ãã
NCMB for Google Apps Script
NiftyãæäŸããŠãã¹ããã©åãã®ã¢ãã€ã«ããã¯ãšã³ããµãŒãã¹ã§ããmBaaSãGoogle Apps Scriptããæäœåºæ¥ãããã«ããŠãããã©ã€ãã©ãªã§ããããã·ã¥éç¥ã«ä»£è¡šãããAPIã䜿ããã®ã¯ãšãŠã䟿å©ã§ãããå ¬åŒãµã€ãã§ã¡ã³ããã³ã¹ãããŠããŸããV8çã¯å¥ã©ã€ãã©ãªã«ãªã£ãŠãã®ã§æ³šæã
SORACOM API ã©ã€ãã©ãª
IoTãã©ãããã©ãŒã ãSORACOMããGoogle Apps Scriptã§æ±ãããã®ã©ã€ãã©ãªã§ããäž»ã«ã»ã³ã·ã³ã°ããã€ã¹ã§SIMã䜿ã£ãŠã®ããŒã¿éä¿¡ã管çããããã®ãã®ã§ã蟲æ¥ãªã©ã§ã¯æŽ»çšãã§ãããã§ãããã©ã€ãã©ãªã¯ãã¡ãã®ããŒãžã§å ¬éãããŠããŸããäœ¿ãæ¹å«ããŠè©³çްã«èšè¿°ãããŠããã®ã§ãIoTã«èå³ã®ãã人ã®å©ãã«ãªãã§ãããã
TwitterApp for Google Apps Script
èšãããšããããã€ãã¿ãŒãžGoogle Apps Scriptã§ã¢ã¯ã»ã¹ã容æã«ããããã®ã©ã€ãã©ãªã§ããGitHubã«ãŠã¡ã³ããããŠããŸã.ãã€ãŒããæçš¿ãããããŒã¿ãååŸãããããã®ã©ã€ãã©ãªãããã°èªåã§æ§ç¯ããå¿ èŠããããŸããã
Google Apps Script Kintone Library
å°èŠæš¡ãªæ¥åæ¹åãã©ãããã©ãŒã ãšããŠå©çšãããŠãããµã€ããŠãºã®KintoneãGoogle Apps Scriptããããšæ£çŽå©çšããã®ããªïŒãšæããšããã§ã¯ããããã©ãGASããKintoneãžã¢ã¯ã»ã¹ããçºã®äžé£ã®APIããŸãšããã©ã€ãã©ãªãGithubã«ãŠã¡ã³ããããŠããŸããã¬ã³ãŒãã®ååŸãæŽæ°ãåé€ãªã©äžéãã®äœæ¥ãç°¡åã«å®çŸã§ããŸãã
GASUnit ã©ã€ãã©ãª
Google Apps Scriptçšã®ãã¹ãå®è¡ã©ã€ãã©ãªã§ããGithubã«ãŠã¡ã³ããããŠããŸããGoogle Apps Scriptã«ã¯ãã¹ãå®è¡çšç°å¢ãªã©ã¯çšæãããŠããããQUnitããŒã¹ã®ã©ã€ãã©ãªã¯ãã¡ãã«ãããŸãïŒKey : MxL38OxqIK-B73jyDTvCe-OBao7QLBR4jïŒã
Google Apps Script Drive API v3 ã©ã€ãã©ãª
QualityForwardã©ã€ãã©ãª
Firestore for Google Apps Scripts
Googleã®ã¢ãã€ã«åããã©ãããã©ãŒã ã§ããFirestore Databaseã«ã¢ã¯ã»ã¹ããããããçºã®ã©ã€ãã©ãªã§ããèªèšŒé¢ä¿ãããŒã¿ã®ããåããªã©ãã§ããŸãããäºåã»ããã¢ãããšããŠãã©ã€ããŒãããŒã®ååŸãªã©ãå¿ èŠã«ãªããŸããã³ãŒãã¯ãGithubã«ãŠã¡ã³ããããŠããŸãã
RunAllã©ã€ãã©ãª
Cheeriogs