WebClap-like system by using Google Apps Script & Google spreadsheet.
å¢ããŠããã®ã§æŽçããŠã¿ãŸããã
| ãã¡ã€ã«å | ver | æŽæ°æ¥ | èŠæ±æš©é | é·æ | çæ |
|---|---|---|---|---|---|
| WebClapModoki-GAS.txt | v9 | 2022-12-25 | âGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ âå€éšãµãŒãã¹ãžã®æ¥ç¶ |
âèšäºéãã®å°å
¥ã§OK âå®å®ç |
âïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒã®ïŒèŠçŽ ã§ãªããšåãä»ããªãå¶éãã ïŒãã®åœ¢åŒä»¥å€ãåãåã£ãŠããã¹ãã¬ããã·ãŒãã«èšé²ããŸããïŒ |
| WebClapModoki-GAS_v10.txt | v10 | 2022-12-27 | âGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ âå€éšãµãŒãã¹ãžã®æ¥ç¶ |
âèšäºéãã®å°å
¥ã§OK ââã®v9ã®ïŒèŠçŽ çžãããªããïŒïœïŒåã®èŠçŽ ãæè»ã«åä¿¡ã§ããŸã |
âåäœç¢ºèªäžååãªè©Šéšçã§ã |
| WebClapModoki-GAS_v11.txt | v11 | 2023-01-17 | âGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ âå€éšãµãŒãã¹ãžã®æ¥ç¶ âGmailãžã®å®å šãªã¢ã¯ã»ã¹ âæ¬äººã«ä»£ãã£ãŠã®ã¡ãŒã«éä¿¡ |
âç°¡æçã§ãããæ°çãããã°ã¡ãŒã«ã§éç¥ããã§ããããã«ãªããŸãã âã¹ãã¬ããã·ãŒãã® id ãããŒãã³ãŒãã£ã³ã°ããªãæ¹æ³ãåããããã«ãªããŸãã |
âèŠæ±æš©éããã«ãã§ã âåäœç¢ºèªäžååãªè©Šéšçã§ã âå°å ¥ã»åæèšå®ãé¢åã§ã |
| WebClapModoki-GAS_v12.txt | v12 | 2023-01-18 | âGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ âå€éšãµãŒãã¹ãžã®æ¥ç¶ âGmailãžã®å®å šãªã¢ã¯ã»ã¹ âæ¬äººã«ä»£ãã£ãŠã®ã¡ãŒã«éä¿¡ |
âv11 ã®é·æã«å ããŠãDiscord ã®ä»»æãã£ã³ãã«ïŒãã©ã€ããŒããã£ã³ãã«å«ãïŒãžãæçš¿ãããå å®¹ãæšªæµãã§ããããã«ãªããŸãã | âèŠæ±æš©éããã«ãã§ã âåäœç¢ºèªäžååãªè©Šéšçã§ã âå°å ¥ã»åæèšå®ãé¢åã§ã |
Discord ã® WebHook URL ãå©çšããŠéç¥ãè¡ãæ©èœã远å ããã WebClapModoki-GAS_v12.txt ã远å ããŸããã
WebClapModoki-GAS_v12.txt ã¯ã
WebClapModoki-GAS_v11.txt ã«ã
- Discord WebHook URL çµç±ã§éç¥ãæãã颿°ïŒsendDiscordWebHook(post_content)ïŒ
- initPropertyValues() ã« DISCORD_WEBHOOK_URL, SPREADSHEET_ID ã®äœæã»ç¢ºèªã远å
- doPost(e) å ã® GAS_Date_Time ã®ååŸåŠç倿Žã
- doPost(e) å ã«ãâ å€éšïŒWebHookãªã©ïŒã«æãã content ãçšæããããâ ã€ãã§ã« Discord Webhook URL ã«æããŠã¿ãåŠçãã®è¿œå
ã®æ©èœè¿œå ã»ä¿®æ£ãå ãã 詊éšç ãšãªã£ãŠãããŸãã
âŠãªãã ãæ°žé ã«è©Šéšçãåºãããšã«ãªããããªæ°ãããŸããã
ä»åŸãèªåãæ¬²ãããšæã£ãæ©èœã¯ïŒæ°å次第ã§ïŒè¿œå ããŠãããŸãã®ã§ã
äœåãããããé¡ãç³ãäžããŸãã
ã€ãã§âŠãšç³ãäžããŠã¯äœã§ããã
ïŒç¹ã»ã©ãèšå®ã§åããã¥ããããªæ ãã以äžã«ç»åã§ç€ºããŠãããŸãã
èªåãããåŒã£ãããã®ã§ãåå¿é²ã§ãâŠã
ïŒã€ç®ïŒFig.0.0ïŒã¯ãã¹ã¯ãªããããããã£ã®èšå®å€æŽæã®æ³šæã§ãã
ãã¹ã¯ãªããããããã£ã®ä¿åããã¿ã³ã®ã¯ãªã㯠ãå¿ãããšã
ãã£ããèšå®ã倿ŽããŠãåæ ãããªã ããããªãã§ãâŠãã«è¯ããªããŸãã
Fig.0.0 ã¹ã¯ãªããããããã£ã®èšå®å€æŽæã®æ³šæç¹ïŒä¿åãå¿ãããšãèšå®å€æŽãåæ ãããŸããïŒïŒ
ïŒã€ç®ïŒFig.0.1ïŒã¯ãã¡ãŒã«éç¥çšé¢æ°ïŒdailyCheckTotalCounts_v2ïŒãã
ãããªã¬ãŒãæ©èœã§å®æçã«å®è¡ããéã®èšå®äŸã§ãã
泚æç¹ãšããŠã¯âŠ
å®è¡ãããããã€ããHeadãã«ããŠãããšãåžžã«ææ°ã®ãããã€çãå®è¡ããã ç¹ã§ããããã
ãæŽæ°ãã床ã«ããªã¬èšå®ãïŒå¿ããã«ïŒåŒããã®ã¯ãšãŠãé¢å ãªã®ã§ã
åºæ¬çã«ã¯ Head ã«ããŠãã ããšãèŠãããâŠã®ã§ããã
ãã°çããã£ãå Žåã«ãæ°ã«ããå®è¡ããŠããŸãããšããæ¬ ç¹ããããŸãã
ç»åã®èšå®ãªããäžæ¥äžåïŒïŒïŒæïœïŒïŒæã®éã®ã©ããïŒã®å®è¡é »åºŠãªã®ã§ã
æ°ã«ããã»ã©ã§ã¯ãªããšæããŸããâŠå¿µã®ããç³ãæ·»ããŠãããŸãã
Fig.0.1 ã¡ãŒã«éç¥çšé¢æ°ã®ãããªã¬æ¡ä»¶èšå®äŸ
æ¬ãæŽæ°å±¥æŽãã»ã¯ã·ã§ã³ãæ°èšããŸããã
ãŸããWebClapModoki-GAS_v11.txt ã远å ããŸããã
WebClapModoki-GAS_v11.txt ã¯ã
WebClapModoki-GAS_v10.txt ã«ã远å ã§
- ã¡ãŒã«éç¥çšé¢æ°ïŒsendMailAlert(count)ãdailyCheckTotalCounts_v2()ïŒ
- 䞊ã³ã«ãã®åæåçšé¢æ°ïŒinitPropertyValues()ïŒ
- ã¹ãã¬ããã·ãŒãã® id ã®ããŒãã³ãŒãã£ã³ã°åé¿çïŒããããã£ãµãŒãã¹ãã SPREADSHEET_ID ãèªã¿èŸŒãã§äœ¿çšããïŒ
ã 詊éšå®è£ ããç ã«ãªããŸãã
äžèšã®è¿œå ã»å€æŽã®ãããæ°ãã«
- ã¡ãŒã«é¢ä¿ã®æš©éã远å ã§èš±å¯ããïŒGmailãžã®ãã«ã¢ã¯ã»ã¹ãæ¬äººã«ä»£ãã£ãŠã®ã¡ãŒã«éä¿¡ïŒ
- ããããã£ãµãŒãã¹ã® EMAIL_ADDRESS , ROWS_COUNT ã®é©åãªèšå®
- ããªã¬æ¡ä»¶ãèšå®ããŠã宿çã« dailyCheckTotalCounts_v2() ãå®è¡ãããèšå®
- ïŒã¹ãã¬ããã·ãŒãã® id ã®ããŒãã³ãŒãã£ã³ã°åé¿çãå©çšããå ŽåïŒããããã£ãµãŒãã¹ã« SPREADSHEET_ID ãæåã§è¿œå ã»å€ãç»é²
ãè¡ãå¿ èŠããããèŠæ±æš©éã倧ãããå°å ¥ãç ©é ã«ãªã£ãŠããŸãã
â» å°å
¥æé ã«ã€ããŠã¯ãWebClapModoki-GAS_v11.txt ã®åé éšåã«ããæŽæ°å±¥æŽã«æžããŠã¿ãŸããã
ïŒã¹ã¯ãªããããããã£ã®æäœãªã©ããšãã£ã¿ç»é¢ããã®æäœãå€ããªã£ãŠããŸãã®ã§âŠïŒ
ãã®ããã
- WebClapModoki-GAS.txt (v9)
- èšäºéãã®å°å ¥æé ã§OKã
- åäœå®å®çã
- ãã ããïŒéä¿¡å ïŒ;ïŒã³ã¡ã³ãïŒ;ïŒã¡ã¢ïŒãã®åœ¢åŒä»¥å€ã¯åãä»ããªãã
- WebClapModoki-GAS_v10.txt
- èšäºéãã®å°å ¥æé ã§OKã
- èŠçŽ æ°ïŒåçžããæ€å»ããŠããã®ã§ãæè»ã«ããŒã¿ã®åä»ãã§ããŸãã
- ãã ãéçºçæ±ãã§ãããã¹ãäžè¶³æ°å³âŠã
- WebClapModoki-GAS_v11.txt
- v10ã«ã¡ãŒã«éç¥æ©èœã詊éšå®è£ ããçã
- ãã ãã¡ãŒã«é¢ä¿ã®æš©éïŒèšäºã«ãªãèšå®æé ãå¿ èŠã§ãèšçœ®ãé¢åã
- çžå€ããããã¹ãäžååãªéçºçã§ãâŠã
âŠãšããŠã䜿ãåããŠé ããã°å¹žãã§ãã
å®éçšæã«ïŒèªåãïŒå°ããã¡ã ã£ãåé¡ã
ããªãã¡ ããããã€ãã床ã«URLãå€ãã£ãŠç®¡çãç
©éã ãšããåé¡ã«å¯Ÿããã
ããããããURLäžå€ã§éçšã§ããŸãã ãªèª¬æã»ã¯ã·ã§ã³ã§ãã
WebClapModoki-GAS_v10.txt ã¯ã
WebClapModoki-GAS.txt (v9) ããã
ãŠã«ãŠã«ããã®ãã€ãŒããåèã«ããŠã
ïŒéä¿¡å
ïŒïŒã€ã ãïœ
ïŒéä¿¡å
ïŒ;ïŒã³ã¡ã³ãïŒ;ïŒã¡ã¢ïŒ;ïŒè¿œå æ
å ±ïŒïŒ;ïŒè¿œå æ
å ±ïŒïŒ
ã®ïŒã€ãŸã§ã ããŒã¿ãå¯å€ã§åãåããããã«ããç ã§ãã
POSTããåŽã§ã®çžãïŒïŒïŒéä¿¡å
ïŒ;ïŒã³ã¡ã³ãïŒ;ïŒã¡ã¢ïŒã®åœ¢ã§ãªããšåãä»ããªãïŒãç¡ããªã£ãã ã ãªã®ã§ã
å°å
¥æé èªäœã¯ãèšäºéãã§OK ã§ãã
æåã®å ¬éæ¥ã
èšäºéãã®æé ã§å°å ¥ã»å®å®åäœããããå Žåã¯ã WebClapModoki-GAS.txt (v9) ãã䜿ããã ããã
䌺çã¢ããã³ãã«ã¬ã³ããŒ2022ã25æ¥ã®èšäºã§ãã
24æ¥ã® Zichqec æ°ã®èšäº ã«ç¶ããŠãdullNeko ããéãããŸãã
䌺ãçéã§è¯ããèŠæããã Webææ ãé·ããã¡ã³ããããŠããªãïŒãããïŒãšç¥ãã
ææã¡ã®æè¡ïŒGoogle Apps Script & Google ã¹ãã¬ããã·ãŒãã®çµã¿åããïŒã§ã
代æ¿ã«ãªããããªäœããçµãã§ã¿ãâŠãšããèšäºã«ãªã£ãŠãããŸãã
é·ãäºãŠãŒã¶å°éã ã£ãã®ã§ã
ãããã£ãèšäºãæžãã®ãã人æ§ã«äœ¿ã£ãŠé ãç®çã§ã¹ã¯ãªãããå
¬éããã®ããåããŠã§ãâŠ
äœåããææããã«ãé¡ãç³ãäžããŸãã
- Webææãšåããããªäœ¿ãåæ ã§
- ïŒïŒå€éšãµã€ãã«èªå°ãããSSPå ã§ã® ![open,inputbox,...] ãš ![execute,http-POST,...] ã®çµã¿åããã ãã§äœ¿ããŠïŒ
- ãŠãŒã¶ããããçŽæ¥ãææ³ãããã°å ±åããªã©ã³ã¡ã³ããæããŠããããŠ
- ãã¹ããã®Googleã¢ã«ãŠã³ãå ã«äœæããGoogleã¹ãã¬ããã·ãŒã ã«ãæçš¿ãããã³ã¡ã³ããèšé²ãã
âŠããšãã§ãã Webææ"ãã©ã" ã§ãã
åäœã€ã¡ãŒãžã¯âŠâã®GIFç»åïŒFig.1ïŒãã芧é ããã°ããããããããšæããŸãã
SSPã®ã€ã³ãããããã¯ã¹ããå
¥åããããããïŒããšãä»éããæ
å ±ã Google ã¹ãã¬ããã·ãŒãã«èšé²ãããŠããæ§åã®GIFåç»ã§ãã
ç»é¢é·ç§»ã䌎ãããSSPããWebææãšåãæ§ã«æ±ãã ã®ãæå€§ã®ç¹åŸŽã§ãã
â»ãåãããŠããã·ã§ã«ã¯ ã«ã¯ã¡ã³ã£ãšããã®ããªãŒã·ã§ã«ãåè£
ã®ãã°ããã01ã ã§ãã
â»ããŠã¹ã«ãŒãœã«ã¯ ãŽãŒã¹ãå芧æ¿ïŒïœïœããã¹ãã»ãŠãŒã»ãµã ãŠã§ã¢ãã¹ã¬ã®2214æ°äœã«ã¹ããªã«ããŠã¹ã«ãŒãœã« ã§ãã
Fig.1 åäœã€ã¡ãŒãžïŒãããªæãã®åäœãããŸãããšãããã¢GIFåç»ïŒ
æ¬ã·ã¹ãã ã®åäœå³è§£âŠãšãããæŠå¿µå³ã®ãããªãã®ãšããŠãâã®ç»åïŒFig.2ïŒãäœã£ãŠã¿ãŸããã
ãäŒããããæéèŠãã€ã³ãã¯ã
ãæ¬ã¹ã¯ãªããã§äœããWebææãã©ãã·ã¹ãã ã¯ã
ãïŒããã§ã¹ã¯ãªãããå
¬éããŠã dullNeko ã® Google ãã©ã€ãã§ã¯ãªãïŒ
ããã¹ãããèªèº«ã® Google ãã©ã€ãäžïŒã«èšçœ®ãããã¹ã¯ãªããïŒã§åããã®ã
ãšããç¹ã§ãã
ãªã®ã§ããèªåã® Google ãã©ã€ãäžãžã®ã¹ã¯ãªããã®å°å
¥ã»åæèšå®ãªã©ã
ãã¹ãããèªèº«ã«ãæåã§å®è¡ããŠé ããªããã°ãªããªãäœæ¥ ããããŸãã
Fig.2 åäœã®å³è§£ãšãããæŠå¿µå³ã£ãœããã®
䌺ãã®ãŽãŒã¹ããtkã£ãŠããŠãä¹
ã
ã« Webææ ãå©çšãããŠé ãããšæã£ãŠèª¿ã¹çŽãããšããã
ããªãåãã
- å ¬åŒãµã€ã ã«ç¹ãããªãïŒ
- æ¢ç¥ã®äžå ·åïŒçµµæåãªã©ãå ¥åããããšã以éã®æååãèªããªããªãçïŒãè€æ°ããããæŽæ°ã»å¯Ÿå¿ãããæ°é ã¯ãªãïŒã£ãœãïŒ
- SSL (æå·åéä¿¡) ãžã®å¯Ÿå¿ãè¡ãããå¯èœæ§ãâŠç¡ãããâŠ
ãªç¶æ
ã«ããããšç¥ã£ãŠæ¡çšãèŠéã£ãâŠã®ã§ããã
ãSSP ãããããã¹ã¯ãªããã® ![execute,http-POST,...] 䜿ã£ãŠãinputbox ãã çŽæ¥ äžèšææ³åºããã®ããŠãŒã¶çã«ã¯æ°æ¥œã ãæè»œã§ããã®ããâŠäœãä»ã®æã¯ãªãããªâŠããªã©ãšè«Šããããã«èããçµæã
ãããããã©ãºãã€ããã»ã³ãµã®ããŒã¿ã POST ã§æããŠãGoogle Apps Script(GAS) ã§åããŠã¹ãã¬ããã·ãŒãã«èšé²ãããšããã£ãŠããªïŒããšæãåºãã
çªè²«ã§è©ŠäœããŠã¿ããã®ããã¡ãã«ãªããŸãã
å
¬åŒãµã€ãã¯
https://workspace.google.co.jp/intl/ja/products/apps-script/
âŠãªãã§ããããã®ããŒãžãèŠãŠäœãªã®ãïŒäœããããã®ããããšåãã人ã¯âŠ
å€åãæ§ããã«èšã£ãŠãå°æ°æŽŸã§ãããâŠ
Googleããã®å
¬åŒãªèª¬æãšããŠïŒãŸã ïŒåãããããã®ã¯
ãGoogle ãããã¯ãå
šäœã§ã¿ã¹ã¯ãšçµ±åããŠèªååã§ãã"ã¯ã©ãŠãããŒã¹ã® JavaScript ãã©ãããã©ãŒã "ã
ã§ããããã
身ãèããªãèšãæ¹ãããŠããŸãã°ã
ããµãŒããµã€ãã®ããã°ã©ã ãããµãŒãã®ç«ã¡äžãã»ç¶æç®¡çäžèŠã§çµããã
代ç©ã§ãã
Google ãããæäŸãããµãŒãã¹ãªã®ã§ã
ãä»ã®åçš® Google ãµãŒãã¹ïŒGoogle ã¹ãã¬ããã·ãŒããGmailãã«ã¬ã³ããŒãetc...ïŒãšé£æºããŠåŠçããæ©èœã
ãã€ããŠããŸãã
ïŒãšããããå
¬åŒã®è¬³ãæå¥çã«ã¯ãã¡ããã¡ã€ã³ã§ããïŒ
åç¯ã®ç¹°ãè¿ãã«ãªã£ãŠããŸããŸããã
ããµãŒãåŽã§ãªããšé£ããåŠçã
âŠæ¬ãããžã§ã¯ãã§èšãã°ã
- äžç¹å®å€æ°ã®ãŠãŒã¶ããïŒã®SSPïŒããéãããHTTPãªã¯ãšã¹ãïŒâ»POSTã¡ãœããéå®ïŒãåä¿¡ã
- åãåã£ãããŒã¿ãé©åœãªåœ¢ã®æååã»é åã«æŽåœ¢ã
- ã¹ãã¬ããã·ãŒãã«èšé²ãããªã©ãæ§ã ãªåŸåŠçãè¡ã
ãšãã£ãåäœãã
- èªåã§ãµãŒããç«ã¡äžãããç¶æç®¡çããããšãªã
- JavaScriptïŒã©ã€ã¯ãªGoogle Apps ScriptãšããïŒèšèªã§åŠçãèšè¿°ã§ããŠ
- Google ã¢ã«ãŠã³ãïŒGoodle ãã©ã€ãã«ã¢ã¯ã»ã¹ã§ããç°å¢ïŒããããã°ç¡åã§å©çšå¯èœã§
- ããã«ãGoogle ã®åçš®ãµãŒãã¹ïŒã¹ãã¬ããã·ãŒãçïŒã«æ¥ç¶ã»é£æºããŠåŠçã§ããæ©èœãå®è£ ãããŠãã
âŠãšããã®ããGASã®è¯ãæã§ãã
æªãæâŠãšãããã
ïŒdullNekoã調ã¹ãç¯å²ã§ã 誰ãããã¢ã¯ã»ã¹ã§ããWebã¢ã㪠ãšããå Žåã«ïŒ
GASã§ã§ããªãããšïŒåé¡ç¹ã«ãªããããªæ ãæããŠãããŸããã
- ã¢ã¯ã»ã¹å
æ
å ±ãªã©ããµãŒãåŽã§ãªããšåŸãããªãäžã«éèŠãªæ
å ±ããååŸã§ããªã
- æšæºä»æ§ã®ããèªèº«ã® Google ãã©ã€ãäžã«ãã Google ã¹ãã¬ããã·ãŒãã«ãåãåã£ãã³ã¡ã³ããæžã蟌ãã§ããã ãããªããç¹ã«åé¡ã«ãªããªããšæããŸãã
- âŠã§ããã å€éšã®APIãå©ãåŠçïŒäŸïŒãMastodon ãžã®ãã¥ãŒãæ©èœããªã©ïŒãå®è£ ããéçšããå Žåã«ã¯å³ããç¹ ã§ãã
- 察象ã®ãµãŒãããããèŠãã°ã ã¢ã¯ã»ã¹å ã¯ããªãïŒã®Googleã¢ã«ãŠã³ãå ã®ã¹ã¯ãªããïŒ ã§ãã£ãŠã倧æ¬ã®HTTPãªã¯ãšã¹ããéä¿¡ããæ¹ã§ã¯ãããŸããã
- åå ãäœã§ããããšïŒäŸããæªæã®ãªãã¹ã¯ãªããã®èª€åäœã ã£ãã«ããïŒãçµæãšããŠçžææ§ãã DoS æ»æãšèªèãããäºæ ãçããå Žåã 責任ã远åãããå¯èœæ§ã極ããŠé«ã ã®ã¯ ã¹ã¯ãªãããèšçœ®ããåäœãããããªã ã§ãã
- 2010幎ã«èµ·ãã£ãã岡åŽåžç«äžå€®å³æžé€šäºä»¶ïŒLibrahackäºä»¶ïŒããšäŒŒãã±ãŒã¹ã«ãªãå¯èœæ§ ããç§ã¯åŠå®ã§ããŸããâŠã
- ãã®ãããæšæºä»æ§ã§ã¯ãMastodonãžã®ãã¥ãŒãæ©èœãã¯äœ¿ããªãããã«çް工 ããŠãããŸãã
- ãèªèº«ã«è²¬ä»»ãéããããå±éºæ§ãèªèããäžã§ãååãªæ³šæãæã£ãŠã®äœ¿çšããé¡ãããããŸãã
- ãäžæ¥ãããã®åŠçéãã«å¶éãããããããã®ã»ãšãã©ã¯æåãã©ã³ã§ãç·©åãããªã
- åŠçéå¶éã®è©³çŽ°ã¯ ãã¡ãã®ããŒãž ã«ããéãã§ãã
- WebClapModoki-GAS.txt ã®åé ããâ åèè³æãã»ã¯ã·ã§ã³å ãâ GASå šäœã®å¶éã«ã€ããŠãã§ãèšè¿°ããŸããããçµæ§å³ããã®å¶éã§ãã
- ãã®å¶éã®ãããã¹ã¯ãªãããçµãéã«ã¯ãã»ã«åç §ãè¡ãåæ°ãã§ããã ãæžãããæžã蟌ã¿ã»èªã¿åºãã¯äžæ¬ã§è¡ãããªã©ã®ãã¯ããã¯ã䜿ãå¿ èŠæ§ãé«ããªã£ãŠããŸãã
- Google ããã®ãµãŒãã¹ãªã®ã§ãåçªã«ãµãŒãã¹çµäºããŠäœ¿ããªããªãå¯èœæ§ããã
- 2009幎ããç¶ããŠãã倿 ªãµãŒãã¹ã§ãããå©çšè ãå°ãªããªãïŒã¯ãïŒã§ãããäœãã Google ã®ãµãŒãã¹å šäœã飿ºãããŠäœ¿ãããã®ä»çµã¿ãªã®ã§ãå¯èœæ§ã¯äœãâŠã ãšã¯æããŸããâŠç¡ãããšã¯èšãåããŸããã
- Google Apps Script ã®è©³çްãªå
šä»æ§ã¯å
¬éãããŠããªã
- 倧å ãšããŠã¯ JavaScript1.6 ãããŒã¹ã§ããïŒãããïŒã®ã§ãããECMAScriptã®"äžéš"åãå ¥ãïŒäŸïŒV8ã©ã³ã¿ã€ã ã¯äœ¿çšå¯èœã ããES6 ã¢ãžã¥ãŒã«ã¯ãµããŒããããŠãªãçïŒããç¬èªå®è£ ïŒäŸïŒGoogle ãã©ã€ãäžã«ããããŒã¿å ã§ã®ã¿æ±ããããããã£ãµãŒãã¹çãGoogle ãµãŒãã¹ã«çŽã¥ããAPIïŒçããããããè€éãªèšèªã«ãªã£ãŠããŸãã
- ãŸããäºåãªãæ©èœã仿§ã倿ŽãããïŒäŸïŒäžã®ããããã£ãµãŒãã¹ã«é¢ãã颿°çŸ€ïŒããšããããä»ã®æäœ¿ããŠããå®è£ ãæ°ä»ãããåããªããªã£ãŠããâŠãšãããã¿ãŒã³ãç¡ãã«ããéãã
çå£ã«æ¯èŒæ€èšããããã§ã¯ãªãâŠã®ã§æçž®ã§ããã
- GAS 㯠Google ã¢ã«ãŠã³ãããããã°ãããã«äœ¿ãã
- ïŒWebææçãCGIããã°ã©ã èšçœ®ã®çºã ãã«ãµãŒãããåãããâŠãããªæéãç¡ããæè»œã«äœ¿ãå§ããããšãã§ããŸãã
- TwitterïŒåçš®SNSïŒãšã®é£æºçãå¿ èŠãªããåäœïŒGASïŒGoogleã¹ãã¬ããã·ãŒãïŒã§åäœããã®ã§ãSNSãããããªã掟ïŒãµãŒãã¹çŽã¥ããšãããããªãæŽŸã®æ¹ã«ããã¹ã¹ã¡ã
- åºæ¬çã«ç¡åã§äœ¿çšå¯èœ
- â»åãæ¥ã«å€§éã«ã¢ã¯ã»ã¹ããã£ãããããšå¶éãããããéä¿¡ã鮿ãããå¯èœæ§ã¯ãããŸãã
- ããã¯ãŸãâŠä»ãµãŒãã¹ããããªå€ãããªãããªâŠã
- é ããææ³ã«ã€ããŠãã¹ãã¬ããã·ãŒãäžã§äžèЧã»éèšã»æ€çŽ¢ãããã§ãã
- ç¹å®ã®æ¡ä»¶ïŒäŸãã°ããã°å ±åã ããïŒæŸããšãã察å¿ç¶æ³ïŒããïŒããŠãªãïŒã§ããªãïŒã®åãå³ç«¯ã«è¶³ããŠç®¡çãããããšãã£ã工倫ãã§ããã®ã¯äŸ¿å©âŠã ãšæãã®ã§ãããã©âŠ
- ææ³ã®ååã»ä¿å
šãç°¡å
- é ããææ³ã»ãã°å ±åçãã³ã¡ã³ãã®èšé²å ã èªåã® Google ãã©ã€ãäžã®ã¹ãã¬ããã·ãŒã ãªã®ã§ãããµãŒãã¹ã®çµäºã§çªç¶ããŒã¿ãæ¶ãã¡ããããšãããŸãšããŠããŠã³ããŒãã§ããªãããšããããããé¡ã®å¿é ã¯ãªããã§ãã
- 宿çã«ããŠã³ããŒãããŠããŒã«ã«ã«ä¿åãããã³ããŒãäœã£ãŠå¥ã®å Žæã«ä¿åãããçšåºŠã®åçŽãªããã¯ã¢ããæäœããæãã®ã¯è¯ãç¹ã ãšæããŸãã
- âŠéã« ãã£ããèšé²å ã·ãŒããåé€ãã¡ãããããªãèŽåœçãªæäœãã¹ãã§ããŠããŸã ãããã¯çãçãã
- èªåçšã«ã«ã¹ã¿ãã€ãºããé£æåºŠãäœã
- JavaScriptãå šç¶æžããªãïŒã¢ããŒé¢æ°ãããŸãšãã«äœ¿ããªãïŒç§ã§ããæ¬ã¹ã¯ãªãããäœããäœã«ã¯äœãã§ãã
- ãªãªãžãã«ã®Webææããå°ãã ãæ¡åŒµããŠããéä¿¡å ã;ãéä¿¡å 容ïŒã³ã¡ã³ãïŒã;ããã®ä»ã¡ã¢ã ã®ïŒæ å ±ã ;(åè§ã»ãã³ãã³) åºåãã§ååŸãã ããã«ããããäœãªãã§ããŸããã
- ä»ã«ã¯âŠãäºãèšè¿°ããNGã¯ãŒãã匟ã颿°ããå®è£ ããŠãããŸãããšãŠãåå§çãªåŠçã§ãããä»ãµãŒãã¹ã®é«åºŠã§èªåçãªãã£ã«ã¿ãªã³ã°æ©èœã«æ¯ã¹ããšâŠæ²ãããªãã¬ãã«ã§ããâŠã
- GASããæŽã«POSTã¡ãœããã§HTTPãªã¯ãšã¹ããåºãäŸãšããŠããMastodon API ãå©çšããŠãã¥ãŒããã颿°ããå®è£ ããŠãã£ããã ïŒâ»âã®ãæªãæãã§åè¿°ããåé¡ç¹ïŒå±éºæ§ãããã®ã§ããã®ãŸãŸã§ã¯äœ¿ããªãããã»ãŒããã£ããããŠãããŸãïŒ
âŠãšãããæè»œïŒããããèªå奜ã¿ã«ã«ã¹ã¿ã ã§ããç¹ã ã«ã€ããŠã¯ã
ä»ã®ãµãŒãã¹ãšããšæ¯ã¹ãŠããããšããã§ã¯âŠïŒãšæããã®ã§ã
GitHubã®ç·Žç¿ããŠãå
¬éããŠã¿ãããšã«ããæ¬¡ç¬¬ã§ãã
README.mdå
ã«ãŠç»åä»ãã§èª¬æâŠããŠã¿ãããšããŠæ«æããã®ã§ã
次㮠PDFãã¡ã€ã« (詳现説æã¹ã©ã€ã) ãã芧ãã ãããŸãã
WebClapModoki-GAS åŠçå 容ã»å°å ¥æé ã®è©³çŽ°èª¬æã¹ã©ã€ã
ãæ³šæã
â»2022/12 æç¹ã§ã® Google Apps Script ã® UI ã§ã®æäœæé ãªã®ã§ã
ãä»åŸãGoogle ããåŽã§ UI ã®æŽæ°ããããšãå€ãè³æã«ãªãå¯èœæ§ãé«ãã§ãã
ããç»é¢å
šç¶éããã ãã©ïŒããšããããšãããã°ã
ãâã®é£çµ¡å
ã®ãã©ãŒã çã§ãç¥ããé ããã°å¹žãã§ãã
äžå¿ãæç« ã®ã¿ã®ç°¡æãªèª¬æãã
æé X. ãšããŠäžã«èšè¿°ããŠãããŸãã
æ¬ã¹ã¯ãªãããå°å
¥åŸãæåã«ãå®è¡ãã詊ã¿ãéã
ãæ¿èªãå¿
èŠã§ãïŒãã®ãããžã§ã¯ããããªãã®ããŒã¿ãžã®ã¢ã¯ã»ã¹æš©éãå¿
èŠãšããŠããŸãã
ãšãããŠã£ã³ããŠãåºãŠããŸãã
ããã§èŠæ±ãããã¢ã¯ã»ã¹æš©éãèš±å¯ããªããã°ãæ¬ã¹ã¯ãªããã¯å®è¡ã§ããŸããã
èŠæ±ãããæš©éã¯ã以äžã®ïŒã€ã§ãã
ãGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ã
ãå€éšãµãŒãã¹ãžã®æ¥ç¶ã
âŠïŒã€ã ãã§ãããèŠæ±ãããå
容ã¯ããªãéããã®ã§ãã
é·ããªã£ãŠããŸããŸãã⊠倧äºãªæ ãªã®ã§ãã§ããã ã詳ãã説æããŸããã
- ãGoogle ã¹ãã¬ããã·ãŒãã®ãã¹ãŠã®ã¹ãã¬ããã·ãŒãã®åç
§ãç·šéãäœæãåé€ã
- SpreadsheetApp.openById(SPREADSHEET_ID); ã䜿çšããŠãããããèŠæ±ãããŸãã
- æ¬ã¹ã¯ãªããã§ã¯äžèšïŒã·ãŒãã®åç §ã»ç·šéïŒæžèŸŒïŒããå®è¡ããŸãã ããã³ãŒããæžãæããã°å¥ã®ã·ãŒããæäœã§ããŸãããã·ãŒãã®äœæã»åé€ãå¯èœ ã§ãã
- æªæããã¹ã¯ãªããã®å ŽåïŒãããã¯ãèªåã§çµãã ã¹ã¯ãªããã§ãã£ãŠããåŠçã®èšè¿°ãã¹çãããã°ïŒãããã©ã€ãã«ååšããã¹ãã¬ããã·ãŒãå šãŠãåæããåé€ããããã¹ãã¬ããã·ãŒãå ã®æ©å¯æ å ±ããå€éšã«åãåºãããªã©ãšãã£ãæªèŸ£ãªåäœããããããšãå¯èœã§ãã
- ïŒããŒã¯ãã¯ãªãã¯ããéã®è©³çްïŒãã®æš©éãèŠæ±ããçµæãšããŠã¹ã¯ãªãããã§ããããã«ãªãããšã®è©³çްïŒã¯ã次ã®éãã§ãã
- ãã®ã¢ããªãæ¬¡ã®æš©éãæ±ããŠããŸãã
- ã¹ãã¬ããã·ãŒãã®åç §ãç·šéïŒèšå®ãã¡ã¿ããŒã¿ãå«ãïŒ
- ã¹ãã¬ããã·ãŒãã®æ°èŠäœæ
- ã¹ãã¬ããã·ãŒãã®ã¢ããããŒããããŠã³ããŒã
- ã¹ãã¬ããã·ãŒãã®æŽçãåé€
- ã¹ãã¬ããã·ãŒããå ±æããŠãããŠãŒã¶ãŒã®ååãã¡ãŒã«ã¢ãã¬ã¹ã®åç §
- ä»ã®ãŠãŒã¶ãŒãšã®ã¹ãã¬ããã·ãŒãã®å ±æãå ±æåæ¢
- ãã®ã¢ããªã¯ããŠãŒã¶ãŒãè¡ããæäœãšåãæäœãè¡ãããšãã§ããŸãããã®ã¢ããªãå ãã倿Žã¯ããŠãŒã¶ãŒã«ãããã®ãšèŠãªãããŸãã
- ã¹ãã¬ããã·ãŒãã«ã¯ã財åèšé²ãå人çãªã¹ããªã©ã®æ©å¯æ å ±ãå«ãŸããŠããå¯èœæ§ããããŸãã
- ã芧ã®éãããèªåãæäœããå Žåã«ã§ããããšå šãŠããã§ããŸã ãã
- åæã« ãã¹ã¯ãªãããè¡ã£ãããšã§ãã£ãŠãããŠãŒã¶æ¬äººãæäœãããã®ãšèŠåãããã ãšããã匷ãæèšãå ¥ã£ãŠããŸãã
- ãå€éšãµãŒãã¹ãžã®æ¥ç¶ã
- tootByMastodonAPI(toot_content) 颿°å ã§ UrlFetchApp.fetch ã䜿çšããŠãããããèŠæ±ãããŸãã
- æ¬ã¹ã¯ãªããã§ã¯ã³ã¡ã³ãã¢ãŠãïŒã»ãŒããã£ããããããŠããããã现工ãåé¿ããªãéãæ©èœããŸããïŒïŒæšæºæ§æã§ããã®æš©éã䜿çšããããšã¯ãããŸããïŒ ããããã§ããèšè¿°ããã以äžãå®è¡ãããå¯èœæ§ãããããšããŠãèŠæ±ãããŸãã
- ïŒããŒã¯ã®èª¬æã«ãå€éšãµãŒãã¹ãžã®ãããã¯ãŒã¯æ¥ç¶ã®äœæïŒäŸ: ããŒã¿ã®èªã¿åããŸãã¯æžã蟌ã¿ïŒããšããéããUrlFetchApp.fetch ã¯HTTPãªã¯ãšã¹ããéããŠããŒã¿ã®ã¹ã¯ã¬ã€ãã³ã°ïŒåéã»æœåºïŒãè¡ããã®ã§ãããããå Žåã«ãã£ãŠã¯ä»ãµãŒããžã®æ»æã»æ¥å劚害ãšèŠåãããåäœãããŠããŸãå±éºæ§ããããŸãã
ããã¯âŠç§ããã¯ã
ãã¹ã¯ãªããã®ãœãŒã¹ãèªã¿ãïŒç¹ã«ãdoPost(e)ã®ïŒå®éã®åŠçãèŠãŠã倿ããŠãã ããã
ãšããç³ãäžããããŸããã
ãdullNeko ã®æžããã¹ã¯ãªãããä¿¡çšã§ããªãããšæãããå Žåã¯ããããŸã§ ã§ãã
ããããã®æš©éãèŠæ±ãããæ®µéãŸã§æäœãé²ããŠããŸã£ãŠããå Žåã¯ã
ã¢ã¯ã»ã¹æš©ã®ä»äžããã£ã³ã»ã«ãã
äœæããã¹ãã¬ããã·ãŒããã¹ã¯ãªãããåé€ããŠäžããã°ãå
éãã®ç¶æ
ã«æ»ããŸãã
ãææ°ããããããŠç³ãèš³ãããŸãããâŠãã®ç¹ã¯ãäœåã容赊ãã ããã
ãèªèº«ã® Google ãã©ã€ã ã«ããã®ã¹ãã¬ããã·ãŒã ã®ã³ããŒãäœæããŠãã ããã
Googleã¢ã«ãŠã³ãã§ãã°ã€ã³ãããã©ãŠã¶äžã§éãã°ãã¡ãã¥ãŒã®ããã¡ã€ã«ãâãã³ããŒãäœæãã§ç°¡åã«ã³ããŒã§ããŸãã
ãŸããååïŒWebClapModoki (template) ã®ã³ããŒïŒã¯å¥œãã«å€ããŠå€§äžå€«ã§ãã
åãããèªåã® Google ãã©ã€ãã«ãæ°èŠ Google Apps Scriptããäœæãã
WebClapModoki.txt ã®äžèº«ãã³ããããŠãäžæžãä¿åããŠãã ããã
RAW衚瀺 ããã³ããããã®ã楜ããã§ãã
ãæ³šæã
1.ã®ã¹ãã¬ããã·ãŒãã2. ã® Google Apps Script ã®å
±æèšå®
ïŒãå³ã¯ãªãã¯ã¡ãã¥ãŒãâãå
±æãâãäžè¬çãªã¢ã¯ã»ã¹ãã®èšå®å€ïŒã¯ã
åæç¶æ
ã® ãå¶éä»ããã§OK ã§ãã
ãããã®URLãå
¬éããå¿
èŠããããŸããããããç§å¯ã«ããŠãããŠäžãããŸãã
1.ã§ã³ããŒããã¹ãã¬ããã·ãŒãã® 'id'ãããªãã¡
ïŒãã©ãŠã¶ã§éããæã®URLïŒ
https://docs.google.com/spreadsheets/d/XXX...XXX/edit#gid=0
ã® XXX...XXX ãã³ããŒãã 2.ã® Google Apps Script å
const SPREADSHEET_ID = 'XXX...XXX';
ã® XXX...XXX ã
ãèªåã®ã¹ãã¬ããã·ãŒãã® 'id' ã«æžãæããŠãäžæžãä¿åããŠãã ããã
3.ã§ä¿®æ£ãã WebClapModoki ã® Google Apps Script ãéãã
doPostTest 颿°ïŒåäœãã¹ãçšé¢æ°ïŒãå®è¡ããŠã¿ãŠãã ããã
ãæ³šæã
ãã®æããæ³šæåèµ·ãã§å
è¿°ãã èŠåç»é¢ãåºãŠã
ããã® Google Apps Script ã« Google ã¢ã«ãŠã³ããžã®ã¢ã¯ã»ã¹æš©éæš©ãäžããŠãããã®ãïŒã
ãšå°ããããŸãã
æ¬ã¹ã¯ãªãããå©çšããå Žåã¯ãèš±å¯ããéžæããŠäžããã
ã¢ã¯ã»ã¹æš©éã®ä»äžãèš±å¯ããå Žåã¯ã
ç»é¢ãå
ã«æ»ããdoPostTest 颿°ã®å®è¡ãç¶ç¶ãããŸãã
ç¹ã«ãšã©ãŒãåºããå®è¡ãã°ã«ããç¥ãããå®è¡å®äºããšè¡šç€ºãããã°OKã§ãã
ããããšã©ãŒãåºãå Žåã
ã3.ã§çœ®æãã 'id' ã®æå®ããã¹ã£ãŠããªããã
ãã¹ã¯ãªããå
šäœãéäžè¶³ãªãã³ããã§ããŠããããããããèŠçŽããŠã¿ããšããããã§ãã
ãªããdoPostTest 颿°ã®å®è¡åŸã
1.ã§ã³ããŒããã¹ãã¬ããã·ãŒãã® "posted_comment" ã·ãŒãã®ãã³ã¡ã³ããåã«ã
ããããïŒ ãNGãããå
¥åãããŠããã®ã¯ãæ£åžžãªåäœã§ãã
ïŒcheckContentTextByNGWordsList() 颿°ãä»äºããŠã
ã"URLãããæåå" ããNGãã«çœ®æããçµæã§ãïŒ
䜿ã£ãŠããŠãã¡ãã£ãšããã¯èŠãããªããªâŠããšããæååãåºãŠãããã
"NG_words_list" äžã«è¡ã远å ããŠãåèªãå¢ããããæžãæãããããŠã¿ãŠãã ããã
4.ã§åé¡ããªããã° WebClapModoki-GAS ã Webã¢ããªãšããŠããã〠ãã
https://script.google.com/macros/s/YYY~YYY/exec
圢åŒã®URLãååŸããŠãã ããã
ãæ³šæã
ãããã€ã®éã¯ãäžèšç»åã®éãã
ãã¢ã¯ã»ã¹ã§ãããŠãŒã¶ãŒã ã ãå
šå¡ãã«å€æŽããªããã°ãªããªã ç¹ã«ã泚æäžããã
ããã®èšå®ãééãããšãSSPçãå€éšããã®POSTãã§ã¯åäœããªããªã£ãŠããŸããŸãã
ïŒGoogle ã¢ã«ãŠã³ãã§ã®ãã°ã€ã³ãå¿
é ãšãªããã401 Unauthorizedããè¿ã£ãŠããŸãïŒ
â»ãŸãããæ°ãã説ææãã«ãåãããããã¡ã¢æç« ããèšå
¥ ããŠãããšã
ãåŸã®ã»ã¯ã·ã§ã³ã§è§Šãã ããããã€ã®ç®¡çãç»é¢äžã§ã
ãã©ããæäœãã¹ããåºå¥ã§ããŠåããããããªã ã®ã§ãã¹ã¹ã¡ããŠãããŸãã
Fig.3 ãããã€æã®éèŠãªæ³šæç¹
5.ã§ååŸããURLã dic_wcm.txt ã®äžã®
ïŒWCM_URL https://script.google.com/macros/s/YYY~YYY/exec
ã«äžæžãããŠããèªèº«ã®ãŽãŒã¹ãããã«å®è£ ããŠãã ããã
ãµã³ãã«ã³ãŒã (dic_wcm.txt) ã¯éã
ã§ã®å®è£
äŸã§ããã
å®äœã¯ãããã¹ã¯ãªãã
\![execute,http-POST,ïŒWCM_URLïŒ,--param=message_body="ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒ",ïŒãªãã·ã§ã³ïŒ]
ã®å®è¡ã§ãã®ã§ã
äžèšãããã¹ã¯ãªãããåŒã³åºããã®ã§ããã°ãç¹ã«SHIORIãéžã°ãåããããšæããŸãã
ãæ³šæã
çŸè¡å®å®çã® WebClapModoki-GAS_v9 ã®ä»æ§ã§ã¯ã
以äžã®ã ;(åè§ã»ãã³ãã³) åºåãã§ãèŠçŽ ãïŒã€äžŠã¹ãæååãããåãä»ããªãããã«ãªã£ãŠããŸãã
ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒ
ããã¯ãã¹ã¯ãªããäžã®
// â å å·¥ãçµãã£ãåŸã®é
åãããåãã©ã¡ãŒã¿ãåãåºãåŠç
ã»ã¯ã·ã§ã³å
ã«ãŠã
ãPOSTãããæååã ;(åè§ã»ãã³ãã³) ã§åºåã£ãŠé
åã«æ ŒçŽããã
ãé
åã®ç¯å²å€ãžã®ã¢ã¯ã»ã¹ãé²ããããèŠçŽ æ°ãïŒã§ãããïŒïŒäžèšã®ïŒèŠçŽ ã確å®ã«å
¥ã£ãŠãããïŒãã§ãã¯ããã
åŠçãè¡ã£ãŠããããã«çããŠããå¶éã§ãã
âŠãã ãèšäºå ¬éåŸã«æ€èšŒããéãã
- ãJavaScriptïŒGoogle Apps ScriptïŒã§ã¯ãé
åã®ç¯å²å€ã«ã¢ã¯ã»ã¹ããŠã倧ããªåé¡ã¯èµ·ãããªãã
- åã« undefined ãä»£å ¥ãããã ãã§ãOut of Bounds ã®ãããªäŸå€ã§åäœãæ¢ãŸã£ããããªã
- äœãªã undefined ãã»ã«ã«æžã蟌ã¿ããŠããåã«ç©ºçœã»ã«ã«ãªãã ãã§äœã®ãšã©ãŒãåºãªã
- åæ°ãè¶³ããªãïŒäŸãã°ïŒåãããªãïŒå Žåã« .appendRow ã¡ãœããã§ïŒåïŒè¡è¿œå ãè¡ã£ãŠãããšã©ãŒã«ãªããªãã©ãããïŒåâïŒåãžã®æ¡åŒµïŒå³åŽã«ïŒåè¶³ãïŒãèªåã§è¡ã£ãŠããã
ãšããããšã倿ãããããªã
å¥ã«èŠçŽ ãïŒã€ã«éå®ããªããŠãã誀åäœã»åäœäžè¯ã®å¿é
ã¯ç¡ãã®ã§ã¯ïŒ
ãšããçºæ³ã«è³ã£ãŠã
ïŒéä¿¡å
ïŒ
ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ
ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒ
ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒ;ïŒè¿œå æ
å ±ïŒïŒ
ïŒéä¿¡å
ïŒ;ïŒéä¿¡å
容ïŒ;ïŒã¡ã¢ïŒ;ïŒè¿œå æ
å ±ïŒïŒ;ïŒè¿œå æ
å ±ïŒïŒ
ã®ãã©ã®ãã¿ãŒã³ïŒèŠçŽ æ°ïŒïœïŒïŒã§ãåãä»ããããã«å€æŽããã
WebClapModoki-GAS_v10 ãå
¬éããŠã¿ãŸããã
åäœã€ã¡ãŒãžã¯äžã®GIFç»åã®éãã§ãã
Fig.4 WebClapModoki-GAS_v10ã®åäœã€ã¡ãŒãžïŒèŠçŽ æ°ãå€ããŠPOSTããæã®æåïŒ
ãã¡ãã¯âŠãŸã æ³å®å
¥åãã¿ãŒã³ã®åæãããã³ãã®æ€èšŒãäžååã§ã
äžæãåããªãå¯èœæ§ãããã®ã§ããâŠ
ããè¯ããã°ãã詊ããã ããã
SSP äžã§å®è¡ããŠã¿ãŠããµã³ãã«GIFç»åã®ããã«ã
ãèªèº«ã®ã¹ãã¬ããã·ãŒãã® "posted_comment" ã·ãŒãã« POST ããå
容ã远å ãããã°æåã§ãã
ãç²ãæ§ã§ããïŒ
䜿ãå§ããŠããã埮åŠã ãªâŠãã䜿ãã®æ¢ãããããšæã£ãæã¯ã
ãGoogle ã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹æš©ã®ç¢ºèªã»åé€ãç»é¢
https://myaccount.google.com/permissions
ã«ã¢ã¯ã»ã¹ããŠã
ãã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ã§ããã¢ããªãã®äžèЧããã
åœè©²ã¹ã¯ãªããã®ã¢ã¯ã»ã¹æš©éãåé€ ããŠãã ããã
4.ã§ä»äžãããã¢ã¯ã»ã¹æš©ãç¡ããªãã°ãã¹ã¯ãªããã¯äœãã§ããŸããã
ããšããŽãŒã¹ãããåŽã®èšè¿°ïŒdic_wcm.txtïŒãåé€ããäžã§ã
Google ãã©ã€ãäžã«ãã 2. ã® Google Apps Script ã®ãã¡ã€ã«ã®åé€ãè¡ãã°ã
ããããã£ã±ãã§ãã
æåŸã«ã念ã®ãã 5.ã§ååŸããURLã®
https://script.google.com/macros/s/YYY~YYY/exec
ã«ããã©ãŠã¶ããã¢ã¯ã»ã¹ããŠã¿ãŠäžããã
ããªã¯ãšã¹ãããããã¡ã€ã«ã¯ååšããŸãããã(404 Not Found)
ãè¿ã£ãŠããã°ãã¹ã¯ãªããã®åäœã¯å®å
šã«åæ¢ããŠããŸãã
Tips: Versioned Deployments ã®æ±ãæ¹ïŒç¶ç¶ããŠäœ¿ã£ãŠããå ã«èµ·ããããåé¡ãšããã® "äºå" å¯ŸåŠæ¹æ³ïŒ
ããŠãããã§äœ¿çšéå§ïŒçµäºã®ããæ¹ã®èª¬æã¯ãããŸãâŠãªã®ã§ããã
ããäžç¹ããäŒãããŠããããããšãããããŸãã
ããã¯ã
次㮠Fig.5 ã«ç€ºããããª ãæ°èŠãããã€ããç¹°ãè¿ããå Žåã«ããé¥ãç¶æ³ã
ããªãã¡
ïŒïŒœããã䜿ãäºå®ã®ãªããå€ãWebã¢ããªã®URLãçãããŸãŸã«ãªã£ãŠãâŠæµç³ã«éªéã«ãªã£ãŠãããâŠã
ïŒïŒœãæ¯åURLå€ããã®é¢åã ãªãâŠèŸæžæ¯åæžãæããªããšãããªãã®âŠïŒã
ãšãã ç
©éãã»é¢åããžã®å¯ŸåŠã»åé¿æ¹æ³ ã§ãã
Fig.5 æ°èŠãããã€ãããªãã䜿ãç¶ããå ã«çããåé¡ã®äžã€ïŒãããã€æã«çºè¡ãããURLãå€ãããïŒ
ãã㯠Versioned Deployments (Google ããã®æ©æ¢°ç¿»èš³ã ãšãããŒãžã§ãã³ã°ããããããã€ã) ãšããæ©èœã«ãããã®ã§ã
äŸãã° ãæ©èœã®ç°ãªãïŒã€ã®ããŒãžã§ã³ãäœ¿ãæ¯ã¹ãŠã¿ãŠãã©ã£ã¡ãè¯ããæ€èšããã
âŠãšãã£ãéã«ã¯ãéåžžã«äŸ¿å©ãªæ©èœã§ãã
ãããããŽãŒã¹ãããã«æ¬ã¹ã¯ãªãããžã®æçš¿æ©èœãæèŒããŠå®éçšããå Žåã
ããããã¯ãŒã¯æŽæ°ãããïŒæ°URLã䜿ãïŒãŽãŒã¹ããããšã
ããããã¯ãŒã¯æŽæ°ãããŠãªãïŒæ§URLã䜿ã£ããŸãŸãªïŒãŽãŒã¹ããããæ··åšããç¶æ
ã
ã«ãªãããšã¯âŠ
容æã«æ³åãã§ããïŒäžã«é«ç¢ºçã§é¢åãªããšã«ãªããããªïŒäºæ
ãã§ãããã
å®éãWebã¢ããªã®URLãé
åžããŠéçšããŠããã°ã
ïŒïŒœãå®éã«éçšããŠã¿ãããã°ããã£ãïŒãã®ãŸãŸåä»ç¶ããããããããªã£ã¡ããâŠã©ããããâŠã
ãšãããã©ãã«ãïŒãã£ãŠæ¬²ããã¯ãããŸãããïŒååã«ããããã±ãŒã¹ã§ããã
ïŒãŠãŒã¶ãããžã®åé¡çºçåšç¥ïŒç§»è¡ç¢ºèªå®äºã培åºããªããšãããªããªãã®ã§ïŒ
åé¡çºçæã®å¯Ÿå¿ãé¢å極ãŸããªãããšã«ãªã ã®ããæ¥µåé¿ããããšããã
倧äœãïŒïŒœã®
ãã¡ãã£ãšã¹ã¯ãªããæŽæ°ããåºŠã«æ°ããURLã«ãªãâŠç®¡çãèŸæžæŽæ°ãé¢åãããâŠã
ãšããç
©éãããæ£çŽèšã£ãŠå«ã«ãªããã€ã³ãã ãšæããŸãâŠã
âŠå眮ããé·ããªããŸãããã
ããã§ ããã®ããŒãžã§ã³ç®¡çæ©èœãäžæã䜿ãã«ã¯ã©ãããã°ããã®ïŒã ãšããçåã«å¯Ÿãããçãã
ããããã颚ã«éçšããã°æ¥œã§ããããããã®ç¯ã§ãäŒããããããš ã§ãã
ïŒ2022幎12ææç¹ã§ã®ïŒdullNeko ã®å¯Ÿå¿æ¹æ³ã¯ãå®ç§ã§ã¯ãªãããã§ããâŠ
äžèšã®ïŒ»ïŒïŒœïŒ»ïŒïŒœãæåããèµ·ãããªã ããã«ããŠã
ã〠ïŒïŒœã®åé¡çºçæã«ãèŠåŽããã«æžãæ¹æ³ ãšããŠã
次㮠ABã§éçšãã ããæ¹ããã¹ã¹ã¡ããŠãããŸãã
- Aãé åžçšã¹ã¯ãªãããã¡ã€ã«ããšãéçºçšã¹ã¯ãªãããã¡ã€ã«ããåãã
- Bãé åžçšã¹ã¯ãªããã®ãããã€ã§ãæ°èŠãããã€ãã䜿ãããããããã€ã®ç®¡çãã䜿ããããšã§ãWebã¢ããªã®URLãäžå€ã«ãã
以äžãé ã«èª¬æããŠãããŸããã
Aãé åžçšã¹ã¯ãªãããã¡ã€ã«ããšãéçºçšã¹ã¯ãªãããã¡ã€ã«ããåãã
ãŸãããã¡ã€ã«ã®é çœ®ãæ¬¡ã® Fig.6 ã®æ§ã«å€æŽããŸãã
ãã€ã³ãã¯ã
ããŽãŒã¹ãããã®èŸæžã«èšèŒããURLããå
¬éçšã¹ã¯ãªããã®URLã«ããã
ããã€ããã®URLãäžå€ã«ãªãããããããã€ã®ç®¡çãæ©èœã掻çšããã
ããšã§ãã
éçºçšã¹ã¯ãªããã¯ïŒããã§ã¯äžåãã瀺ããŠããŸãããïŒ
äœåãã£ãŠãOKã§ãããå
¬éçšã¹ã¯ãªããã®ããã¯ã¢ãããäœã£ããããŠãå¯ã
ãã¡ãã¯å€éšã«å
¬éããªãã®ã§ãäœæ¥ãæãåªå
ã§ç®¡çããŠãã ãããŸãã
ãæ³šæã
ä»äžããã¢ã¯ã»ã¹æš©éã¯ãåæã«ã¯æ¶ããªã ã®ã§ã
ïŒç¹ã«éçºçšã¹ã¯ãªãããäœåãäœã£ãŠéçºããå Žåãªã©ïŒ
é©å® ãGoogle ã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹æš©ã®ç¢ºèªã»åé€ãç»é¢ ã«ãŠã
ããŸãã« äžèŠãªæš©éã®åé€ ãè¡ãã
ã¢ã¯ã»ã¹æš©éã®æŽçæŽé ãããŠããããšãæšå¥šããŸãã
Fig.6 ãé åžçšã¹ã¯ãªãããã¡ã€ã«ããšãéçºçšã¹ã¯ãªãããã¡ã€ã«ããåããç¶æ
Bãé åžçšã¹ã¯ãªããã®ãããã€ã§ãæ°èŠãããã€ãã䜿ãããããããã€ã®ç®¡çãã䜿ããããšã§ãWebã¢ããªã®URLãäžå€ã«ãã
ããŠããæ¬¡ã¯ã
ããããã€ã®ç®¡çãã䜿ã£ãŠã
å
·äœçã«ã©ãäœæ¥ããã°ã
Webã¢ããªã®URLãäžå€ã«ã§ããã®ãã
ããäŒãããŸãã
ããã¯âŠæç« ã ãã ãšèª¬æã倧å€ã ã£ãã®ã§ã
次㮠Fig.7 & Fig.8 ã«ãå³å
¥ãã§èª¬æãæžããŠã¿ãŸããã
èŠç¹ãšããŠã¯ã
ããããã€ãã¡ãã¥ãŒã®äžã«ãã
ãæ°ãããããã€ã㯠䜿ãã ã«ã
ããããã€ã管çãã®æ¹ã䜿ã ããšã
åã«ãããã€ããïŒåºå®ãããURLã®ïŒãã®ãæå® ããŠã
ãç·šéãâãæ°ããŒãžã§ã³ã ãéžã³ã
ãŠã§ãã¢ããªã®URLããåãšåãã§ããããšãç¢ºèª ããäžã§ã
ãããã€ãå®è¡ãã ããšãã§ãã
ããããããšã§ã
æåã«äžåã ããæ°ãããããã€ããè¡ã£ãŠçºè¡ããURLãããã£ãšäœ¿ãç¶ãã
ããšãã§ããŸãã
Fig.7 ããããã€ã®æŽæ°ãã®ä»æ¹ïŒïŒïŒïŒïŒ
Fig.8 ããããã€ã®æŽæ°ãã®ä»æ¹ïŒïŒïŒïŒïŒ
ãã®çµæãå®éã®éçšãšããŠã¯ã
Fig.9 ã®å³ã®ãããªåœ¢ã«ãªããŸãã
Fig.9 å®éçšæã®ã€ã¡ãŒãž
ããããããšã§ã
- ïŒïŒœããã䜿ãäºå®ã®ãªããå€ãWebã¢ããªã®URLãçãããŸãŸã«ãªã£ãŠãâŠæµç³ã«éªéã«ãªã£ãŠãããâŠã
- ïŒïŒœãæ¯åURLå€ããã®é¢åã ãªãâŠèŸæžæ¯åæžãæããªããšãããªãã®âŠïŒã
㯠ãããããèµ·ãããªãã ããã«ãªããŸããã
- ïŒïŒœãå®éã«éçšããŠã¿ãããã°ããã£ãïŒãã®ãŸãŸåä»ç¶ããããããããªã£ã¡ããâŠã©ããããâŠã
ãªã©ã®åé¡çºçæãã
èœã¡çããŠãã°ãä¿®æ£ããŠ
ïŒãããã¯ãããã¯ã¢ããããŠãããå€ãã³ãŒããã³ããã§äžæžãããŠïŒ
Fig.9 ã§èšãã°âŠ ããããã€ã管çããããåãæé ã§ããŒãžã§ã³ïŒãæŽæ°ããã°ããã ã ã«ãªããŸãã
ïŒäŸãã°ãv9 ãžã®ããŒã«ããã¯ãããv10 ãã°ä¿®æ£ããããã®èª¬æãæžãã
ãããããã€ã管çããããç·šéãâãæ°ããŒãžã§ã³ãâããããã€ãããã°OKïŒ
ããã§ã
ãŽãŒã¹ãããåŽã®èšè¿°ãäžåè§Šãããšãªã
ïŒïŒãããã¯ãŒã¯æŽæ°ãä¿ãããããããšãªãïŒã
ãã¹ããåŽã®äœæ¥ã ãã§ãä¿®æ£ãå¯èœã« ãªããŸãã
â»ãªããã¢ãŒã«ã€ãããããããã€ã埩垰ãããæ¹æ³ã¯Ãã§ããã
ãïŒURLãå€ãã£ãŠããŸããŸããïŒ
äžèšæé ã®åèã«ããããŒãžããæ¬¡ã«ç€ºããŸãã
æçãªèšäºãå
¬éããŠäžãã£ãŠããå
äººã«æè¬ã§ãâŠã
â GASã®Webã¢ããªã§URLãå€ããã«æ°ããŒãžã§ã³ãå
¬éããïŒæ°ãšãã£ã¿ïŒ - make it easy
https://ryjkmr.com/gas-web-app-deploy-new-same-url/
â GoogleAppsScriptã®æ°ãããšãã£ã¿ã§æŽæ°ãããã€ããæ¹æ³
https://ymt43.com/gas-new-editor-deploy/
ãªããVersioned Deployment ã«é¢ãã Google å
¬åŒã®æ¡å
ã»èª¬æã¯
Deployment ãäœæããŠç®¡çãã
ã«ãããŸãã
â»æ¬ã»ã¯ã·ã§ã³ã®èª¬æïŒå¯ŸåŠæ¹æ³ã®äŸïŒã¯ããããŸã§
ã2022幎12æ æç¹ã§ã® dullNeko ã®æ€èšŒçµæã«åºã¥ããã®ã§ãã
ãä»åŸ Google ããåŽã§ä»æ§å€æŽããã£ãå Žåãªã©ã
ãããã«èšèŒããæ¹æ³ãéçšããªããªãå¯èœæ§ãããããŸãã
ããã®ç¹ã¯ãã©ãããäºæ¿é ããã°å¹žãã§ãã
Pull Requests ã Issues ã«ã³ã¡ã³ããæããŠé ãã®ããæ¬æ¥ã®éçšæ¹æ³âŠã ãšæãã®ã§ããã
ãdullNeko ã GitHub ã«äžæ
£ãã§ãäœ¿ãæ¹ãçè§£ã§ããŠãªããç¶æ
ãªã®ãšã
ãGitHub ã¢ã«ãŠã³ããæã£ãŠãªãæ¹ãããã£ãããã¯ãâŠããšæã£ãã®ã§ã
âã® Google ãã©ãŒã ãçšæããŠã¿ãŸããããæ°è»œã«ã©ããã
ã¶ã£ã¡ãããã®ã¹ã¯ãªãã䜿ããã Google ãã©ãŒã ãš Google ã¹ãã¬ããã·ãŒãã®é£æºã®æ¹ãæè»œã§æ©ããååãªã®ã§ã¯ïŒãšæã£ãã®ã¯ã²ã¿ã€
ããäžå¿ãã©ãããã§ãç»é¢é·ç§»ãªãã§äœ¿ãããã®ãšãåãåã£ãæç¹ã§ã®åŠçãã§ãããæã¯åã£ãŠãâŠã¯ããªã®ã§âŠïŒéã声ïŒ
ãã
Twitter ãš MastodonïŒããã©ãïŒ ã«ããããŸãã®ã§ã
ãã¡ãã§ã声ããé ããŠã倧äžå€«ã§ãã
æ¬ã¹ã¯ãªãã WebClapModoki-GAS.txt 㯠NYSL Version 0.9982 ã«åŸããŸãã
ã©ã€ã»ã³ã¹å
šæã¯ LICENSE.md ã«ç€ºããŠãããŸãã
- ã ãã§ã ããš ãããããæ°ïŒãªãªãžãã«ã®ãWebææãäœè æ§ïŒ
ã ãã§ã ããš ãããããæ° ããWebææãšããã¢ã€ãã¢ãå®è£
ããå
¬éãããŠããªããã°ã
æ¬ã¹ã¯ãªãããæžãã©ãããæãã€ãããšããªãã£ããšæããŸãã
å人Webãµã€ããæã£ãŠãæä»£ã¯ãäžè©±ã«ãªããŸããâŠã
å
äººã«æ¬æãšæè¬ãã
- 䌺ãçéã®çããŸ
æ°ã
ã®é
åçãªãŽãŒã¹ãããéãå
¬éãããŠããªããã°ã
ãŽãŒã¹ãããã«ãWebææçµç±ã§æ°è»œã«ææ³ãéä¿¡ã§ããä»çµã¿ãå®è£
ãããäŸãèŠãŠããªããã°ã
2022幎床ã®äŒºçã¢ãã«ã¬ãŒïŒäŒºç Advent Calendar 2022 - AdventarïŒ ãéå¬ãããŠããããä»ã®æ¹ã
ã®èšäºãèªãã§åºæ¿ãåããŠããªããã°ã
ãŸãã ãœãªããã®ãã¥ãŒã ã§èäžãæŒããŠé ããŠããªããã°ã
æ¬èšäºãå
¬éããããšã¯ãããŸããã§ããã
ãŠãŒã¶æŽã°ããé·ãæ°åè ã§ãããä»åŸãšãäœåãããããé¡ãç³ãäžããŸãâŠã
ãããªé·æä¹±çã®èšäºãæåŸãŸã§ãèªã¿äžãããããããšãããããŸãâŠã
æ¹ããŠãå¿ããæè¬ç³ãäžããŸãã
âŠãããŸã§ dullNeko åäººã®ææ³ã§ããã
ãèšäºãããããã°ã©ã ã³ãŒãããã衚çŸåªäœãã®äžã€ã
ããã®ãæ¹ãããã®äžçãã©ãæããã©ã®ãããªã¢ãã®èŠæ¹ãããŠã
ãã©ã㪠"ã«ã¿ã" ãè¯ããã®ã»å¥œãŸãããã®ã»å€§åãªãã®ã»çæ³ãšèããŠããããã®ãã
ãåŠå®ã«ç©èªãåµäœç©ã
ãšæããå¢ãªã®ã§ã
ä»åã䌺ç Advent Calendar 2022 ã§çæ§ã®èšäºãæèªãã
åã
æ¹ã®èгç¹ã»èãæ¹ãæèŠã»å€±æè«ã»åµäœç©ã®æ°ã
ã«è§Šããããšãã§ããŠã
倧å€å¹žããªæéãéãããŸããã
âŠãšããã§çæ§ã
䌺ç Advent Calendar 2022 å»¶é·æŠããã·ã¥ã¿ã°ããšã
#uka_advent_2022 ã¯ãåãã§ããããïŒ
æ¢ã« å€éæªåããã23æ¥ã«çºè¡šãããèšäº ãããããŸãã
èªãããããšã ãããããã£ãŠã¿ããããšããã£ãŠã¿ãããšããããããããšâŠãªã©ãªã©ã
ãããã "æ©äŒ" ããªããã°ãäžã
"èªåã®å€" ã«åºããªãããšãå€ããªãâŠ
ãªã©ãšããã®èšäºãæžãçµãã£ãä»ããŒãããæããŠãããŸãã
ïŒäžã§ãæžããŸããããèªåãèšäºãæžããŠå
¬éããåŽã«ãªããšã¯æã£ãŠããŸããã§ãããïŒ
ãããæ¬èšäºãèªãã§äžãã£ãè²Žæ¹æ§ãã
äœã "èªåã®å€" ã«åºããŠã¿ãããã®ããæã¡ã§ããã®ãªãâŠ
#uka_advent_2022 ãšããæ©äŒããåãããŠã
èšäºã®åœ¢ã§åºããŠã¿ããšããã£ãšè¯ãçµéšã«ãªããŸããâŠãšã
ãèªãã®èšèãæããŠãæ¬èšäºã®ç· ããšãããŠé ããŸãã










