
èšèª ð¯ðµ æ¥æ¬èª
ã¯ããã«
èšå®
ã«ã¹ã¿ãã€ãº
äžçŽ
ããã¥ã¡ã³ããæžç±ãªã©ã«ã€ã³ã©ã€ã³ã®ã©ã€ãã³ã¡ã³ãã远å ãã
FastComments Collab Chat ã«ããããŠãŒã¶ãŒã¯ãŠã§ããµã€ãäžã®ä»»æã®ããã¹ãããã€ã©ã€ãããŠæ³šéãä»ããããšãã§ããç¹å®ã®ããã¹ãéžæã«çŽã¥ããã¹ã¬ãã圢åŒã®è°è«ãäœæã§ããŸãããŠãŒã¶ãŒã¯åèªãæããŸãã¯æ®µèœå šäœãéžæããŠãã³ã³ãã³ãå ã§çŽæ¥ååçãªäŒè©±ãéå§ã§ããŸãã
ãã®æ©èœã¯ãç·šéäžã®ãã£ãŒãããã¯ãååèªæžç°å¢ãæè²ãã©ãããã©ãŒã ãããã¥ã¡ã³ãã¬ãã¥ãŒãç¹å®ã®ããã¹ãã«çŽã¥ããæèçãªè°è«ãè¡ãããããããã·ããªãªã«æé©ã§ãã
ãããã®ããã¥ã¡ã³ã㯠Collab Chat æ©èœã«ç¹åããŠããããšã«æ³šæããŠãã ãããããŒãžæ°ã®å€ãã³ã³ãã³ãïŒBooks ãªã©ïŒã«å¯ŸããŠã¯ãcollab chat ã䜿çšããã« ããŒãžããšã«ã¹ã¬ããã远å ããããšãã§ããŸããFastComments ã¯ããŒãžããšãã¹ã¬ããããšã«èª²éããŸãããCollab Chat ã¯ããŠãŒã¶ãŒãããã¹ããéžæããŠãã€ã©ã€ãéšåã«ã³ã¡ã³ãã§ããããã«ãããå Žåã«ç¹ã«çšããããŸãã
ã¯ããã« 
ã¯ã€ãã¯ã¹ã¿ãŒã
Collab Chat ã®éå§ã¯ç°¡åã§ããå¿ èŠãªã®ã¯ FastComments Collab Chat ã¹ã¯ãªãããæ³šéãããããã¹ããå«ã HTML èŠçŽ ãããã³ Tenant ID ãå«ãèšå®ãªããžã§ã¯ãã ãã§ãã
ã€ã³ã¹ããŒã«
ããŒãžã« Collab Chat ã¹ã¯ãªããã远å ããŸã:

åºæ¬çãªå®è£
æå°éã®äŸã¯æ¬¡ã®ãšããã§ã:
Run 
å®éã® FastComments Tenant ID ããŸã 'demo' ã§ãªãå Žåã¯ããããå®éã® Tenant ID ã«çœ®ãæããŠãã ãããTenant ID 㯠FastComments ããã·ã¥ããŒã ã§ç¢ºèªã§ããŸãã
ä»çµã¿
åæåãå®äºãããšããŠãŒã¶ãŒã¯ã¿ãŒã²ããèŠçŽ å ã®ä»»æã®ããã¹ããéžæã§ããŸããçãé å»¶ã®åŸïŒãã¹ã¯ãããã§ã¯çŽ 3.5 ç§ïŒããã£ã¹ã«ãã·ã§ã³ãéå§ã§ããããã³ããã衚瀺ãããŸãããã£ã¹ã«ãã·ã§ã³ãäœæããããšãéžæããããã¹ãã«èŠèŠçãªãã€ã©ã€ãã衚瀺ãããŸããä»ã®ãŠãŒã¶ãŒã¯ãã®ãã€ã©ã€ãã«ã«ãŒãœã«ãåããããã¯ãªãã¯ããŠãã£ã¹ã«ãã·ã§ã³ã衚瀺ã»åå ã§ããŸãããã¹ãŠã®ãã£ã¹ã«ãã·ã§ã³ã¯ãã¹ãŠã®èšªåè éã§ãªã¢ã«ã¿ã€ã ã«åæãããŸãã
ã©ã€ããã¢
Collab Chat ã®åäœã¯åœç€Ÿã® ã©ã€ããã¢ããŒãž ã§ã芧ããã ããŸãã
次ã®ã¹ããã
åºæ¬ãåäœããããã«ãªã£ãããConfiguration Options ã¬ã€ãã§å€èгãåäœãã«ã¹ã¿ãã€ãºã§ããŸããText Selection Behavior ã¬ã€ãã§ããã¹ãéžæã®ä»çµã¿ã確èªããŠãã ãããã«ã¹ã¿ãã€ãºãšããŒã¯ã¢ãŒãã®ãµããŒãã«ã€ããŠã¯ Customization ã¬ã€ããã芧ãã ãããé«åºŠãªçµ±åã«ã€ããŠã¯ API Reference ãåç §ããŠãã ããã
ããã³ããšã³ãã©ã€ãã©ãª
ãã¹ãŠã® FastComments ããã³ããšã³ãã©ã€ãã©ãªïŒreact, vue, angular ãªã©ïŒã« Collab Chat ãå«ãŸããŠããŸãã
äŸ 
åºæ¬äŸ
Collab Chat ã䜿ãæãç°¡åãªæ¹æ³ã¯ãåäžã®ã³ã³ãã³ãã³ã³ãããã¿ãŒã²ããã«ããããšã§ãã以äžã®äŸã¯èšäºã§ããã¹ã泚éãæå¹ã«ããæ¹æ³ã瀺ããŠããŸã:
Run 
ã«ã¹ã¿ã URL ID ã®äŸïŒæžç±ã®ããŒãžãèšäºãªã©ïŒ
ããã©ã«ãã§ã¯ãCollab Chat ã¯ããŒãžã® URL ãšèŠçŽ ã®ãã¹ããã³ããã¹ãç¯å²ãçµã¿åãããŠäŒè©±ãèå¥ããŸããäŒè©±ã®ã°ã«ãŒãåããã现ããå¶åŸ¡ããã«ã¯ãã«ã¹ã¿ã ã® urlId ãæå®ã§ããŸã:

URL æ§é ã倿ŽãããŠãåãäŒè©±ãç¶æãããå ŽåããŸãã¯è€æ°ã®ããŒãžã§åãäŒè©±æ³šéãå ±æãããå Žåã«äŸ¿å©ã§ãã
ããŒã¯ã¢ãŒãã®äŸ
ãµã€ããããŒã¯ãªèæ¯ã䜿çšããŠããå Žåã¯ããã£ãã UI ãæ£ãã衚瀺ãããããã«ããŒã¯ã¢ãŒããµããŒããæå¹ã«ããŠãã ãã:
Run 
ãããããŒãç¡å¹ã«ããäŸ
ããã©ã«ãã§ã¯ãCollab Chat ã¯ãŠãŒã¶ãŒæ°ãšãã£ã¹ã«ãã·ã§ã³æ°ã衚瀺ãããããããŒã衚瀺ããŸãããããç¡å¹ã«ã§ããŸã:
Run 
ã³ã¡ã³ãæ°ã³ãŒã«ããã¯ã®äŸ
ã³ã¡ã³ãã远å ãŸãã¯æŽæ°ããããšãã« commentCountUpdated ã³ãŒã«ããã¯ã§è¿œè·¡ã§ããŸã:

è€æ°ã»ã¯ã·ã§ã³ã®äŸ
ããŒãžã®è€æ°ã®å¥ã ã®ã»ã¯ã·ã§ã³ã§ Collab Chat ãåæåã§ããŸããåã»ã¯ã·ã§ã³ã¯ç¬ç«ããæ³šéãæã¡ãŸã:

ãªã³ã©ã€ã³æžç±ã«ã©ã€ãã³ã¡ã³ãã远å ãã 
å¿
èŠã«å¿ããŠããŒãžããšã« Collab Chat ãåæåããããŒãžããšã«å¥ã
ã®ã¹ã¬ãããæãããããšãã§ããurlId ãã©ã¡ãŒã¿
ã« book-one-page1 ã®ãããªå€ãæž¡ããŠãã ããããã®æ§æã¯éåžžã®ã³ã¡ã³ããŠã£ãžã§ããã«ãæå¹ã§ãã
èšå®ãªãã·ã§ã³ 
æŠèŠ
FastComments Collab Chat ã¯æšæºã® FastComments ã³ã¡ã³ããŠã£ãžã§ãããæ¡åŒµããŠãããããŒã¹ãŠã£ãžã§ããã®ãã¹ãŠã®èšå®ãªãã·ã§ã³ãç¶æ¿ãã€ã€ãããã¹ã泚éã«ç¹æã®ããã€ãã®ãªãã·ã§ã³ã远å ããŸãã
å¿ é ã®èšå®
tenantId
FastComments ã® Tenant ID ãå¿ èŠã§ãããã㯠FastComments ããã·ã¥ããŒã ã§ç¢ºèªã§ããŸãã

Collab Chat åºæã®ãªãã·ã§ã³
urlId
ããã©ã«ãã§ã¯ãCollab Chat ã¯ããŒãžã® URLãèŠçŽ ãžã® DOM ãã¹ãããã³éžæãããããã¹ãç¯å²ã«åºã¥ããŠåäŒè©±ã®äžæã®èå¥åãçæããŸããã«ã¹ã¿ã ã® urlId ã§ãããäžæžãã§ããŸãã

ããã¯ãURL æ§é ãå€ããå¯èœæ§ããããäŒè©±ãç¶æãããå ŽåããŸãã¯æ³šéãè€æ°ããŒãžã§å ±æãããå Žåã«äŸ¿å©ã§ãã
topBarTarget
ãŠãŒã¶ãŒæ°ãšãã£ã¹ã«ãã·ã§ã³æ°ã衚瀺ãããããããŒã®è¡šç€ºãå¶åŸ¡ããŸãããããããŒãå®å
šã«ç¡å¹ã«ããã«ã¯ null ãèšå®ããããç¹å®ã®å Žæã«ã¬ã³ããªã³ã°ããããã® DOM èŠçŽ ãæå®ããŸãã

hasDarkBackground
ããŒãžã«ããŒã¯ãªèæ¯ãããå Žåã«ããŒã¯ã¢ãŒãã®ã¹ã¿ã€ãªã³ã°ãæå¹ã«ããŸãããã®æ€åºã¯èªåã§ãããäžæžããããå ŽåããããŸãã

commentCountUpdated
ã³ã¡ã³ãæ°ãå€åãããã³ã«åŒã³åºãããã³ãŒã«ããã¯é¢æ°ã§ãããããžãããŒãžã¿ã€ãã«ãªã©ã® UI èŠçŽ ãæŽæ°ããã®ã«äŸ¿å©ã§ãã

ç¶æ¿ãããèšå®ãªãã·ã§ã³
Collab Chat ã¯æšæºã®ã³ã¡ã³ããŠã£ãžã§ãããæ¡åŒµããŠãããããããŒã¹ã® FastComments ãŠã£ãžã§ããã®ä»»æã®èšå®ãªãã·ã§ã³ã䜿çšã§ããŸããããã§ã¯ãã䜿ããããªãã·ã§ã³ã瀺ããŸã:
locale
ãŠã£ãžã§ãã UI ã®èšèªãèšå®ããŸããFastComments ã¯å€æ°ã®èšèªããµããŒãããŠããŸãã

readonly
ãã¹ãŠã®äŒè©±ãèªã¿åãå°çšã«ããŸãããŠãŒã¶ãŒã¯æ¢åã®æ³šéãé²èЧã§ããŸãããæ°ããæ³šéãäœæãããè¿ä¿¡ãããããããšã¯ã§ããŸããã

sso and simpleSSO
ã·ã³ã°ã«ãµã€ã³ãªã³ã䜿çšããŠèªèšŒã·ã¹ãã ãšçµ±åããŸãã

èªèšŒãªãã·ã§ã³ã®è©³çްã«ã€ããŠã¯ SSO ããã¥ã¡ã³ããåç §ããŠãã ããã
maxReplyDepth
è¿ä¿¡ã®éå±€ã®æ·±ãïŒãã¹ãã®ã¬ãã«ïŒãå¶åŸ¡ããŸããããã©ã«ãã§ã¯ Collab Chat ã¯ããã 0 ã«èšå®ããŠããããã¹ãŠã®ã³ã¡ã³ãã¯ãã©ããïŒãã¹ããããè¿ä¿¡ãªãïŒã«ãªããŸããã¹ã¬ããåãããäŒè©±ã«ãããå Žåã¯ããã倿Žã§ããŸãã

å éšèšå®
ãããã®ãªãã·ã§ã³ã¯ Collab Chat ã«ãã£ãŠèªåçã«èšå®ãããäžæžããã¹ãã§ã¯ãããŸããïŒ
The productId is automatically set to 3 for Collab Chat. The floating-chat extension is automatically loaded to provide the chat window functionality. The widget automatically detects mobile devices (screens under 768px wide) and adjusts the UI accordingly.
å®å šãªäŸ
è€æ°ã®èšå®ãªãã·ã§ã³ãçµã¿åãããäŸã以äžã«ç€ºããŸãïŒ

For a complete list of all available configuration options inherited from the base widget, see the main FastComments configuration documentation.
ããã¹ãéžæã®åäœ 
ããã¹ãéžæã®ä»çµã¿
ãŠãŒã¶ãŒã Collab Chat ã³ã³ããå ã§ããã¹ããéžæãããšããŠã£ãžã§ããã¯ãã®éžæãååŸãããã£ã¹ã«ãã·ã§ã³ãéå§ã§ããããã«ããŸããéžæã¯åèª1ã€ã»ã©ã®å°ããªãã®ãããè€æ°ã®èŠçŽ ã«ãŸãããæ®µèœå šäœã®ãããªå€§ããªãã®ãŸã§å¯èœã§ãã
éžæé å»¶
ãã¹ã¯ãããã§ã¯ããŠãŒã¶ãŒãããã¹ããéžæããŠãããã£ã¹ã«ãã·ã§ã³ã®ããã³ããã衚瀺ããããŸã§ã«3.5ç§ã®é å»¶ããããŸããããã¯ããŠãŒã¶ãŒãããã¹ããã³ããŒãããèªãããã«ãã€ã©ã€ãããã ãã®å Žåã« UI ããã©ã€ãã®ãé²ããŸããã¢ãã€ã«ã§ã¯ãã¿ããã¹ã¯ãªãŒã³ã§ã®ããã¹ãéžæãããæå³çã§ãããããããã³ããã¯ããã«è¡šç€ºãããŸãã
äžæã®äŒè©±ID
åäŒè©±ã«ã¯ããŒãžã®URLãDOMèŠçŽ ã®ãã¹ãã·ãªã¢ã©ã€ãºãããããã¹ãç¯å²ãçµã¿åãããäžæã® urlId ãå²ãåœãŠãããŸããããã«ãããåããã¹ãéžæãåŸã§åã³èŠã€ããããå¥åã®äŒè©±ãäœæããŸãã
èšå®ã§ã«ã¹ã¿ã ã® urlId ãæå®ããå Žåãããã¯èŠçŽ ãã¹ãšããã¹ãç¯å²ãšçµã¿åããããŠæçµçãªèå¥åãäœæãããŸãã
èŠèŠçãã€ã©ã€ã
ç¹å®ã®ããã¹ãéžæã«å¯ŸããŠãã£ã¹ã«ãã·ã§ã³ãååšããå Žåããã®ããã¹ãã¯èŠèŠçã«ãã€ã©ã€ããããŸãããã€ã©ã€ãã¯èæ¯è²ã䜿ã£ãŠå®è£ ããããããŒæãŸãã¯é¢é£ãããã£ãããŠã£ã³ããŠãéããŠãããšãã«è¡šç€ºãããŸãã
ãã€ã©ã€ãã®ä»çµã¿ã¯ãéžæããããã¹ããã¹ã¿ã€ã«å¯èœãªç¹å¥ãªèŠçŽ ã§ã©ããããããšã§æ©èœããŸãããã®æ¹æ³ã«ãããåºç€ãšãªãHTMLæ§é ãè€éãªå Žåã§ããã€ã©ã€ããæ£ç¢ºã«ä¿æãããŸãã
ãã£ãããŠã£ã³ããŠã®äœçœ®æ±ºã
ãŠãŒã¶ãŒããã€ã©ã€ããã¯ãªãã¯ãããæ°ããæ³šéãäœæãããšãéžæããããã¹ãã®è¿ãã«ãã£ãããŠã£ã³ããŠã衚瀺ãããŸãããŠã£ãžã§ããã¯å©çšå¯èœãªãã¥ãŒããŒãã®ç©ºéã«åºã¥ããŠããã®ãŠã£ã³ããŠã®æé©ãªäœçœ®ãèªåçã«èšç®ããŸãã
äœçœ®æ±ºãã·ã¹ãã ã¯ããã£ãããŠã£ã³ããŠããã€ã©ã€ãããã©ã®æ¹åã«äŒžã³ãã¹ããã瀺ãããã« to-rightãto-leftãto-topãto-bottom ã®ãã㪠CSS ã¯ã©ã¹ã䜿çšããŸããã¢ãã€ã«ããã€ã¹ïŒå¹
768pxæªæºã®ç»é¢ã§ã¯ïŒã§ã¯ããŠãŒã¶ããªãã£åäžã®ãããã£ãããŠã£ã³ããŠã¯åžžã«å
šç»é¢è¡šç€ºã«ãªããŸãã
ãã£ãããŠã£ã³ããŠã®å¯žæ³
ãã£ãããŠã£ã³ããŠã¯ãã¹ã¯ãããã§å¹ 410pxãéé20pxããã€ã©ã€ãããããã¹ããæã16pxã®èŠèŠçãªç¢å°ããããŸãããããã®å¯žæ³ã¯äžè²«ããåäœã確ä¿ããããã«åºå®ãããŠããŸãããCSSã§å€èгãã«ã¹ã¿ãã€ãºã§ããŸãã
è€æ°èŠçŽ ã«ãŸãããéžæ
ãŠãŒã¶ãŒã¯ãããæ®µèœã®éäžããå¥ã®æ®µèœã®å é ãŸã§ã®ããã«ãè€æ°ã®HTMLèŠçŽ ã«ãŸãããããã¹ããéžæã§ããŸããç¯å²ã®ã·ãªã¢ã©ã€ãºã·ã¹ãã ã¯ãããæ£ããåŠçããèŠçŽ ã®å¢çãè¶ ããŠéžæããããã¹ãŠã®ããã¹ãããã€ã©ã€ãããŸãã
ãã©ãŠã¶äºææ§
ããã¹ãéžæã·ã¹ãã ã¯æšæºã® window.getSelection() API ã䜿çšããŠããããã¹ãŠã®ã¢ãã³ãã©ãŠã¶ã§ãµããŒããããŠããŸããå€ãããŒãžã§ã³ã® Internet Explorer ã§ã¯äºææ§ã®ããã« document.selection ã«ãã©ãŒã«ããã¯ããŸãã
éžæã®æ°žç¶æ§
ããã¹ãéžæã«å¯ŸããŠäŒè©±ãäœæããããšããã®æ³šéã¯ããŒãžããªããŒãããŠãæç¶ããŸããã·ãªã¢ã©ã€ãºãããç¯å²ãšDOMãã¹ã«ããããŠãŒã¶ãŒãããŒãžã«æ»ã£ããšãã«ãŠã£ãžã§ããã¯ãã€ã©ã€ããåãäœçœ®ã«åŸ©å ã§ããŸãã
ããã¯ããŒãžã®ã³ã³ãã³ããå®å®ããŠããéãä¿¡é ŒããŠåäœããŸããããã¹ãå 容ã倿ŽãããHTMLãåæ§æããå Žåãæ¢åã®æ³šéãããã¹ããšæ£ããäžèŽããªããªãå¯èœæ§ããããŸãããã®ãããã¢ã¯ãã£ããªæ³šéãããããŒãžã§ã¯å€§å¹ ãªã³ã³ãã³ã倿Žãé¿ããããå¿ èŠãªå Žåã¯æ³šéãç§»è¡ããããšãæ€èšããŠãã ããã
ã«ã¹ã¿ãã€ãº 
ããŒã¯ã¢ãŒã察å¿
åçããŒã¯ã¢ãŒã
ãµã€ãã®ããŒã¯ã¢ãŒãã body èŠçŽ ã« .dark ã¯ã©ã¹ã远å ããŠå¶åŸ¡ãããŠããå ŽåãCollab Chat UI ã¯ååæåãå¿
èŠãšããã«ãããèªåçã«åæ ããŸãããŠã£ãžã§ããã®ã¹ã¿ã€ã«ã¯ããã®ã¯ã©ã¹ã®æç¡ã«å¿ããŠå¿çããããã«èšèšãããŠããŸãã

CSSã«ããã«ã¹ã¿ã ã¹ã¿ã€ã«
ãã€ã©ã€ãããã£ãããŠã£ã³ããŠããã®ä»ã®èŠçŽ ã®å€èŠ³ã¯ CSS ã§ã«ã¹ã¿ãã€ãºã§ããŸãããŠã£ãžã§ããã¯ã¹ã¿ã€ã«ã·ãŒãã§ã¿ãŒã²ããã«ã§ããç¹å®ã®ã¯ã©ã¹ã远å ããŸãã
ããã¹ããã€ã©ã€ã㯠FastComments ã®ã³ã¡ã³ãããã«ã¹ã¿ã€ãªã³ã°ã·ã¹ãã ã䜿çšããŠãããããæšæºã®ã³ã¡ã³ããŠã£ãžã§ããã«é©çšããã«ã¹ã¿ãã€ãºã¯ Collab Chat ã«ã圱é¿ããŸãã
ãããããŒã®ã«ã¹ã¿ãã€ãº
ãããããŒã«ã¯ãªã³ã©ã€ã³ã®ãŠãŒã¶ãŒæ°ãšãã£ã¹ã«ãã·ã§ã³æ°ã衚瀺ãããŸããtopBarTarget ãšããŠã«ã¹ã¿ã èŠçŽ ãæå®ããããšã§äœçœ®ãã«ã¹ã¿ãã€ãºã§ããŸã:

ãŸã㯠null ã«èšå®ããŠå®å
šã«ç¡å¹åããããšãã§ããŸã:

ã¢ãã€ã«ã§ã®æå
å¹ ã 768px æªæºã®ç»é¢ã§ã¯ãCollab Chat ã¯èªåçã«ã¢ãã€ã«æé©åã¬ã€ã¢ãŠãã«åãæ¿ãããŸãããã£ãããŠã£ã³ããŠã¯ããã¹ãã®æšªã«æµ®ãã¶ä»£ããã«ãã«ã¹ã¯ãªãŒã³ã§è¡šç€ºãããéžæã®é å»¶ããªããªããããå³æã®æäœãå¯èœã«ãªããŸãã
ãã®æåã¯çµã¿èŸŒã¿ã§ãèšå®ã¯äžèŠã§ãããŠã£ãžã§ããã¯ç»é¢ãµã€ãºãèªåçã«æ€åºããŠèª¿æŽããŸãã
ãã£ãããŠã£ã³ããŠã®å€èг
ãã£ãããŠã£ã³ããŠã¯ãã¹ã¯ãããã§å¹
ã 410pxããã€ã©ã€ããããããã¹ããæã 16px ã®ç¢å°ããããŸãããŠã£ã³ããŠã¯å©çšå¯èœãªãã¥ãŒããŒã空éã«åºã¥ããŠèªåçã«äœçœ®æ±ºããããto-rightãto-leftãto-topãto-bottom ã®ãããªããžã·ã§ãã³ã°ã¯ã©ã¹ã䜿çšããŸãã
ãããã®ãŠã£ã³ããŠã®è²ããã©ã³ããééããã®ä»ã®èŠèŠçããããã£ã調æŽããããã«ã«ã¹ã¿ã CSS ã远å ã§ããŸãããã£ãããŠã£ã³ããŠã¯æšæºã® FastComments ãŠã£ãžã§ãããšåãã³ã³ããŒãã³ãæ§é ã䜿çšããŠãããããé©çšããã°ããŒãã«ãªã«ã¹ã¿ãã€ãºãç¶æ¿ããŸãã
ããŒã«ãªãŒãŒã·ã§ã³
Collab Chat ã¯æšæºã® FastComments ãŠã£ãžã§ãããšåãããŒã«ãªãŒãŒã·ã§ã³ãªãã·ã§ã³ããã¹ãŠãµããŒãããŸããUI ããã¹ããå¥ã®èšèªã§è¡šç€ºããã«ã¯ locale ãªãã·ã§ã³ãèšå®ããŠãã ãã:

FastComments ã¯æ°åã®èšèªããµããŒãããŠããŸãããã±ãŒã«èšå®ã¯ããã³ããããã¿ã³ããã¬ãŒã¹ãã«ããŒããã¹ããªã©ããã¹ãŠã® UI ããã¹ãã«åœ±é¿ããŸãã
ç¶æ¿ãããã«ã¹ã¿ãã€ãºãªãã·ã§ã³
Collab Chat ã¯æšæºã®ã³ã¡ã³ããŠã£ãžã§ãããæ¡åŒµããŠãããããããŒã¹ãŠã£ãžã§ãããããã¹ãŠã®ã«ã¹ã¿ãã€ãºãªãã·ã§ã³ãç¶æ¿ããŸããããã«ã¯ã«ã¹ã¿ã CSS ã¯ã©ã¹ãã«ã¹ã¿ã 翻蚳ãã¢ãã¿ãŒã®ã«ã¹ã¿ãã€ãºãæ¥ä»ã®ãã©ãŒããããªã©ãå€ãã®é ç®ãå«ãŸããŸãã
å©çšå¯èœãªã«ã¹ã¿ãã€ãºãªãã·ã§ã³ã®å®å šãªäžèЧã«ã€ããŠã¯ãã¡ã€ã³ã® FastComments ã«ã¹ã¿ãã€ãºããã¥ã¡ã³ããåç §ããŠãã ããã
ã«ã¹ã¿ã ãã©ã³ãã®å©çš
ãµã€ããã«ã¹ã¿ã ãã©ã³ãã䜿çšããŠããå ŽåãCollab Chat UI ã¯ããŒãžã® CSS ãããããã®ãã©ã³ããç¶æ¿ããŸãããããŒãã£ã³ã°ãã£ãããŠã£ã³ããŠã«ãåããã©ã³ãã䜿çšããããå Žåã¯ããŠã£ãžã§ããã«ã¹ã¿ãã€ãºã«ãŒã«ãäœæãããã®ã«ãŒã«å
ã®ã«ã¹ã¿ã CSS ã§ @import ã«ãã£ãŠãã©ã³ããèªã¿èŸŒãå¿
èŠããããããããŸããã
ã©ã€ãåæ 
ãªã¢ã«ã¿ã€ã æŽæ°
Collab Chat 㯠WebSocket æ¥ç¶ã䜿çšããŠãæ¥ç¶ãããŠãããã¹ãŠã®ãŠãŒã¶ãŒéã§äŒè©±ããªã¢ã«ã¿ã€ã ã«åæããŸãã誰ããæ°ããæ³šéãäœæããããã³ã¡ã³ãã远å ãããããã£ã¹ã«ãã·ã§ã³ãåé€ããããããšãåãããŒãžã衚瀺ããŠããä»ã®ãŠãŒã¶ãŒã¯ããŒãžãåèªã¿èŸŒã¿ããããšãªãå³åº§ã«ãã®æŽæ°ã確èªã§ããŸãã
WebSocket åæã®ä»çµã¿
Collab Chat ãåæåãããšããŠã£ãžã§ãã㯠FastComments ãµãŒããŒãžã® WebSocket æ¥ç¶ã確ç«ããŸãããã®æ¥ç¶ã¯ãŠãŒã¶ãŒã®ã»ãã·ã§ã³ã®ééãããŸãŸã«ãªããçŸåšã®ããŒãžã«é¢é£ããæŽæ°ãç£èŠããŸãã
WebSocket ã·ã¹ãã 㯠Collab Chat çšã«3çš®é¡ã®ãããŒããã£ã¹ãã¡ãã»ãŒãžã䜿çšããŸããnew-text-chat ã€ãã³ãã¯èª°ããããŒãžäžã«æ°ããæ³šéãäœæãããšãã«çºçããŸããupdated-text-chat ã€ãã³ãã¯èª°ããæ¢åã®äŒè©±ãæŽæ°ãããšãã«çºçããŸããdeleted-text-chat ã€ãã³ãã¯èª°ããæ³šéãåé€ãããšãã«çºçããŸãã
ãããŒããã£ã¹ãIDã·ã¹ãã
ãŠãŒã¶ãŒãèªåã®æäœãèªèº«ã«ãããŒããã£ã¹ããããŠæ»ã£ãŠããããšã§çºçãããšã³ãŒå¹æãé²ããããåæŽæ°ã«ã¯äžæã® broadcastId ãå«ãŸããŸãããŠãŒã¶ãŒã泚éãäœæãŸãã¯æŽæ°ããéãã¯ã©ã€ã¢ã³ãã¯ãã®æäœã®ããã® UUID ãçæããŸããWebSocket ãæŽæ°ããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«ãããŒããã£ã¹ããããšããçºä¿¡å
ã®ã¯ã©ã€ã¢ã³ãã¯èªåèªèº«ã® broadcastId ãšäžèŽãããããã®æŽæ°ãç¡èŠããŸãã
ããã«ããããŠãŒã¶ãŒã¯ãµãŒããŒãçµç±ããåŸåŸ©ãåŸ ã€ããšãªã UI äžã§èªåã®å€æŽãå³åº§ã«ç¢ºèªã§ããåæã«ä»ã®ãã¹ãŠã®ãŠãŒã¶ãŒã«ãæŽæ°ãå±ãããšãä¿èšŒãããŸãã
ã©ã€ããŠãŒã¶ãŒæ°
ãããããŒã«ã¯çŸåšãã®ããŒãžãé²èЧããŠãããŠãŒã¶ãŒæ°ã衚瀺ãããŸãããã®ã«ãŠã³ãã¯ãŠãŒã¶ãŒã®åå ãé¢è±ã«å¿ããŠãªã¢ã«ã¿ã€ã ã«æŽæ°ãããŸãããŠãŒã¶ãŒæ°ã¯åã WebSocket æ¥ç¶ãéããŠæäŸãããæ¥ç¶ããã³åæã€ãã³ãã«åºã¥ããŠèªåçã«å¢æžããŸãã
æ¥ç¶ã®å埩æ§
ãããã¯ãŒã¯ã®åé¡ããµãŒããŒã¡ã³ããã³ã¹ã«ãã WebSocket æ¥ç¶ãåæãããå ŽåããŠã£ãžã§ããã¯èªåçã«åæ¥ç¶ã詊ã¿ãŸãã忥ç¶ã®æéäžã§ããŠãŒã¶ãŒã¯æ¢åã®æ³šéãšããåãã§ããŸãããæ¥ç¶ãå確ç«ããããŸã§ã¯ä»ã®ãŠãŒã¶ãŒããã®ãªã¢ã«ã¿ã€ã æŽæ°ã¯è¡šç€ºãããŸããã
忥ç¶ãå®äºãããšããŠã£ãžã§ããã¯èŠéããæŽæ°ããªããååæããŸããããã¯ãŠãŒã¶ãŒã®ä»å ¥ãå¿ èŠãšããééçã«è¡ãããŸãã
垯åå¹ ã«é¢ããèæ ®
WebSocket ã¡ãã»ãŒãžã¯è»œéã§ãç¶æ ãåæããããã«å¿ èŠãªæå°éã®æ å ±ã®ã¿ãå«ã¿ãŸããæ°ããæ³šéã®äœæã¯éåžž 1KB æªæºã®åž¯åå¹ ã䜿çšããŸããã·ã¹ãã ã«ã¯é«ãã¢ã¯ãã£ããã£æéäžã«ã¡ãã»ãŒãžé »åºŠãæžããããã®ã€ã³ããªãžã§ã³ããªãããåŠçãå«ãŸããŠããŸãã
FastComments ããã·ã¥ããŒãã®äœ¿çšç¶æ³ã¡ããªã¯ã¹ã¯ pubSubMessageCount ãš pubSubBandwidth ã远跡ããŠããããµã€ãå
šäœã®ãªã¢ã«ã¿ã€ã åæã¢ã¯ãã£ããã£ãç£èŠã§ããŸãã
ã¿ãéåæ
ãŠãŒã¶ãŒãåãããŒãžãè€æ°ã®ãã©ãŠã¶ã¿ãã§éããŠããå Žåãããã¿ãã§ã®æŽæ°ã¯ä»ã®ã¿ãã«ãå³åº§ã«åæ ãããŸããããã¯åã WebSocket åæã¡ã«ããºã ãéããŠåäœãã远å ã®èšå®ã¯äžèŠã§ãã
ã»ãã¥ãªãã£
WebSocket ã¡ãã»ãŒãžã¯ã»ãã¥ã¢ãªæ¥ç¶ïŒWSSïŒã§éä¿¡ãããããã³ãæ€èšŒãå«ãŸããŠããããããŠãŒã¶ãŒãèš±å¯ãããŠããäŒè©±ã®æŽæ°ã®ã¿ãåãåãããšãä¿èšŒãããŸãããµãŒããŒã¯ãã¹ãŠã®æäœããããŒããã£ã¹ãããåã«æ€èšŒããäžæ£ãªã¢ã¯ã»ã¹ãæ¹ãããé²ããŸãã
API ãªãã¡ã¬ã³ã¹ 
APIã®æŠèŠ
Collab Chat ã¯ãããã¹ãäŒè©±ãããã°ã©ã ã§ç®¡çããããã®3ã€ã®REST APIãšã³ããã€ã³ããæäŸããŸãããããã®ãšã³ããã€ã³ãã䜿çšãããšããã©ãŠã¶ãŠã£ãžã§ããã䜿ããã«ã¢ãããŒã·ã§ã³ã®ååŸãäœæãåé€ãå¯èœã§ãã
ãããã¯ãã©ãŠã¶ã®Cookieã§ãŠãŒã¶ãŒãèªèšŒããå ¬éãšã³ããã€ã³ãã§ããAPIããŒã¯äœ¿çšããŸããããããã®ãšã³ããã€ã³ãã«ã¢ã¯ã»ã¹ããã«ã¯ããŠãŒã¶ãŒããã©ãŠã¶ã§FastCommentsã«ãã°ã€ã³ããŠããå¿ èŠããããŸãã
ããŒã¹URL
ãã¹ãŠã® Collab Chat API ãšã³ããã€ã³ãã¯ä»¥äžã®äžã«ãããŸãã

èªèšŒ
ãããã®ãšã³ããã€ã³ãã¯ãã©ãŠã¶ã®Cookieã§ãŠãŒã¶ãŒãèªèšŒããŸããAPIããŒã¯äœ¿çšããŸããããããã®ãšã³ããã€ã³ãã«ã¢ã¯ã»ã¹ããã«ã¯ããŠãŒã¶ãŒããã©ãŠã¶ã§FastCommentsã«ãã°ã€ã³ããŠããå¿ èŠããããŸãã
ãã¹ãŠã®äŒè©±ãååŸ
ç¹å®ã®ããŒãžã«å¯Ÿãããã¹ãŠã®ããã¹ãäŒè©±ãååŸããŸãã
ãšã³ããã€ã³ã

ãã©ã¡ãŒã¿
tenantId (ãã¹ãã©ã¡ãŒã¿ãå¿
é ) ã¯ããªãã® FastComments ããã³ãIDã§ãã
urlId (ã¯ãšãªãã©ã¡ãŒã¿ãå¿
é ) ã¯äŒè©±ãååŸãããããŒãžã®èå¥åã§ãã
ã¬ã¹ãã³ã¹
ã¬ã¹ãã³ã¹ã«ã¯ API ã®ã¹ããŒã¿ã¹ãèªèšŒãããŠããå Žåã®çŸåšã®ãŠãŒã¶ãŒã»ãã·ã§ã³æ
å ±ãäŒè©±ã® IDãURLãããã¹ãç¯å²ãå«ãäŒè©±ã®é
åãã¯ãªãŒã³ãª URL èå¥åãçŸåšã®ãŠãŒã¶ãŒããµã€ã管çè
ãŸãã¯ã¢ãã¬ãŒã¿ãŒãã©ããã瀺ããã©ã°ãããã³ãªã¢ã«ã¿ã€ã åæã®ããã® WebSocket æ¥ç¶æ
å ±ïŒtenantIdWSãurlIdWSãuserIdWS ãå«ãïŒãå«ãŸããŸãã
ãªã¯ãšã¹ãäŸ

ã¬ã¹ãã³ã¹äŸ

äŒè©±ãäœæ
ç¹å®ã®ããã¹ãéžæã«å¯ŸããŠæ°ããããã¹ãäŒè©±ãäœæããŸãã
ãšã³ããã€ã³ã

ãã©ã¡ãŒã¿
tenantId (ãã¹ãã©ã¡ãŒã¿ãå¿
é ) ã¯ããªãã® FastComments ããã³ãIDã§ãã
ãªã¯ãšã¹ãããã£ã¯ JSON ã§ã以äžã®å¿ é ãã£ãŒã«ããå«ããå¿ èŠããããŸãã
urlId (string, å¿
é ) ã¯ããŒã¹ããŒãžã®èå¥åã§ãã
urlIdWithRange (string, å¿
é ) ã¯ããã¹ãç¯å²ãå«ã URL ã§ãäŸ: my-page:p:0:15,0:45{abc123}ã
pageTitle (string, å¿
é ) ã¯ããŒãžã®ã¿ã€ãã«ã§ãã
selector (string, å¿
é ) ã¯éžæãããããã¹ããå«ãèŠçŽ ãžã® DOM ãã¹ã§ãã
range (string, å¿
é ) ã¯ã·ãªã¢ã©ã€ãºãããããã¹ãç¯å²ã§ã圢åŒã¯ startOffset:endOffset,startOffset:endOffset{checksum} ã§ãã
createdFromCommentId (string, å¿
é ) ã¯ãã®ãã£ãããéå§ããã³ã¡ã³ãã® ID ã§ãã
broadcastId (string, å¿
é ) ã¯ãšã³ãŒå¹æãé²ãããã®ã©ã€ãåæçš UUID ã§ãã
ã¬ã¹ãã³ã¹
ã¬ã¹ãã³ã¹ã«ã¯ API ã®ã¹ããŒã¿ã¹ãšãæ°ããäœæãããäŒè©±ã® ID ãå«ãŸããŸãã
ãªã¯ãšã¹ãäŸ

ã¬ã¹ãã³ã¹äŸ

äŒè©±ãåé€
æ¢åã®ããã¹ãäŒè©±ãåé€ããŸãããã®ãšã³ããã€ã³ãã«ã¯ç®¡çè ãŸãã¯ã¢ãã¬ãŒã¿ãŒã®æš©éãå¿ èŠã§ãããããã¯äŒè©±ãèªèšŒãŠãŒã¶ãŒã«ãã£ãŠäœæãããŠããå¿ èŠããããŸãã
ãšã³ããã€ã³ã

ãã©ã¡ãŒã¿
tenantId (ãã¹ãã©ã¡ãŒã¿ãå¿
é ) ã¯ããªãã® FastComments ããã³ãIDã§ãã
chatId (ãã¹ãã©ã¡ãŒã¿ãå¿
é ) ã¯åé€ããäŒè©±ã® ID ã§ãã
broadcastId (ãªã¯ãšã¹ãããã£ãå¿
é ) ã¯ã©ã€ãåæçšã® UUID ã§ãã
ãªã¯ãšã¹ãäŸ

ã¬ã¹ãã³ã¹äŸ

ã¬ãŒãå¶é
ãããã®ãšã³ããã€ã³ãã¯æšæºã®FastComments APIã®ã¬ãŒãå¶éã®å¯Ÿè±¡ã§ããã¬ãŒãå¶éããã«ãŠã§ã¢ã¯ããã³ãããšã«é©çšãããéåžžã®äœ¿çšãã¿ãŒã³ãæãªãããšãªãæªçšãé²ããŸãã
ãšã©ãŒå¿ç
ãã¹ãŠã®ãšã³ããã€ã³ãã¯æšæºç㪠HTTP ã¹ããŒã¿ã¹ã³ãŒããè¿ããŸãã400 ã¬ã¹ãã³ã¹ã¯ç¡å¹ãªãªã¯ãšã¹ããã©ã¡ãŒã¿ã瀺ããŸãã401 ã¬ã¹ãã³ã¹ã¯èªèšŒå€±æãæå³ããŸãã403 ã¬ã¹ãã³ã¹ã¯æš©éäžè¶³ã瀺ããŸãã404 ã¬ã¹ãã³ã¹ã¯äŒè©±ãèŠã€ãããªãããšãæå³ããŸãã429 ã¬ã¹ãã³ã¹ã¯ã¬ãŒãå¶éã®è¶ éã瀺ããŸãã
ãšã©ãŒå¿çã¯è©³çްãå«ã JSON ããã£ãè¿ããŸã:

䜿çšç¶æ³ã®è¿œè·¡
äŒè©±ãäœæãããš conversationCreateCount ã®äœ¿çšéã¡ããªã¯ã¹ãå¢å ããŸãããã¹ãŠã® WebSocket åæã¢ã¯ãã£ããã£ã¯ pubSubMessageCount ãš pubSubBandwidth ãå¢å ãããŸãããããã®ã¡ããªã¯ã¹ã¯ FastComments ããã·ã¥ããŒãã®äœ¿çšç¶æ³åæã§ç£èŠã§ããŸãã
ã質åã¯ãããŸããïŒ
FastComments Collab Chat ã®èª¬æã¯ä»¥äžã§ãïŒã質åãå®è£ ã®ãµããŒããå¿ èŠãªå ŽåããŸãã¯æ©èœã®ãææ¡ãããå Žåã¯ã以äžã§ãç¥ããããã ããããµããŒãããŒã ãŸã§ãåãåãããã ããã
å®éã®æŽ»çšäŸã«ã€ããŠã¯ãCollab Chat ãæ¬çªç°å¢ã§äœ¿çšããŠãã Govscent.org ãã芧ãã ããã