
Sprog 🇩🇰 Dansk
Kom godt i gang
Konfiguration
Tilpasning
Avanceret
Collab Chat
Tilføj Inline Live-kommentarer til dokumenter, bøger osv
FastComments Collab Chat gør det muligt for brugere at markere og annotere enhver tekst på din hjemmeside og oprette trådede diskussioner knyttet til specifikke tekstudsnit. Brugere kan vælge ord, sætninger eller hele afsnit for at starte samarbejdsdiskussioner direkte i dit indhold.
Denne funktion er perfekt til redaktionel feedback, samarbejdslæsningsmiljøer, uddannelsesplatforme, dokumentgennemgang og enhver situation, hvor du ønsker kontekstuelle diskussioner forankret til specifik tekst.
Bemærk, at denne dokumentation er specifik for Collab Chat-funktionaliteten. Du kan tilføje kommentering til indhold med mange sider, som bøger, med tråd-per-side, uden at bruge collab chat. FastComments opkræver heller ikke pr. side eller pr. tråd. Collab Chat er specifikt, når du vil tillade brugere at vælge tekst og kommentere det fremhævede tekstafsnit.
Du kan se et eksempel her.
Kom godt i gang 
Kom godt i gang
Det er enkelt at komme i gang med Collab Chat. Du skal bruge FastComments Collab Chat-scriptet, et HTML-element, der indeholder den tekst, du vil annotere, og et konfigurationsobjekt med dit Tenant ID.
Installation
Tilføj Collab Chat-scriptet til din side:

Grundlæggende implementering
Her er et minimalt eksempel:
Run 
Udskift 'demo' med dit faktiske FastComments Tenant ID, hvis det ikke allerede er det. Du kan finde det i dit FastComments-dashboard.
Sådan fungerer det
Når det er initialiseret, kan brugere markere enhver tekst inden for mål-elementet. Efter en kort forsinkelse (3,5 sekunder på desktop) vises en prompt, der gør det muligt for dem at starte en diskussion. Når en diskussion oprettes, vises en visuel markering på teksten. Andre brugere kan holde musen over eller klikke på markeringen for at se og deltage i diskussionen. Alle diskussioner synkroniseres i realtid mellem alle besøgende.
Live-demo
Du kan se Collab Chat i aktion på vores live demo-side.
Næste skridt
Nu hvor du har det grundlæggende til at fungere, kan du tilpasse udseende og adfærd i guiden Konfigurationsmuligheder. Se guiden om tekstmarkering for at forstå, hvordan tekstmarkering fungerer. Læs om styling og understøttelse af mørk tilstand i Tilpasningsguiden. For avancerede integrationer kan du udforske API-Referencen.
Frontend-biblioteker
Alle FastComments frontend-biblioteker (react, vue, angular, etc) har Collab Chat.
Eksempler 
Grundlæggende eksempel
Den enkleste måde at bruge Collab Chat på er at målrette et enkelt indholdsområde. Dette eksempel viser, hvordan du aktiverer tekstannoteringer på en artikel:
Run 
Eksempel med tilpasset URL-id (pr. bogside, artikel osv.)
Som standard bruger Collab Chat sidens URL kombineret med elementstien og tekstområdet til at identificere samtaler. Du kan angive et tilpasset urlId for at få mere kontrol over, hvordan samtaler grupperes:

Dette er nyttigt, hvis din URL-struktur ændrer sig, men du vil bevare de samme samtaler, eller hvis du vil dele de samme samtaleannoteringer på tværs af flere sider.
Eksempel med mørk tilstand
Hvis dit site har en mørk baggrund, aktiver understøttelse af mørk tilstand for at sikre, at chat-brugergrænsefladen ser korrekt ud:
Run 
Eksempel med topbjælke deaktiveret
Som standard viser Collab Chat en topbjælke med antal brugere og antal diskussioner. Du kan deaktivere den:
Run 
Eksempel med callback for kommentarantal
Du kan registrere, når kommentarer bliver tilføjet eller opdateret, ved hjælp af commentCountUpdated-callback'en:

Eksempel med flere sektioner
Du kan initialisere Collab Chat på flere separate sektioner af din side. Hver sektion får sine egne uafhængige annoteringer:

Tilføjelse af live-kommentarer til onlinebøger 
Du kan initialisere Collab Chat pr. side, hvis ønsket, og have separate tråde pr. side, giv blot urlId-parameteren
en værdi som book-one-page1. Denne konfiguration virker også for den normale kommenteringswidget.
Konfigurationsindstillinger 
Oversigt
FastComments Collab Chat udvider standard FastComments-kommentarwidgeten, så den arver alle konfigurationsmulighederne fra basiswidgeten og samtidig tilføjer et par specifikke for tekstannotationer.
Påkrævet konfiguration
tenantId
Dit FastComments Tenant ID er påkrævet. Du kan finde det i dit FastComments dashboard.

Collab Chat-specifikke indstillinger
urlId
Som standard genererer Collab Chat et unikt id for hver samtale baseret på sidens URL, DOM-stien til elementet og det valgte tekstinterval. Du kan overskrive dette med en brugerdefineret urlId.

Dette er nyttigt, når din URL-struktur kan ændre sig, men du vil beholde de samme samtaler, eller når du vil dele annotationer på tværs af flere sider.
topBarTarget
Styrer visningen af topbjælken, som viser antal brugere og antal diskussioner. Sæt den til null for at deaktivere topbjælken helt, eller angiv et DOM-element for at gengive den på en bestemt placering.

hasDarkBackground
Aktivér mørk tilstand, når din side har en mørk baggrund. Denne detektering er automatisk, men det kan være ønskeligt at overskrive den.

commentCountUpdated
En callback-funktion, der udløses, hver gang antallet af kommentarer ændres. Dette er nyttigt til at opdatere UI-elementer som badges eller sidetitler.

Arvede konfigurationsmuligheder
Da Collab Chat udvider standardkommentarwidgeten, kan du bruge enhver konfigurationsmulighed fra basis-FastComments-widgeten. Her er nogle almindeligt anvendte indstillinger:
locale
Indstil sproget for widgetens UI. FastComments understøtter dusinvis af sprog.

readonly
Gør alle samtaler skrivebeskyttede. Brugere kan se eksisterende annotationer, men kan ikke oprette nye eller svare.

sso and simpleSSO
Integrér med dit autentificeringssystem ved hjælp af Single Sign-On.

Se SSO-dokumentationen for fulde detaljer om autentificeringsmuligheder.
maxReplyDepth
Styr, hvor mange niveauer dybe svar kan gå. Som standard sætter Collab Chat denne til 0, hvilket betyder, at alle kommentarer er flade (ingen indlejrede svar). Du kan ændre dette, hvis du vil have trådede samtaler.

Intern konfiguration
Disse indstillinger sættes automatisk af Collab Chat og bør ikke overskrives:
productId sættes automatisk til 3 for Collab Chat. Udvidelsen floating-chat indlæses automatisk for at levere chatvinduets funktionalitet. Widgeten detekterer automatisk mobile enheder (skærme under 768px brede) og tilpasser UI'en i overensstemmelse hermed.
Komplet eksempel
Her er et eksempel, der viser flere konfigurationsmuligheder sammen:

For en komplet liste over alle tilgængelige konfigurationsmuligheder, der er arvet fra basiswidgeten, se hoveddokumentationen for FastComments-konfiguration.
Adfærd ved tekstmarkering 
Sådan fungerer tekstmarkering
Når brugere markerer tekst i Collab Chat-containeren, fanger widgetten markeringen og giver dem mulighed for at starte en diskussion. Markeringen kan være så lille som et enkelt ord eller så stor som flere afsnit, der spænder over forskellige elementer.
Markeringsforsinkelse
På stationære enheder er der en forsinkelse på 3,5 sekunder mellem, hvornår en bruger markerer tekst, og hvornår diskussionsprompten vises. Dette forhindrer, at brugerfladen flimrer, når brugere blot markerer tekst for at kopiere eller læse den. På mobile enheder vises prompten med det samme, da tekstmarkering er mere bevidst på touchskærme.
Unikke samtale-ID'er
Hver samtale får et unikt urlId, der kombinerer sidens URL, DOM-elementstien og det serialiserede tekstområde. Dette sikrer, at hver tekstmarkering skaber en distinkt samtale, som kan findes igen senere.
Hvis du angiver et brugerdefineret urlId i din konfiguration, vil det blive kombineret med elementstien og tekstområdet for at danne den endelige identifikator.
Visuelle fremhævninger
Når der findes en diskussion for en bestemt tekstmarkering, får teksten en visuel fremhævning. Fremhævningen implementeres med baggrundsfarver og vises ved hover, eller når det tilknyttede chatvindue er åbent.
Fremhævningssystemet fungerer ved at indpakke den markerede tekst i et specielt element, som kan styles. Denne tilgang sikrer, at fremhævninger forbliver præcise, selv når den underliggende HTML-struktur er kompleks.
Placering af chatvinduer
Når en bruger klikker på en fremhævning eller opretter en ny annotering, vises et chatvindue nær den markerede tekst. Widgetten beregner automatisk den bedste placering for dette vindue baseret på den tilgængelige plads i viewporten.
Positioneringssystemet bruger CSS-klasser som to-right, to-left, to-top og to-bottom til at angive, i hvilken retning chatvinduet skal strække sig fra fremhævningen. På mobile enheder (skærme under 768px i bredden) vises chatvinduet altid i fuldskærm for bedre brugervenlighed.
Chatvinduets dimensioner
Chatvinduer er 410px brede på stationære enheder med 20px afstand og en 16px visuel pil, der peger på den fremhævede tekst. Disse dimensioner er faste for at sikre konsistent adfærd, men du kan tilpasse udseendet med CSS.
Markeringer på tværs af elementer
Brugere kan markere tekst, der spænder over flere HTML-elementer, f.eks. ved at fremhæve fra midten af ét afsnit til begyndelsen af et andet. Range-serialiseringssystemet håndterer dette korrekt og vil fremhæve hele den markerede tekst, selv på tværs af elementgrænser.
Browserkompatibilitet
Tekstmarkeringssystemet bruger standard-API'en window.getSelection(), som understøttes i alle moderne browsere. For ældre versioner af Internet Explorer falder det tilbage til document.selection af hensyn til kompatibiliteten.
Vedvarende markeringer
Når en samtale er oprettet for en tekstmarkering, forbliver annoteringen, selv hvis siden genindlæses. Det serialiserede område og DOM-stien gør det muligt for widgetten at gendanne fremhævninger på præcis samme sted, når brugerne vender tilbage til siden.
Dette fungerer pålideligt, så længe dit sideindhold forbliver stabilt. Hvis du ændrer tekstindholdet eller omstrukturerer din HTML, vil eksisterende annoteringer muligvis ikke længere passe korrekt til teksten. Af denne grund er det bedst at undgå større indholdsændringer på sider med aktive annoteringer, eller overveje at migrere annoteringer, når indholdsændringer er nødvendige.
Tilpasning 
Understøttelse af mørk tilstand
Dynamisk mørk tilstand
Hvis dit sites mørke tilstand styres ved at tilføje en .dark-klasse til body-elementet, vil Collab Chat UI automatisk respektere dette uden at kræve reinitialisering. Widget'ens stile er designet til at reagere på tilstedeværelsen af denne klasse.

Brugerdefineret styling med CSS
Du kan tilpasse udseendet af markeringer, chatvinduer og andre elementer ved hjælp af CSS. Widget'en tilføjer specifikke klasser, som du kan målrette i dit stylesheet.
Tekstmarkeringer bruger FastComments' comment bubble-styling system, så eventuelle tilpasninger, du har anvendt på den standard kommenteringswidget, også vil påvirke Collab Chat.
Tilpasning af topbjælken
Topbjælken viser antallet af brugere online og antallet af diskussioner. Du kan tilpasse dens position ved at angive et brugerdefineret element som topBarTarget:

Eller deaktiver den helt ved at sætte den til null:

Mobiladfærd
På skærme under 768px bredde skifter Collab Chat automatisk til et mobiloptimeret layout. Chatvinduer vises fuldskærm i stedet for at flyde ved siden af teksten, og forsinkelsen ved markering fjernes for mere umiddelbar interaktion.
Denne opførsel er indbygget og kræver ingen konfiguration. Widget'en registrerer skærmstørrelsen automatisk og tilpasser sig derefter.
Udseende af chatvinduet
Chatvinduer er 410px brede på desktop med en 16px pil, der peger mod den fremhævede tekst. Vinduerne positionerer sig automatisk baseret på tilgængelig viewport-plads og bruger positioneringsklasser som to-right, to-left, to-top og to-bottom.
Du kan tilføje brugerdefineret CSS for at justere farver, skrifttyper, afstande eller andre visuelle egenskaber af disse vinduer. Chatvinduerne bruger samme komponentstruktur som den standard FastComments-widget, så de arver alle globale tilpasninger, du har anvendt.
Lokalisering
Collab Chat understøtter alle de samme lokaliseringsmuligheder som den standard FastComments-widget. Indstil locale-optionen for at vise UI-tekst på forskellige sprog:

FastComments understøtter dusinvis af sprog. Locale-indstillingen påvirker al UI-tekst, inklusive prompts, knapper og pladsholdertekst.
Arvede tilpasningsmuligheder
Da Collab Chat udvider den standard kommenteringswidget, arver den alle tilpasningsmuligheder fra basiswidget'en. Dette inkluderer brugerdefinerede CSS-klasser, brugerdefinerede oversættelser, avatar-tilpasning, datoformattering og meget mere.
Se hoveddokumentationen for FastComments-tilpasning for den komplette liste over tilpasningsmuligheder, der er tilgængelige.
Arbejde med brugerdefinerede skrifttyper
Hvis dit site bruger brugerdefinerede skrifttyper, vil Collab Chat UI arve disse skrifttyper fra din sides CSS. Du kan være nødt til at oprette en widget-tilpasningsregel og @import eventuelle skrifttyper i den brugerdefinerede CSS i den regel, hvis du ønsker, at det flydende chatvindue skal bruge de samme skrifttyper.
Live-synkronisering 
Opdateringer i realtid
Collab Chat bruger WebSocket-forbindelser til at synkronisere alle samtaler i realtid på tværs af alle tilsluttede brugere. Når nogen opretter en ny annotering, tilføjer en kommentar eller sletter en diskussion, ser alle andre brugere, der ser samme side, opdateringen med det samme uden at genindlæse.
Hvordan WebSocket-synkronisering fungerer
Når du initialiserer Collab Chat, etablerer widgeten en WebSocket-forbindelse til FastComments-serverne. Denne forbindelse forbliver åben i brugerens session og lytter efter opdateringer relateret til den aktuelle side.
WebSocket-systemet bruger tre typer broadcast-beskeder for Collab Chat. new-text-chat-begivenheden udløses, når nogen opretter en ny annotering på siden. updated-text-chat-begivenheden udløses, når nogen opdaterer en eksisterende samtale. deleted-text-chat-begivenheden udløses, når nogen sletter en annotering.
Broadcast ID-system
For at forhindre ekko-effekter, hvor brugere ser deres egne handlinger blive broadcastet tilbage til dem, indeholder hver opdatering en unik broadcastId. Når en bruger opretter eller opdaterer en annotering, genererer deres klient en UUID for den handling. Når WebSocket'en broadcaster opdateringen tilbage til alle klienter, ignorerer den oprindelige klient opdateringen, fordi den matcher dens eget broadcastId.
Dette sikrer en glidende interaktion, hvor brugere ser deres ændringer med det samme i brugergrænsefladen uden at vente på tur/retur gennem serveren, samtidig med at alle andre brugere stadig modtager opdateringen.
Live-brugerantal
Topbaren viser antallet af brugere, der i øjeblikket ser siden. Dette antal opdateres i realtid, efterhånden som brugere slutter sig til og forlader siden. Brugerantallet leveres gennem den samme WebSocket-forbindelse og øges/formindskes automatisk baseret på forbindelses- og afbrydelsesbegivenheder.
Forbindelsesstabilitet
Hvis WebSocket-forbindelsen falder på grund af netværksproblemer eller servervedligeholdelse, forsøger widgeten automatisk at genoprette forbindelsen. I løbet af genoprettelsesperioden kan brugere stadig interagere med eksisterende annoteringer, men de vil ikke se realtidsopdateringer fra andre brugere, indtil forbindelsen er genoprettet.
Når forbindelsen er genoprettet, resynkroniserer widgeten for at sikre, at ingen opdateringer gik tabt. Dette sker transparent uden at kræve brugerintervention.
Båndbreddehensyn
WebSocket-beskeder er lette og indeholder kun de væsentlige oplysninger, der er nødvendige for at synkronisere tilstanden. Oprettelse af en ny annotering bruger typisk mindre end 1KB båndbredde. Systemet inkluderer også intelligent batching for at reducere beskedfrekvensen under perioder med høj aktivitet.
Dine brugermetrikker i FastComments-dashboardet sporer pubSubMessageCount og pubSubBandwidth, så du kan overvåge realtids-synkroniseringsaktivitet på tværs af dine sites.
Synkronisering på tværs af faner
Hvis en bruger har samme side åben i flere faner i browseren, vises opdateringer i én fane med det samme i de andre faner. Dette fungerer gennem den samme WebSocket-synkroniseringsmekanisme og kræver ingen ekstra konfiguration.
Sikkerhed
WebSocket-beskeder transmitters over sikre forbindelser (WSS) og inkluderer tenant-validering for at sikre, at brugere kun modtager opdateringer for samtaler, de har tilladelse til at se. Serveren validerer alle operationer, før de broadcastes, for at forhindre uautoriseret adgang eller manipulation.
API-reference 
API Oversigt
Collab Chat tilbyder tre REST API-endpoints til programmatisk håndtering af tekstkonversationer. Disse endpoints giver dig mulighed for at hente, oprette og slette annotationer uden at bruge browser-widgetten.
Dette er offentlige endpoints, der autentificerer brugere via browser-cookies. De bruger ikke API-nøgler. Brugere skal være logget ind på FastComments i deres browser for at tilgå disse endpoints.
Basis-URL
Alle Collab Chat API-endpoints findes under:

Autentificering
Disse endpoints autentificerer brugere via browser-cookies. De bruger ikke API-nøgler. Brugere skal være logget ind på FastComments i deres browser for at tilgå disse endpoints.
Hent Alle Konversationer
Hent alle tekstkonversationer for en bestemt side.
Endpoint

Parametre
tenantId (sti-parameter, påkrævet) er dit FastComments Tenant ID.
urlId (query-parameter, påkrævet) er side-id'et, du vil hente konversationer for.
Svar
Svaret indeholder API-status, information om den aktuelle brugersession, hvis autentificeret, et array af konversationer med deres ID'er, URL'er og tekstområder, et rensset URL-identifikator, et flag, der angiver, om den aktuelle bruger er site-administrator eller moderator, samt WebSocket-forbindelsesdetaljer til live-synkronisering, herunder tenantIdWS, urlIdWS og userIdWS.
Eksempel på Forespørgsel

Eksempel på Svar

Opret Konversation
Opret en ny tekstkonversation for en bestemt tekstmarkering.
Endpoint

Parametre
tenantId (sti-parameter, påkrævet) er dit FastComments Tenant ID.
Request-body skal være JSON og indeholde disse påkrævede felter.
urlId (streng, påkrævet) er basis-side-id'et.
urlIdWithRange (streng, påkrævet) er URL'en kombineret med tekstområdet, for eksempel my-page:p:0:15,0:45{abc123}.
pageTitle (streng, påkrævet) er sidens titel.
selector (streng, påkrævet) er DOM-stien til elementet, der indeholder den markerede tekst.
range (streng, påkrævet) er det serialiserede tekstområde i formatet startOffset:endOffset,startOffset:endOffset{checksum}.
createdFromCommentId (streng, påkrævet) er ID'et på den kommentar, der startede denne chat.
broadcastId (streng, påkrævet) er en UUID til live-synkronisering for at forhindre ekko-effekter.
Svar
Svaret indeholder API-status og ID'et på den nyoprettede konversation.
Eksempel på Forespørgsel

Eksempel på Svar

Slet Konversation
Slet en eksisterende tekstkonversation. Dette endpoint kræver administrator- eller moderatorrettigheder, eller at konversationen skal være oprettet af den autentificerede bruger.
Endpoint

Parametre
tenantId (sti-parameter, påkrævet) er dit FastComments Tenant ID.
chatId (sti-parameter, påkrævet) er ID'et på den konversation, der skal slettes.
broadcastId (request-body, påkrævet) er en UUID til live-synkronisering.
Eksempel på Forespørgsel

Eksempel på Svar

Hastighedsbegrænsning
Disse endpoints er underlagt FastComments' standard API-hastighedsbegrænsning. Middlewaren for hastighedsbegrænsning anvendes pr. tenant for at forhindre misbrug, samtidig med at normale brugsmønstre tillades.
Fejlsvær
Alle endpoints returnerer standard HTTP-statuskoder. En 400-response angiver ugyldige forespørgselsparametre. En 401-response betyder, at autentificeringen mislykkedes. En 403-response angiver utilstrækkelige rettigheder. En 404-response betyder, at konversationen ikke blev fundet. En 429-response angiver, at hastighedsgrænsen er overskredet.
Fejlsvær inkluderer en JSON-body med detaljer:

Forbrugssporing
Oprettelse af konversationer øger din conversationCreateCount forbrugsmetrik. Al WebSocket-synkroniseringsaktivitet øger pubSubMessageCount og pubSubBandwidth. Du kan overvåge disse metrikker i dit FastComments-dashboard under forbrugsanalyse.
Har du spørgsmål?
Det var det for FastComments Collab Chat! Hvis du har spørgsmål, har brug for hjælp med implementeringen, eller har forslag til funktioner, så lad os det vide nedenfor eller kontakt vores supportteam.
For live-eksempler, se Govscent.org, som bruger Collab Chat i produktion.