
Sprog 🇩🇰 Dansk
API-ressourcer
Aggregeringer
Auditlogs
Kommentarer
E-mail-skabeloner
Hashtags
Moderatorer
Notifikationstælling
Notifikationer
Sider
Ventende webhook-hændelser
SSO-brugere
Abonnementer
Lejers daglige forbrug
Lejere
Lejerpakker
Lejerbrugere
Brugere
Stemmer
Domænekonfigurationer
Spørgsmålskonfigurationer
Spørgsmålresultater
Aggregering af spørgsmålresultater
Brugerbadges
Brugerbadge-fremgang
FastComments API
FastComments tilbyder et API til at interagere med mange ressourcer. Byg integrationer med vores platform, eller byg endda dine egne klienter!
I denne dokumentation finder du alle API'ens understøttede ressourcer dokumenteret med deres request- og response-typer.
For Enterprise-kunder registreres al API-adgang i Audit Log.
Genererede SDK'er
FastComments genererer nu en API Spec fra vores kode (dette er endnu ikke fuldt færdigt, men omfatter mange API'er).
Vi har også nu SDK'er til populære sprog:
- fastcomments-cpp
- fastcomments-go
- fastcomments-java
- fastcomments-sdk-js
- fastcomments-nim
- fastcomments-php
- fastcomments-php-sso
- fastcomments-python
- fastcomments-ruby
- fastcomments-rust
- fastcomments-swift
Autentificering
API'en autentificeres ved at videregive din API-nøgle enten som en X-API-KEY header eller som forespørgselsparameteren API_KEY. Du får også brug for din tenantId for at foretage API-opkald. Den kan hentes fra samme side som din API-nøgle.
Sikkerhedsnote
Disse ruter er beregnet til at blive kaldt fra en server. KALD IKKE dem fra en browser. Hvis du gør det, vil din API-nøgle blive eksponeret - det vil give fuld adgang til din konto for enhver, der kan se kildeteksten på en side!
Autentificeringsmulighed Én - Headers
- Header:
X-API-KEY - Header:
X-TENANT-ID
Autentificeringsmulighed To - Forespørgselsparametre
- Forespørgselsparameter:
API_KEY - Forespørgselsparameter:
tenantId
API-ressourcer 
FastComments API indeholder følgende ressourcer:
- Comment
- Domain Config
- Page
- Moderator
- Notification
- Vote
- SSO User
- Tenant User
- User
- QuestionConfig
- QuestionResult
- Subscription
- Audit Log
Aggreger dine data 
Dette API aggregerer dokumenter ved at gruppere dem (hvis groupBy er provided) og anvende flere operationer. Forskellige operationer (f.eks. sum, countDistinct, avg osv.) understøttes.
Omkostningen er variabel. Hver 500 scannede objekter koster 1 API-kredit.
Den maksimale hukommelsesbrug tilladt pr. API-kald er som standard 64MB, og som standard må du kun have én aggregation kørende ad gangen. Hvis du sender flere aggregationer samtidig, vil de blive sat i kø og kørt i den rækkefølge, de blev sendt. Ventende aggregationer vil vente maksimalt 60 sekunder; derefter vil anmodningen timeoute. Individuelle aggregationer kan køre i op til 5 minutter.
Hvis du har managed tenants, kan du aggregere alle child tenant resources i ét kald ved at angive query-parameteren parentTenantId.
Eksempler
Eksempel: Tæl unikke


Eksempel: Antal distinkte

Svar:

Eksempel: Sum af værdier for flere felter

Svar:

Eksempel: Gennemsnit af værdier for flere felter

Svar:

Eksempel: Min/Max for flere felter

Svar:

Eksempel: Tæl unikke værdier for flere felter

Svar:

Eksempel: Oprettelse af forespørgsel

Svar:

Eksempel: Tæl kommentarer, der venter på gennemgang

Svar:

Eksempel: Opdeling af godkendte, gennemgåede og spam-kommentarer

Svar:

Strukturer


Følgende ressourcer kan aggregeres:
- AffiliateEvent
- AnonymousVote
- BannedUser
- BatchJob
- BlockedUser
- Comment
- CommentDeleted
- CommentIdToSyncOutbound
- CommentScheduled
- CommentSyncLog
- CustomConfig
- CustomEmailTemplateRenderError
- EmailToSend
- EventLogEntry
- ImportedCommentScheduled
- ModerationGroup
- Moderator
- Page
- PageReact
- PendingVote
- QuestionResult
- SSOUser
- SentEmail
- SpamEvent
- Tenant
- TenantAuditLog
- TenantBadge
- TenantDailyUsage
- TenantInvoiceHistory
- TenantPackage
- User
- UserBadge
- UserBadgeProgress
- UserNotification
- UserSubscription
- UserUsage
- Vote
Auditlog-struktur 
Et AuditLog er et objekt, der repræsenterer en revideret hændelse for lejere, der har adgang til denne funktion.
Strukturen for AuditLog-objektet er som følger:

Auditloggen er uforanderlig. Den kan heller ikke skrives til manuelt. FastComments.com beslutter alene, hvornår der skrives til auditloggen. Du kan dog læse fra den via dette API.
Hændelser i auditloggen udløber efter to år.
GET /api/v1/audit-logs 
Denne rute returnerer audit logs i sider af 100. Paginering leveres af skip-parameteren. Audit logs er sorteret efter createdAt og id.



Kommentarstruktur 
Et Comment-objekt repræsenterer en kommentar efterladt af en bruger.
Forholdet mellem forældre- og underkommentarer defineres via parentId.
Strukturen for Comment-objektet er som følger:

Some of these fields are marked READONLY - these are returned by the API but cannot be set.
Comment Text Structure
Comments are written in a FastComments flavor of markdown, which is just markdown plus traditional bbcode style tags for images, like [img]path[/img].
Text is stored in two fields. The text the user entered is stored unmodified in the comment field. This is rendered and stored in the commentHTML field.
The allowed HTML tags are b, u, i, strike, pre, span, code, img, a, strong, ul, ol, li, and br.
It's recommended to render the HTML, since it is a very small subset of HTML, building a renderer is pretty straightforward. There are multiple libraries for React Native and Flutter, for instance, to help with this
You may choose to render the un-normalized value of the comment field. An example parser is here..
The example parser could also be adjusted to work with HTML, and transform the HTML tags into expected elements to render for your platform.
Tagging
When users are tagged in a comment, the information is stored in a list called mentions. Each object in that list
has the following structure.
Run 
HashTags
When hashtags are used and successfully parsed, the information is stored in a list called hashTags. Each object in that list
has the following structure. Hashtags can also be manually added to the comment hashTags array for querying, if retain is set.
Run 
GET /api/v1/comments 
Dette API bruges til at hente kommentarer til visning for en bruger. For eksempel filtrerer det automatisk ikke-godkendte eller spam-kommentarer.
Paginering
Paginering kan gøres på en af to måder, afhængigt af performance-krav og brugssag:
- Hurtigst: Forudberegnet paginering:
- Dette er hvordan FastComments fungerer, når du bruger vores forbyggede widgets og klienter.
- At klikke "næste" øger simpelthen side-tælleren.
- Du kan tænke på dette som hentet fra en key-value store.
- På denne måde definerer du blot en
pageparameter startende ved0og en sorteringsretning somdirection. - Sidestørrelser kan tilpasses via tilpasningsregler.
- Mest fleksibel: Fleksibel paginering:
- På denne måde kan du definere brugerdefinerede
limitogskipparametre. Send ikkepage. - Sorterings-
directionunderstøttes også. limiter det samlede antal der returneres efterskiper anvendt.- Eksempel: sæt
skip = 200, limit = 100nårpage size = 100ogpage = 2.
- Eksempel: sæt
- Underkommentarer tæller stadig med i pagineringen. Du kan komme uden om dette ved at bruge
asTree-muligheden.- Du kan paginere børn via
limitChildrenogskipChildren. - Du kan begrænse dybden af de tråde der returneres via
maxTreeDepth.
- Du kan paginere børn via
- På denne måde kan du definere brugerdefinerede
Tråde
- Når du bruger
Precalculated Pagination, er kommentarer grupperet efter side og kommentarer i tråde påvirker den overordnede side.- På denne måde kan tråde bestemmes på klienten baseret på
parentId. - For eksempel, med en side med én topniveau-kommentar og 29 svar, og sætning af
page=0i API'et - vil du kun få topniveau-kommentaren og de 29 børn. - Eksempelbillede der illustrerer flere sider.
- På denne måde kan tråde bestemmes på klienten baseret på
- Når du bruger
Flexible Pagination, kan du definere enparentIdparameter.- Sæt denne til null for kun at få topniveau-kommentarer.
- For så at se tråde, kald API'et igen og giv
parentId. - En almindelig løsning er at lave et API-kald for topniveau-kommentarerne og derefter lave parallelle API-kald for at hente kommentarer for børnene af hver kommentar.
- NYT fra feb 2023! Hent som et træ ved at bruge
&asTree=true.- Du kan tænke på dette som
Flexible Pagination as a Tree. - Kun topniveau-kommentarer tæller i pagineringen.
- Sæt
parentId=nullfor at starte træet ved roden (du skal sætteparentId). - Sæt
skipoglimitfor paginering. - Sæt
asTreetiltrue. - Kreditforbruget øges med
2x, da vores backend skal lave meget mere arbejde i dette scenarie. - Sæt
maxTreeDepth,limitChildren, ogskipChildrensom ønsket.
- Du kan tænke på dette som
Træer forklaret
Når du bruger asTree, kan det være svært at sætte sig ind i paginering. Her er en nyttig grafik:
Hentning af kommentarer i brugerkontekst
/comments API'et kan bruges i to kontekster, til forskellige brugssager:
- Til at returnere kommentarer sorteret og tagget med information til at bygge din egen klient.
- I dette tilfælde definer en
contextUserIdforespørgselsparameter.
- I dette tilfælde definer en
- Til at hente kommentarer fra din backend til brugerdefinerede integrationer.
- Platformen vil som standard bruge dette uden
contextUserId.
- Platformen vil som standard bruge dette uden




Hent kommentarer som et træ
Det er muligt at få kommentarerne returneret som et træ, hvor paginering kun tæller topniveau-kommentarerne.

Vil du kun hente topniveau-kommentarerne og de umiddelbare børn? Her er én måde:

Dog kan du i din UI få brug for at vide, om du skal vise en "show replies"-knap på hver kommentar. Når du henter kommentarer via et træ, er der en hasChildren property knyttet til kommentarer, når det er relevant.
Hent kommentarer som træ, søgning efter hashtag
Det er muligt at søge efter hashtag ved hjælp af API'et, på tværs af hele din tenant (ikke begrænset til en side eller urlId).
I dette eksempel udelader vi urlId, og vi søger efter flere hashtags. API'et vil kun returnere kommentarer, der har alle de forespurgte hashtags.

Alle forespørgselsparametre

Svaret

Brugbare tips
URL-id
Du vil sandsynligvis bruge Comment API'et med urlId parameteren. Du kan kalde Pages API'et først for at se, hvordan de urlId værdier der er tilgængelige for dig ser ud.
Anonyme handlinger
For anonym kommentering vil du sandsynligvis sende anonUserId når du henter kommentarer, og når du foretager flagging og blokering.
(!) Dette er påkrævet for mange app-butikker, da brugere skal kunne markere brugeroprettet indhold, de kan se, selvom de ikke er logget ind. Hvis ikke, kan din app blive fjernet fra den pågældende butik.
Kommentarer returneres ikke
Kontroller at dine kommentarer er godkendte, og ikke er spam.
GET /api/v1/comments/:id 
Denne API giver mulighed for at hente en enkelt kommentar efter id.



POST /api/v1/comments 
Dette API-endpoint giver mulighed for at oprette kommentarer.
Almindelige anvendelsestilfælde er brugerdefinerede UI'er, integrationer eller imports.
Bemærkninger:
- Dette API kan opdatere kommentarwidgeten "live", hvis ønsket (dette øger
creditsCostfra1til2). - Dette API vil automatisk oprette brugerobjekter i vores system, hvis der angives en e-mail.
- Forsøg på at gemme to kommentarer med forskellige e-mails, men samme brugernavn, vil resultere i en fejl for den anden kommentar.
- Hvis du angiver
parentId, og en børnekommentar harnotificationSentForParentsat til false, vil vi sende notifikationer for forældrekommentaren. Dette gøres hver time (vi samler notifikationerne for at reducere antallet af sendte e-mails). - Hvis du vil sende velkomst-e-mails ved oprettelse af brugere, eller e-mails til verifikation af kommentarer, sæt
sendEmailstiltruei forespørgselsparametrene. - Kommentarer oprettet via dette API vil blive vist på Analytics- og Moderation-siderne i admin-appen.
- "bad words" bliver stadig maskerede i kommentatornavne og kommentartekst, hvis indstillingen er slået til.
- Kommentarer oprettet via dette API kan stadig blive tjekket for spam, hvis ønsket.
- Konfiguration såsom maksimal kommentar-længde, hvis konfigureret via Customization Rule-adminsiden, vil gælde her.
De minimale data, der kræves for at indsende og som vil blive vist i kommentar-widgeten, er følgende:

En mere realistisk forespørgsel kan se sådan ud:



PATCH /api/v1/comments/:id 
Denne API-endpoint giver mulighed for at opdatere en enkelt kommentar.
Bemærkninger:
- Denne API kan opdatere kommentar-widget'en "live" hvis ønsket (dette øger basis-
creditsCostfra1til2).- Dette kan gøre migrering af kommentarer mellem sider "live" (ændring af
urlId). - Migreringer koster yderligere
2kreditter, da sider er forudberegnet, og dette er CPU-intensivt.
- Dette kan gøre migrering af kommentarer mellem sider "live" (ændring af
- I modsætning til oprettelses-API'et vil denne API IKKE automatisk oprette brugerobjekter i vores system, hvis e-mail er angivet.
- Kommentarer opdateret via denne API kan stadig kontrolleres for spam, hvis ønsket.
- Konfiguration såsom maksimal kommentarlængde, hvis konfigureret via Tilpasningsregel-administrationssiden, vil gælde her.
- For at tillade brugere at opdatere deres kommentartekst, kan du bare angive
commenti anmodningskroppen. Vi vil generere den resulterendecommentHTML.- Hvis du definerer både
commentogcommentHTML, vil vi ikke automatisk generere HTML'en. - Hvis brugeren tilføjer omtaler eller hashtags i deres nye tekst, vil det stadig blive behandlet som
POSTAPI'et.
- Hvis du definerer både
- Når du opdaterer
commenterEmailpå en kommentar, er det bedst også at angiveuserId. Ellers skal du sikre, at brugeren med denne e-mail tilhører din tenant, ellers vil anmodningen fejle.



DELETE /api/v1/comments/:id 
Denne rute giver mulighed for at fjerne en enkelt kommentar.



POST /api/v1/comments/:id/flag 
Denne API-endpoint giver mulighed for at rapportere en kommentar for en specifik bruger.
Bemærkninger:
- Dette kald skal altid foretages i konteksten af en bruger. Brugeren kan være en FastComments.com-bruger, SSO-bruger eller Tenant-bruger.
- Hvis en flag-til-skjul-tærskel er sat, vil kommentaren automatisk blive skjult live, efter den er blevet rapporteret det definerede antal gange.
- Efter den automatisk er blevet fjernet fra godkendelse (skjult) - kan kommentaren kun gen-godkendes af en administrator eller moderator. Fjernelse af rapportering vil ikke gen-godkende kommentaren.

For anonym rapportering skal vi angive en anonUserId. Dette kan være et ID, der repræsenterer den anonyme session, eller et tilfældigt UUID.
Dette giver os mulighed for at understøtte rapportering og fjernelse af rapportering af kommentarer, selvom en bruger ikke er logget ind. På denne måde kan kommentaren markeres som
rapporteret, når kommentarer hentes med det samme anonUserId.



POST /api/v1/comments/:id/un-flag 
Denne API-endpoint giver mulighed for at fjerne rapportering af en kommentar for en specifik bruger.
Bemærkninger:
- Dette kald skal altid foretages i konteksten af en bruger. Brugeren kan være en FastComments.com-bruger, SSO-bruger eller Tenant-bruger.
- Efter en kommentar automatisk er blevet fjernet fra godkendelse (skjult) - kan kommentaren kun gen-godkendes af en administrator eller moderator. Fjernelse af rapportering vil ikke gen-godkende kommentaren.

For anonym rapportering skal vi angive en anonUserId. Dette kan være et ID, der repræsenterer den anonyme session, eller et tilfældigt UUID.



POST /api/v1/comments/:id/block 
Denne API-endpoint giver mulighed for at blokere en bruger, der har skrevet en given kommentar. Det understøtter blokering fra kommentarer skrevet af FastComments.com-brugere, SSO-brugere og Tenant-brugere.
Det understøtter en commentIdsToCheck body-parameter til at kontrollere, om andre potentielt synlige kommentarer på klienten skal blokeres/afblokeres efter denne handling udføres.
Bemærkninger:
- Dette kald skal altid foretages i konteksten af en bruger. Brugeren kan være en FastComments.com-bruger, SSO-bruger eller Tenant-bruger.
userIdi anmodningen er brugeren, der udfører blokeringen. For eksempel:Bruger Avil blokereBruger B. AngivuserId=Bruger Aog kommentar-id'et somBruger Bskrev.- Fuldstændig anonyme kommentarer (ingen bruger-id, ingen e-mail) kan ikke blokeres, og en fejl vil blive returneret.

For anonym blokering skal vi angive en anonUserId. Dette kan være et ID, der repræsenterer den anonyme session, eller et tilfældigt UUID.
Dette giver os mulighed for at understøtte blokering af kommentarer, selvom en bruger ikke er logget ind, ved at hente kommentarerne med det samme anonUserId.



POST /api/v1/comments/:id/un-block 
Denne API-endpoint giver mulighed for at afblokere en bruger, der har skrevet en given kommentar. Det understøtter afblokering fra kommentarer skrevet af FastComments.com-brugere, SSO-brugere og Tenant-brugere.
Det understøtter en commentIdsToCheck body-parameter til at kontrollere, om andre potentielt synlige kommentarer på klienten skal blokeres/afblokeres efter denne handling udføres.
Bemærkninger:
- Dette kald skal altid foretages i konteksten af en bruger. Brugeren kan være en FastComments.com-bruger, SSO-bruger eller Tenant-bruger.
userIdi anmodningen er brugeren, der udfører afblokeringen. For eksempel:Bruger Avil afblokereBruger B. AngivuserId=Bruger Aog kommentar-id'et somBruger Bskrev.- Fuldstændig anonyme kommentarer (ingen bruger-id, ingen e-mail) kan ikke blokeres, og en fejl vil blive returneret.




E-mail-skabelonstruktur 
Et EmailTemplate-objekt repræsenterer konfiguration for en tilpasset e-mail-skabelon, for en tenant.
Systemet vil vælge e-mail-skabelonen, der skal bruges via:
- Dens typeidentifikator, vi kalder denne
emailTemplateId. Disse er konstanter. domain. Vi vil først forsøge at finde en skabelon for domænet, som det relaterede objekt (såsom enComment) er knyttet til, og hvis et match ikke findes, vil vi forsøge at finde en skabelon, hvor domain er null eller*.
Strukturen for EmailTemplate-objektet er som følger:

Bemærkninger
- Du kan få de gyldige
emailTemplateId-værdier fra/definitions-endpointet. /definitions-endpointet inkluderer også standardoversættelserne og testdata.- Skabeloner vil fejle ved gemning med ugyldig struktur eller testdata.
GET /api/v1/email-templates/:id 
Individuelle EmailTemplates kan hentes via deres tilsvarende id (IKKE emailTemplateId).



GET /api/v1/email-templates 
Denne API bruger paginering, leveret af page query-parameteren. EmailTemplates returneres i sider af 100, sorteret efter createdAt og derefter id.



PATCH /api/v1/email-templates/:id 
Denne API-endpoint giver mulighed for at opdatere en e-mail-skabelon ved kun at angive id'et og attributterne, der skal opdateres.
Bemærk at alle de samme valideringer for oprettelse af en skabelon også gælder, for eksempel:
- Skabelonen skal kunne renderes. Dette kontrolleres ved hver opdatering.
- Du kan ikke have duplikerede skabeloner for det samme domæne (ellers ville en blive ignoreret lydløst).



POST /api/v1/email-templates 
Denne API-endpoint giver mulighed for at oprette e-mail-skabeloner.
Bemærkninger:
- Du kan ikke have flere skabeloner med det samme
emailTemplateIdmed det samme domæne. - Men du kan have en wildcard-skabelon (
domain=*og en domænespecifik skabelon for det sammeemailTemplateId). - Angivelse af
domainer kun relevant, hvis du har forskellige domæner, eller ønsker at bruge specifikke skabeloner til test (domainsat tillocalhostosv.). - Hvis du angiver
domain, skal det matche enDomainConfig. Ved fejl gives en liste over gyldige domæner. - Skabelonsyntaksen er EJS og renderes med en timeout på 500ms. P99 for rendering er <5ms, så hvis du rammer 500ms, er der noget galt.
- Din skabelon skal kunne renderes med dine givne
testDatafor at gemme. Renderingsfejl aggregeres og rapporteres i dashboardet (snart tilgængeligt via API).
De minimale data, der kræves for at tilføje en skabelon, er som følger:

Du vil måske have skabeloner per-site, i hvilket tilfælde du definerer domain:



POST /api/v1/email-templates/render 
Denne API-endpoint giver mulighed for at forhåndsvise e-mail-skabeloner.



DELETE /api/v1/email-templates/:id 
Denne rute giver mulighed for at fjerne en enkelt EmailTemplate efter id.



Hashtag-struktur 
Et HashTag-objekt repræsenterer et tag, der kan efterlades af en bruger. HashTags kan bruges til at linke til eksternt indhold eller til at
knytte relaterede kommentarer sammen.
Strukturen for HashTag-objektet er som følger:

Bemærkninger:
- I nogle API-endpoints vil du se, at hashtagget bruges i URL'en. Husk at URI-kode værdier. For eksempel skal
#i stedet repræsenteres som%23. - Nogle af disse felter er markeret
READONLY- disse returneres af API'et, men kan ikke sættes.
GET /api/v1/hash-tags 
Denne API bruger paginering, leveret af page query-parameteren. HashTags returneres i sider af 100, sorteret efter tag.



PATCH /api/v1/hash-tags/:tag 
Denne rute giver mulighed for at opdatere en enkelt HashTag.



POST /api/v1/hash-tags 
Denne rute giver mulighed for at tilføje en enkelt HashTag.



POST /api/v1/hash-tags/bulk 
Denne rute giver mulighed for at tilføje op til 100 HashTag-objekter på én gang.



DELETE /api/v1/hash-tags/:tag 
Denne rute giver mulighed for at fjerne en HashTag via den angivne tag.
Bemærk at medmindre automatisk HashTag-oprettelse er deaktiveret, kan hashtags genskabes af en bruger, der angiver hashtagget, når de kommenterer.



Moderatorstruktur 
Et Moderator-objekt repræsenterer konfiguration for en moderator.
Der er tre typer moderatorer:
- Administratorbrugere, der har
isCommentModeratorAdmin-flaget. - SSO-brugere med
isCommentModeratorAdmin-flaget. - Almindelige kommentatorer eller FastComments.com-brugere, der er inviteret som Moderatorer.
Moderator-strukturen bruges til at repræsentere Moderationstilstanden for anvendelsestilfælde 3.
Hvis du vil invitere en bruger til at være moderator via API'et, brug Moderator API'et ved at oprette en Moderator og invitere dem.
Hvis brugeren ikke har en FastComments.com-konto, vil invitations-e-mailen hjælpe dem med at blive sat op. Hvis de allerede har en konto, vil de
få moderationsadgang til din tenant, og Moderator-objektets userId vil blive opdateret til at pege på deres bruger. Du vil ikke have API-
adgang til deres bruger, da den i dette tilfælde tilhører dem selv og administreres af FastComments.com.
Hvis du kræver fuld styring af brugerens konto, anbefaler vi enten at bruge SSO eller tilføje dem som en Tenant Bruger og
derefter tilføje et Moderator-objekt for at spore deres statistikker.
Moderator-strukturen kan bruges som en statistik-sporingsmekanisme for anvendelsestilfælde 1 og 2. Efter oprettelse af brugeren, tilføj et Moderator-
objekt med deres userId defineret, og deres statistikker vil blive sporet på Kommentarmoderatorer-siden.
Strukturen for Moderator-objektet er som følger:

GET /api/v1/moderators/:id 
Denne rute returnerer en enkelt moderator efter deres id.



GET /api/v1/moderators 
Denne API bruger paginering, leveret af skip query-parameteren. Moderatorer returneres i sider af 100, sorteret efter createdAt og id.
Prisen er baseret på antallet af returnerede moderatorer, koste 1 kredit pr. 10 returnerede moderatorer.



PATCH /api/v1/moderators/:id 
Denne API-endpoint giver mulighed for at opdatere en Moderator efter id.
Opdatering af en Moderator har følgende begrænsninger:
- Følgende værdier må ikke angives ved opdatering af en
Moderator:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Når et
userIder angivet, skal den bruger eksistere. - Når et
userIder angivet, skal de tilhøre det sammetenantId, der er angivet i query-parametre. - To moderatorer i den samme tenant kan ikke tilføjes med den samme
email. - Du må ikke ændre det
tenantId, der er tilknyttet enModerator.



POST /api/v1/moderators 
Denne rute giver mulighed for at tilføje en enkelt Moderator.
Oprettelse af en Moderator har følgende begrænsninger:
- Et
nameogemailskal altid angives. EtuserIder valgfrit. - Følgende værdier må ikke angives ved oprettelse af en
Moderator:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Når et
userIder angivet, skal den bruger eksistere. - Når et
userIder angivet, skal de tilhøre det sammetenantId, der er angivet i query-parametre. - To moderatorer i den samme tenant kan ikke tilføjes med den samme
email.
Vi kan oprette en Moderator for en bruger, hvor vi kun kender e-mailen:

Eller vi kan oprette en Moderator for en bruger, der tilhører vores tenant, for at spore deres moderationsstatistikker:



POST /api/v1/moderators/:id/send-invite 
Denne rute giver mulighed for at invitere en enkelt Moderator.
Følgende begrænsninger gælder for at sende en invitations-e-mail til en Moderator:
Moderatoren skal allerede eksistere.fromNamemå ikke være længere end100 tegn.
Bemærkninger:
- Hvis en bruger med den angivne e-mail allerede eksisterer, vil de blive inviteret til at moderere din tenants kommentarer.
- Hvis en bruger med den angivne e-mail ikke eksisterer, vil invitationslinket guide dem gennem oprettelse af deres konto.
- Invitationen udløber efter
30 dage.
Vi kan oprette en Moderator for en bruger, hvor vi kun kender e-mailen:

Dette vil sende en e-mail som Bob hos TenantName inviterer dig til at være moderator...


DELETE /api/v1/moderators/:id 
Denne rute giver mulighed for at fjerne en Moderator efter id.



Notifikationstællingsstruktur 
Et NotificationCount-objekt repræsenterer antallet af ulæste notifikationer og metadata for en bruger.
Hvis der ikke er nogen ulæste notifikationer, vil der ikke være en NotificationCount for brugeren.
NotificationCount-objekter oprettes automatisk og kan ikke oprettes via API'et. De udløber også efter et år.
Du kan rydde en brugers antal ulæste notifikationer ved at slette deres NotificationCount.
Strukturen for NotificationCount-objektet er som følger:

GET /api/v1/notification-count/:user_id 
Denne rute returnerer en enkelt NotificationCount efter bruger-id. Med SSO er bruger-id'et i formatet <tenant id>:<user id>.
Hvis der ikke er nogen ulæste notifikationer, vil der ikke være en NotificationCount - så du vil få en 404.
Dette er forskelligt fra notifications/count ved at det er meget hurtigere, men tillader ikke filtrering.



DELETE /api/v1/notification-count/:user_id 
Denne rute sletter en enkelt NotificationCount efter bruger-id. Med SSO er bruger-id'et i formatet <tenant id>:<user id>.
Dette vil rydde brugerens antal ulæste notifikationer (den røde klokke i kommentar-widget'en vil falme ud, og tælleren forsvinder).



Notifikationsstruktur 
Et Notification-objekt repræsenterer en notifikation for en bruger.
Notification-objekter oprettes automatisk og kan ikke oprettes via API'et. De udløber også efter et år.
Notifikationer kan ikke slettes. De kan dog opdateres for at sætte viewed til false, og du kan forespørge efter viewed.
En bruger kan også fravælge notifikationer for en specifik kommentar ved at sætte optedOut i notifikationen til true. Du kan tilvælge igen ved at sætte den til false.
Der er forskellige notifikationstyper - tjek relatedObjectType og type.
Måderne notifikationer oprettes på er ret fleksible og kan udløses af mange scenarier (se NotificationType).
Per dags dato indebærer eksistensen af en Notification faktisk ikke, at en e-mail sendes eller bør sendes. I stedet bruges notifikationerne
til notifikationsfeedet og relaterede integrationer.
Strukturen for Notification-objektet er som følger:

GET /api/v1/notifications 
Denne rute returnerer op til 30 Notification-objekter sorteret efter createdAt, nyeste først.
Du kan filtrere efter userId. Med SSO er bruger-id'et i formatet <tenant id>:<user id>.



GET /api/v1/notifications/count 
Denne rute returnerer et objekt, der indeholder antallet af notifikationer under en count-parameter.
Den er langsommere end /notification-count/ og dobbelt så mange kreditter, men tillader filtrering på flere dimensioner.
Du kan filtrere efter de samme parametre som /notifications-endpointet som userId. Med SSO er bruger-id'et i formatet <tenant id>:<user id>.




PATCH /api/v1/notifications/:id 
Denne API-endpoint giver mulighed for at opdatere en Notification efter id.
Opdatering af en Notification har følgende begrænsninger:
- Du kan kun opdatere følgende felter:
viewedoptedOut



Sidestruktur 
Et Page-objekt repræsenterer den side, som mange kommentarer kan tilhøre. Dette forhold defineres af
urlId.
En Page gemmer information såsom sidetitlen, kommentarantal og urlId.
Strukturen for Page-objektet er som følger:

GET /api/v1/pages 
Du kan i øjeblikket kun hente alle sider (eller en enkelt side via /by-url-id) tilknyttet din konto. Hvis du ønsker mere finmasket søgning, kontakt os.



Nyttigt Tip
Comment API'et kræver et urlId. Du kan kalde Pages API'et først for at se, hvordan de tilgængelige urlId-værdier
ser ud.
GET /api/v1/pages/by-url-id 
Individuelle sider kan hentes via deres tilsvarende urlId. Dette kan være nyttigt til at slå sidetitler eller kommentarantal op.



Nyttigt Tip
Husk at URI-kode værdier som urlId.
PATCH /api/v1/pages/:id 
Denne rute giver mulighed for at opdatere en enkelt Page. De tilsvarende kommentarer vil blive opdateret.



Bemærkning
Nogle parametre i Page-objektet opdateres automatisk. Disse er tælle- og titelattributter. Tællere kan ikke opdateres
via API'et, da de er beregnede værdier. Sidens title kan sættes via API'et, men vil blive overskrevet, hvis kommentar-widget'en bruges på
en side med det samme urlId og en anden sidetitel.
POST /api/v1/pages 
Denne API-endpoint giver mulighed for at oprette sider.
Et almindeligt anvendelsestilfælde er adgangskontrol.
Bemærkninger:
- Hvis du har kommenteret på en kommentartråd eller kaldt API'et for at oprette en
Comment, har du allerede oprettet etPage-objekt! Du kan prøve at hente det via/by-url-idPage-ruten ved at angive det sammeurlId, som blev sendt til kommentar-widget'en. Page-strukturen indeholder nogle beregnede værdier. I øjeblikket er dissecommentCountogrootCommentCount. De udfyldes automatisk og kan ikke sættes af API'et. Forsøg på at gøre det vil få API'et til at returnere en fejl.



DELETE /api/v1/pages/:id 
Denne rute giver mulighed for at fjerne en enkelt side efter id.
Bemærk at interaktion med kommentar-widget'en for en side med det samme urlId simpelthen vil genskabe Page problemfrit.



Ventende webhook-hændelse-struktur 
Et PendingWebhookEvent-objekt repræsenterer en webhook-begivenhed i kø, der afventer.
PendingWebhookEvent-objekter oprettes automatisk og kan ikke oprettes manuelt via API'et. De udløber også efter et år.
De kan slettes, hvilket fjerner opgaven fra køen.
Der er forskellige begivenhedstyper - tjek eventType (OutboundSyncEventType) og type (OutboundSyncType).
Et almindeligt anvendelsestilfælde for dette API er at implementere brugerdefineret overvågning. Du vil måske kalde /count-endpointet periodisk
for at polle det udestående antal for givne filtre.
Strukturen for PendingWebhookEvent-objektet er som følger:

GET /api/v1/pending-webhook-events 
Denne rute returnerer en liste over afventende webhook-begivenheder under en pendingWebhookEvents-parameter.
Denne API bruger paginering, leveret af skip-parameteren. PendingWebhookEvents returneres i sider af 100, sorteret efter createdAt nyeste først.



GET /api/v1/pending-webhook-events/count 
Denne rute returnerer et objekt, der indeholder antallet af afventende webhook-begivenheder under en count-parameter.
Du kan filtrere efter de samme parametre som /pending-webhook-events-endpointet



DELETE /api/v1/pending-webhook-events/:id 
Denne rute tillader sletning af en enkelt PendingWebhookEvent.
Hvis du har brug for massesletning, kald GET API'et med paginering og kald derefter dette API sekventielt.



SSO-brugerstruktur 
FastComments giver en letanvendelig SSO-løsning. Opdatering af en brugers information med den HMAC-baserede integration er så enkelt som at have brugeren indlæse siden med en opdateret payload.
Det kan dog være ønskeligt at administrere en bruger uden for det flow for at forbedre konsistensen af din applikation.
SSO User API'et giver en måde at CRUD objekter, som vi kalder SSOUsers. Disse objekter er forskellige fra almindelige Users og holdes adskilt for typesikkerhed.
Strukturen for SSOUser-objektet er som følger:

Fakturering for SSO-brugere
SSO-brugere faktureres forskelligt baseret på deres tilladelsesflags:
- Almindelige SSO-brugere: Brugere uden admin- eller moderatortilladelser faktureres som almindelige SSO-brugere
- SSO-administratorer: Brugere med
isAccountOwnerellerisAdminAdminflags faktureres separat som SSO-administratorer (samme sats som almindelige tenant-administratorer) - SSO-moderatorer: Brugere med
isCommentModeratorAdminflag faktureres separat som SSO-moderatorer (samme sats som almindelige moderatorer)
Vigtigt: For at forhindre dobbeltfakturering deduplikerer systemet automatisk SSO-brugere mod almindelige tenant-brugere og moderatorer efter e-mailadresse. Hvis en SSO-bruger har samme e-mail som en almindelig tenant-bruger eller moderator, vil de ikke blive faktureret to gange.
Adgangskontrol
Brugere kan opdeles i grupper. Dette er hvad groupIds-feltet er til, og det er valgfrit.
@Omtaler
Som standard vil @mentions bruge username til at søge efter andre sso-brugere, når @-tegnet skrives. Hvis displayName bruges, vil resultater, der matcher
username, blive ignoreret, når der er et match for displayName, og @mention søgeresultaterne vil bruge displayName.
Abonnementer
Med FastComments kan brugere abonnere på en side ved at klikke på klokkeikonet i kommentar-widget'en og klikke Abonner.
Med en almindelig bruger sender vi dem notifikations-e-mails baseret på deres notifikationsindstillinger.
Med SSO-brugere opdeler vi dette af hensyn til bagudkompatibilitet. Brugere vil kun få sendt disse yderligere abonnementsnotifikations-
e-mails, hvis du sætter optedInSubscriptionNotifications til true.
Badges
Du kan tildele badges til SSO-brugere ved hjælp af badgeConfig-egenskaben. Badges er visuelle indikatorer, der vises ved siden af en brugers navn i kommentarer.
badgeIds- Et array af badge-ID'er til at tildele brugeren. Disse skal være gyldige badge-ID'er oprettet i din FastComments-konto. Begrænset til 30 badges.override- Hvis sand, vil alle eksisterende badges, der vises på kommentarer, blive erstattet med de angivne. Hvis falsk eller udeladt, vil de angivne badges blive tilføjet til eventuelle eksisterende badges.update- Hvis sand, vil badge-visningsegenskaber blive opdateret fra tenant-konfigurationen, når brugeren logger ind.
GET /api/v1/sso-users 
Denne rute returnerer SSO-brugere i sider af 100. Paginering leveres via skip-parameteren. Brugere sorteres efter deres signUpDate og id.



GET /api/v1/sso-users/by-id/:id 
Denne rute returnerer en enkelt SSO-bruger efter deres id.



GET /api/v1/sso-users/by-email/:email 
Denne rute returnerer en enkelt SSO-bruger efter deres e-mail.



PATCH /api/v1/sso-users/:id 
Denne rute giver mulighed for at opdatere en enkelt SSO-bruger.



POST /api/v1/sso-users 
Denne rute giver mulighed for at oprette en enkelt SSO-bruger.
Forsøg på at oprette to brugere med det samme ID vil resultere i en fejl.

I dette eksempel angiver vi groupIds til adgangskontrol, men dette er valgfrit.


Integrationsbemærkning
Data sendt af API'et kan tilsidesættes simpelthen ved at sende en anden SSO User HMAC payload. For eksempel, hvis du sætter et brugernavn via API'et, men derefter sender et andet via SSO-flowet ved sideindlæsning, vil vi automatisk opdatere deres brugernavn.
Vi vil ikke opdatere brugerparametre i dette flow, medmindre du eksplicit angiver dem eller sætter dem til null (ikke undefined).
PUT /api/v1/sso-users/:id 
Denne rute giver mulighed for at opdatere en enkelt SSO-bruger.

I dette eksempel angiver vi groupIds til adgangskontrol, men dette er valgfrit.


DELETE /api/v1/sso-users/:id 
Denne rute giver mulighed for at fjerne en enkelt SSO-bruger efter deres id.
Bemærk at indlæsning af kommentar-widget'en igen med en payload for denne bruger simpelthen vil genskabe brugeren problemfrit.
Sletning af brugerens kommentarer er mulig via deleteComments query-parameteren. Bemærk at hvis dette er sandt:
- Alle brugerens kommentarer vil blive slettet live.
- Alle underordnede (nu forældreløse) kommentarer vil blive slettet eller anonymiseret baseret på hver kommentars tilknyttede sidekonfiguration. For eksempel, hvis trådsletningstilstand er "anonymize", så forbliver svar, og brugerens kommentarer vil blive anonymiseret. Dette gælder kun, når
commentDeleteModeerRemove(standardværdien). creditsCostbliver2.
Anonymiserede Kommentarer
Du kan beholde brugerens kommentarer, men blot anonymisere dem ved at sætte commentDeleteMode=1.
Hvis brugerens kommentarer er anonymiseret, så sættes følgende værdier til null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted og isDeletedUser sættes til true.
Ved rendering vil kommentar-widget'en bruge DELETED_USER_PLACEHOLDER (standard: "[deleted]") for brugerens navn og DELETED_CONTENT_PLACEHOLDER for kommentaren. Disse kan tilpasses via Widget Customization UI.
Eksempler



Abonnementsstruktur 
Et Subscription-objekt repræsenterer et abonnement for en bruger.
Subscription-objekter oprettes, når en bruger klikker på notifikationsklokken i kommentar-widget'en og klikker "Abonner på denne side".
Abonnementer kan også oprettes via API'et.
At have et Subscription-objekt medfører, at Notification-objekter genereres, og e-mails sendes, når nye kommentarer efterlades på roden af den tilknyttede side,
som Subscription er for. Afsendelse af e-mails afhænger af brugertypen. For almindelige brugere afhænger dette af optedInNotifications. For SSO-brugere afhænger dette af optedInSubscriptionNotifications. Bemærk at nogle applikationer måske ikke har konceptet om en web-tilgængelig side, i hvilket tilfælde du blot skal sætte urlId til
id'et for det element, du abonnerer på (samme værdi for urlId som du ville sende til kommentar-widget'en).
Strukturen for Subscription-objektet er som følger:

GET /api/v1/subscriptions/:id 
Denne rute returnerer op til 30 Subscription-objekter sorteret efter createdAt, nyeste først.
Du kan filtrere efter userId. Med SSO er bruger-id'et i formatet <tenant id>:<user id>.



POST /api/v1/subscriptions 
Dette API-endpoint giver mulighed for at oprette et Subscription. Bemærk at en bruger kun kan have ét abonnement pr. side, da flere er overflødige, og forsøg på
at oprette mere end ét abonnement for den samme bruger til den samme side vil resultere i en fejl.
Oprettelse af et abonnement vil resultere i, at Notification-objekter oprettes, når en ny kommentar efterlades på roden af det abonnerede urlId (når kommentar parentId er null).



DELETE /api/v1/subscriptions/:id 
Denne rute sletter et enkelt Subscription-objekt efter id.



Lejers daglige forbrug - struktur 
Et TenantDailyUsage-objekt repræsenterer forbruget for en tenant på en given dag. Hvis der ikke var nogen aktivitet for en given tenant på en given
dag, vil den dag ikke have et TenantDailyUsage-objekt.
TenantDailyUsage-objektet er ikke realtid og kan være minutter efter det faktiske forbrug.
Strukturen for TenantDailyUsage-objektet er som følger:

GET /api/v1/tenant-daily-usage 
Denne rute giver mulighed for at søge efter forbruget for en tenant efter år, måned og dag. Op til 365 objekter kan returneres, og omkostningen er 1 api-kredit pr. 10 objekter.
Svarobjekter sorteres efter datoen de er oprettet (de ældste først).



Lejerstruktur 
Tenant definerer en FastComments.com-kunde. De kan oprettes via API'et af tenants med white labeling adgang. White labeled tenants
kan ikke oprette andre white labeled tenants (kun ét niveau af indlejring er tilladt).
Strukturen for Tenant-objektet er som følger:

GET /api/v1/tenants/:id 
Denne rute returnerer en enkelt Tenant efter id.



GET /api/v1/tenants 
Dette API returnerer tenants, der administreres af din tenant.
Paginering leveres af skip-forespørgselsparameteren. Tenants returneres i sider af 100, sorteret efter signUpDate og id.
Omkostningen er baseret på antallet af returnerede tenants og koster 1 kredit pr. 10 returnerede tenants.

Du kan definere meta-parametre på Tenant-objekterne og forespørge efter matchende tenants. For eksempel, for nøglen someKey og meta-værdien some-value, kan vi
konstruere et JSON-objekt med dette nøgle/værdi-par og derefter URI-kode det som en forespørgselsparameter for at filtrere:



POST /api/v1/tenants 
Denne rute giver mulighed for at tilføje en enkelt Tenant.
Oprettelse af en Tenant har følgende begrænsninger:
- Et
nameer påkrævet. domainConfigurationer påkrævet.- Følgende værdier må ikke angives ved oprettelse af en
Tenant:hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmount
signUpDatemå ikke være i fremtiden.namemå ikke være længere end200 tegn.emailmå ikke være længere end300 tegn.emailskal være unik på tværs af alle FastComments.com tenants.- Du kan ikke oprette tenants, hvis den overordnede tenant ikke har en gyldig
TenantPackagedefineret.- Hvis din tenant blev oprettet via FastComments.com, bør dette ikke være et problem.
- Du kan ikke oprette flere tenants end defineret under
maxWhiteLabeledTenantsi din pakke. - Du skal angive
tenantId-forespørgselsparameteren, som er id'et for dinoverordnede tenantmed white labeling aktiveret.
Vi kan oprette en Tenant med kun få parametre:



PATCH /api/v1/tenants/:id 
Dette API-endpoint giver mulighed for at opdatere en Tenant efter id.
Opdatering af en Tenant har følgende begrænsninger:
- Følgende værdier kan ikke opdateres:
hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmountmanagedByTenantId
signUpDatemå ikke være i fremtiden.namemå ikke være længere end200 tegn.emailmå ikke være længere end300 tegn.emailskal være unik på tværs af alle FastComments.com tenants.- Når du sætter
billingInfoValidtiltrue, skalbillingInfoangives i den samme anmodning. - Du kan ikke opdatere
packageIdtilknyttet din egen tenant. - Du kan ikke opdatere
paymentFrequencytilknyttet din egen tenant.



DELETE /api/v1/tenants/:id 
Denne rute giver mulighed for fjernelse af en Tenant og alle tilknyttede data (brugere, kommentarer osv.) efter id.
Følgende begrænsninger eksisterer omkring fjernelse af tenants:
- Tenant skal være din egen eller en white label tenant, som du administrerer.
sure-forespørgselsparameteren skal være sat tiltrue.



Lejerpakke-struktur 
TenantPackage definerer pakkeinformation tilgængelig for en Tenant. En tenant kan have mange pakker tilgængelige, men kun
én i brug på et givent tidspunkt.
En Tenant kan ikke bruges til nogen produkter, før dens packageId peger på en gyldig TenantPackage.
Der er to typer TenantPackage-objekter:
- Fastpris-pakker - hvor
hasFlexPricinger false. - Fleksibel prissætning - hvor
hasFlexPricinger true.
I begge tilfælde defineres grænser på kontoen ved hjælp af pakken, dog med Flex opkræves tenant en basispris plus
hvad de brugte, defineret af flex*-parametrene.
En tenant kan have flere tenant-pakker og have mulighed for selv at ændre pakken fra Faktureringsinformationssiden.
Hvis du selv vil håndtere fakturering for tenants, skal du stadig definere en pakke for hver tenant for at definere deres grænser. Sæt blot billingHandledExternally til true på Tenant, og de
vil ikke kunne ændre deres faktureringsinformation eller aktive pakke selv.
Du kan ikke oprette pakker med højere grænser end den overordnede tenant.
Strukturen for TenantPackage-objektet er som følger:

GET /api/v1/tenant-packages/:id 
Denne rute returnerer en enkelt Tenant Package efter id.



GET /api/v1/tenant-packages 
Dette API bruger paginering, leveret af skip-forespørgselsparameteren. TenantPackages returneres i sider af 100, sorteret efter createdAt og id.
Omkostningen er baseret på antallet af returnerede tenant-pakker og koster 1 kredit pr. 10 returnerede tenant-pakker.



POST /api/v1/tenant-packages 
Denne rute giver mulighed for at tilføje en enkelt TenantPackage.
Oprettelse af en TenantPackage har følgende begrænsninger:
- Følgende parametre er påkrævet:
nametenantIdmonthlyCostUSD- Kan være null.yearlyCostUSD- Kan være null.maxMonthlyPageLoadsmaxMonthlyAPICreditsmaxMonthlyCommentsmaxConcurrentUsersmaxTenantUsersmaxSSOUsersmaxModeratorsmaxDomainshasDebrandingforWhoTextfeatureTaglineshasFlexPricing- Hvis true, så er alleflex*-parametre påkrævet.
namemå ikke være længere end50 tegn.- Hvert
forWhoText-element må ikke være længere end200 tegn. - Hvert
featureTaglines-element må ikke være længere end100 tegn. TenantPackageskal være "mindre" end den overordnede tenant. For eksempel skal allemax*-parametre have lavere værdier end den overordnede tenant.- En white labeled tenant kan have maksimalt fem pakker.
- Kun tenants med white labeling adgang kan oprette en
TenantPackage. - Du kan ikke tilføje pakker til din egen tenant. :)
Vi kan oprette en TenantPackage som følger:



PATCH /api/v1/tenant-packages/:id 
Dette API-endpoint giver mulighed for at opdatere en TenantPackage efter id.
Opdatering af en TenantPackage har følgende begrænsninger:
- Hvis du sætter
hasFlexPricingtil true, så er alleflex*-parametre påkrævet i den samme anmodning. namemå ikke være længere end50 tegn.- Hvert
forWhoText-element må ikke være længere end200 tegn. - Hvert
featureTaglines-element må ikke være længere end100 tegn. TenantPackageskal være "mindre" end den overordnede tenant. For eksempel skal allemax*-parametre have lavere værdier end den overordnede tenant.- Du kan ikke ændre
tenantIdtilknyttet enTenantPackage.



DELETE /api/v1/tenant-packages/:id 
Denne rute giver mulighed for fjernelse af en TenantPackage efter id.
Du kan ikke fjerne en TenantPackage, der er i brug (en tenants packageId peger på pakken). Opdater Tenant først.



Lejerbrugerstruktur 
TenantUser definerer en User, som administreres af en specifik tenant. Deres konto er under fuld kontrol af den tenant,
de er associeret med, og deres konto kan opdateres eller slettes via UI'et eller API'et.
Tenant-brugere kan være administratorer med alle tilladelser og adgang til Tenant, eller de kan være begrænset til specifikke tilladelser til
at moderere kommentarer, tilgå API-nøgler osv.
Strukturen for TenantUser-objektet er som følger:

GET /api/v1/tenant-users/:id 
Denne rute returnerer en enkelt TenantUser efter id.



GET /api/v1/tenant-users 
Dette API bruger paginering, leveret af skip-forespørgselsparameteren. TenantUsers returneres i sider af 100, sorteret efter signUpDate, username og id.
Omkostningen er baseret på antallet af returnerede tenant-brugere og koster 1 kredit pr. 10 returnerede tenant-brugere.



POST /api/v1/tenant-users 
Denne rute giver mulighed for at tilføje en enkelt TenantUser.
Oprettelse af en TenantUser har følgende begrænsninger:
- Et
usernameer påkrævet. - En
emailer påkrævet. signUpDatemå ikke være i fremtiden.localeskal være på listen over Understøttede Locales.usernameskal være unikt på tværs af hele FastComments.com. Hvis dette er et problem, foreslår vi at bruge SSO i stedet.emailskal være unikt på tværs af hele FastComments.com. Hvis dette er et problem, foreslår vi at bruge SSO i stedet.- Du kan ikke oprette flere tenant-brugere end defineret under
maxTenantUsersi din pakke.
Vi kan oprette en TenantUser som følger



POST /api/v1/tenant-users/:id/send-login-link 
Denne rute giver mulighed for at sende et login-link til en enkelt TenantUser.
Nyttigt ved batch-oprettelse af brugere uden at skulle instruere dem i, hvordan man logger ind på FastComments.com. Dette sender dem bare et "magic link" til login, der
udløber efter 30 dage.
Følgende begrænsninger eksisterer for at sende et login-link til en TenantUser:
TenantUserskal allerede eksistere.- Du skal have adgang til at administrere den
Tenant, somTenantUsertilhører.
Vi kan sende et login-link til en TenantUser som følger:

Dette sender en e-mail som Bob hos TenantName inviterer dig til at være moderator...


PATCH /api/v1/tenant-users/:id 
Denne rute giver mulighed for at opdatere en enkelt TenantUser.
Opdatering af en TenantUser har følgende begrænsninger:
signUpDatemå ikke være i fremtiden.localeskal være på listen over Understøttede Locales.usernameskal være unikt på tværs af hele FastComments.com. Hvis dette er et problem, foreslår vi at bruge SSO i stedet.emailskal være unikt på tværs af hele FastComments.com. Hvis dette er et problem, foreslår vi at bruge SSO i stedet.- Du kan ikke opdatere
tenantIdfor en bruger.
Vi kan oprette en TenantUser som følger



DELETE /api/v1/tenant-users/:id 
Denne rute giver mulighed for fjernelse af en TenantUser efter id.
Sletning af brugerens kommentarer er mulig via deleteComments-forespørgselsparameteren. Bemærk at hvis dette er true:
- Alle brugerens kommentarer vil blive slettet live.
- Alle underordnede (nu forældreløse) kommentarer vil blive slettet eller anonymiseret baseret på hver kommentars tilknyttede sidekonfiguration. For eksempel, hvis trådsletningsmode er "anonymiser", vil svar forblive, og brugerens kommentarer vil blive anonymiseret. Dette gælder kun når
commentDeleteModeerRemove(standardværdien). creditsCostbliver2.
Anonymiserede Kommentarer
Du kan bevare brugerens kommentarer, men blot anonymisere dem ved at sætte commentDeleteMode=1.
Hvis brugerens kommentarer anonymiseres, sættes følgende værdier til null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted og isDeletedUser sættes til true.
Ved rendering vil kommentar-widget'en bruge DELETED_USER_PLACEHOLDER (standard: "[deleted]") for brugerens navn og DELETED_CONTENT_PLACEHOLDER for kommentaren. Disse kan tilpasses via Widget-tilpasnings-UI'et.
Eksempler



Brugerstruktur 
User er et objekt, der repræsenterer en mest-almindelig-fællesnævner for alle brugere.
Husk at hos FastComments har vi en masse forskellige anvendelsestilfælde for brugere:
- Sikker SSO
- Simpel SSO
- Tenant-brugere (For eksempel: Administratorer)
- Kommentatorer
Dette API er til Kommentatorer og brugere oprettet via Simpel SSO. Grundlæggende kan enhver bruger oprettet
gennem din side tilgås via dette API. Tenant-brugere kan også hentes på denne måde, men du får mere information ved at interagere med /tenant-users/ API'et.
For Sikker SSO brug venligst /sso-users/ API'et.
Du kan ikke opdatere disse typer brugere. De oprettede deres konto gennem din side, så vi giver nogle grundlæggende skrivebeskyttet adgang, men
du kan ikke foretage ændringer. Hvis du vil have denne type flow - skal du opsætte Sikker SSO.
Strukturen for User-objektet er som følger:

GET /api/v1/users/:id 
Denne rute returnerer en enkelt User efter id.



Stemmestruktur 
Et Vote-objekt repræsenterer en stemme afgivet af en bruger.
Forholdet mellem kommentarer og stemme defineres via commentId.
Strukturen for Vote-objektet er som følger:

GET /api/v1/votes 
Stemmer skal hentes via urlId.
Typer af Stemmer
Der er tre typer stemmer:
- Autentificerede Stemmer, som anvendes på den tilsvarende kommentar. Du kan oprette disse via dette API.
- Autentificerede Stemmer, som afventer verifikation, og derfor endnu ikke er anvendt på kommentaren. Disse oprettes, når en bruger bruger FastComments.com's log ind for at stemme-mekanisme.
- Anonyme Stemmer, som anvendes på den tilsvarende kommentar. Disse oprettes sammen med anonym kommentering.
Disse returneres i separate lister i API'et for at reducere forvirring.



Bemærkninger om Anonyme Stemmer
Bemærk at anonyme stemmer oprettet via dette API vil fremgå i appliedAuthorizedVotes-listen. De betragtes som autoriserede, da de blev oprettet via API'et med en API-nøgle.
appliedAnonymousVotes-strukturen er til stemmer oprettet uden en e-mail, API-nøgle osv.
GET /api/v1/votes/for-user 
Giver mulighed for at hente stemmer afgivet af en bruger på et givent urlId. Tager et userId, som kan være enhver FastComments.com eller SSO User.
Dette er nyttigt, hvis du vil vise, om en bruger har stemt på en kommentar. Når du henter kommentarer, skal du blot kalde dette API på samme tid for brugeren med det
samme urlId.
Hvis du bruger anonym stemmeafgivelse, skal du i stedet sende anonUserId.


Bemærk at anonyme stemmer vil fremgå i appliedAuthorizedVotes-listen. De betragtes som autoriserede, da de blev oprettet via API'et med en API-nøgle.


POST /api/v1/votes 
Denne rute giver mulighed for at tilføje en enkelt autoriseret Vote. Stemmer kan være up (+1) eller down (-1).




Oprettelse af Anonyme Stemmer
Anonyme stemmer kan oprettes ved at sætte anonUserId i forespørgselsparametrene i stedet for userId.
Dette id behøver ikke at svare til et brugerobjekt nogen steder (deraf anonymt). Det er simpelthen en identifikator for sessionen, så du kan hente stemmer igen i samme session for at tjekke, om der er stemt på en kommentar.
Hvis du ikke har noget som "anonyme sessioner" som FastComments har - kan du blot sætte dette til et tilfældigt ID, som en UUID (selvom vi sætter pris på mindre identifikatorer for at spare plads).
Andre Bemærkninger
- Dette API overholder tenant-niveau indstillinger. For eksempel, hvis du deaktiverer afstemning for en given side, og du forsøger at oprette en stemme via API'et, vil det fejle med fejlkode
voting-disabled. - Dette API er live som standard.
- Dette API vil opdatere
votesfor den tilsvarendeComment.
DELETE /api/v1/votes/:id 
Denne rute giver mulighed for at slette en enkelt Vote.



Bemærkninger:
- Dette API overholder tenant-niveau indstillinger. For eksempel, hvis du deaktiverer afstemning for en given side, og du forsøger at oprette en stemme via API'et, vil det fejle med fejlkode
voting-disabled. - Dette API er live som standard.
- Dette API vil opdatere
votesfor den tilsvarendeComment.
Domænekonfigurationsstruktur 
Et DomainConfig-objekt repræsenterer konfiguration for et domæne for en tenant.
Strukturen for DomainConfig-objektet er som følger:


Til Autentificering
Domænekonfiguration bruges til at bestemme, hvilke websteder der kan hoste FastComments-widget'en for din konto. Dette er en grundlæggende form for autentificering, hvilket betyder, at tilføjelse eller fjernelse af domænekonfigurationer kan påvirke tilgængeligheden af din FastComments-installation i produktion.
Fjern eller opdater ikke domain-egenskaben for en Domain Config for et domæne, der i øjeblikket er i brug, medmindre deaktivering af det domæne er tilsigtet.
Dette har samme adfærd som at fjerne et domæne fra /auth/my-account/configure-domains.
Bemærk også, at fjernelse af et domæne fra Mine Domæner-brugergrænsefladen vil fjerne enhver tilsvarende konfiguration for det domæne, der måtte være blevet tilføjet via denne brugergrænseflade.
Til E-mail-tilpasning
Afmeldingslinket i e-mail-sidefoden og et-klik-afmelding-funktionen, der tilbydes af mange e-mail-klienter, kan konfigureres via denne API ved at definere henholdsvis footerUnsubscribeURL og emailHeaders.
Til DKIM
Efter at have defineret dine DKIM DNS-poster, skal du blot opdatere DomainConfig med din DKIM-konfiguration ved hjælp af den definerede struktur.
GET /api/v1/domain-configs 
Denne API giver mulighed for at hente alle DomainConfig-objekter for en tenant.



GET /api/v1/domain-configs/:domain 
Individuelle DomainConfigs kan hentes via deres tilsvarende domain.



POST /api/v1/domain-configs 
Denne API-endpoint giver mulighed for at oprette domænekonfigurationer.
Tilføjelse af konfiguration for et domæne autoriserer det domæne til FastComments-kontoen.
Almindelige anvendelser af denne API er indledende opsætning, hvis mange domæner ønskes tilføjet, eller tilpasset konfiguration til afsendelse af e-mails.



PATCH /api/v1/domain-configs/:domain 
Denne API-endpoint giver mulighed for at opdatere en domænekonfiguration ved kun at angive domænet og attributten, der skal opdateres.



PUT /api/v1/domain-configs/:domain 
Denne API-endpoint giver mulighed for at erstatte en domænekonfiguration.



DELETE /api/v1/domain-configs/:domain 
Denne rute giver mulighed for at fjerne en enkelt DomainConfig efter id.
- Bemærk: Fjernelse af en
DomainConfigvil afautorisere det domæne fra at bruge FastComments. - Bemærk: Gentilføjelse af et domæne via brugergrænsefladen vil genskabe objektet (med kun
domainudfyldt).



Spørgsmålskonfigurationsstruktur 
FastComments giver en måde at konstruere spørgsmål og aggregere deres resultater. Et eksempel på et spørgsmål (herefter kaldet QuestionConfig)
kunne være en stjernebedømmelse, en skyder eller et NPS-spørgsmål (bestemt via type).
Spørgsmålsdata kan aggregeres individuelt, sammen, over tid, samlet, efter side og så videre.
Frameworket har alle de nødvendige funktioner til at bygge klientside-widgets (med din server foran dette API), admin-dashboards og rapporteringsværktøjer.
Først skal vi definere en QuestionConfig. Strukturen er som følger:

GET /api/v1/question-configs 
Denne rute returnerer op til 100 QuestionConfig-objekter ad gangen, pagineret. Prisen er 1 pr. hver 100 objekter. De er
sorteret efter spørgsmålstekst stigende (question-felt).



GET /api/v1/question-configs/:id 
Denne rute returnerer en enkelt QuestionConfig efter dens id.



POST /api/v1/question-configs 
Denne API-endpoint giver mulighed for at oprette en QuestionConfig.



PATCH /api/v1/question-configs/:id 
Denne rute giver mulighed for at opdatere en enkelt QuestionConfig.
Følgende struktur repræsenterer alle værdier, der kan ændres:




DELETE /api/v1/question-configs/:id 
Denne rute giver mulighed for at fjerne en QuestionConfig efter id.
Dette vil slette alle tilsvarende spørgsmålsresultater (men ikke kommentarerne). Dette er en del af den høje kreditomkostning.



Spørgsmålresultatstruktur 
For at gemme resultater for spørgsmål opretter du et QuestionResult. Du kan derefter aggregere spørgsmålsresultater og også
knytte dem til kommentarer til rapporteringsformål.

GET /api/v1/question-results 
Denne rute returnerer op til 1000 QuestionResults-objekter ad gangen, pagineret. Prisen er 1 pr. hver 100 objekter. De er
sorteret efter createdAt, stigende. Du kan filtrere efter forskellige parametre.



GET /api/v1/question-results/:id 
Denne rute returnerer et enkelt QuestionResult efter dets id.



POST /api/v1/question-results 
Denne API-endpoint giver mulighed for at oprette et QuestionResult.



PATCH /api/v1/question-results/:id 
Denne rute giver mulighed for at opdatere et enkelt QuestionResult.
Følgende struktur repræsenterer alle værdier, der kan ændres:




DELETE /api/v1/question-results/:id 
Denne rute giver mulighed for at fjerne et QuestionResult efter id.



GET /api/v1/question-results-aggregate 
Her sker aggregering af resultater.
Aggregerings-svarstrukturen er som følger:

Her er query-parametrene tilgængelige for aggregering:

Her er et eksempel på en anmodning:

Eksempel på svar:


Ydelsesbemærkninger
- For en cache-miss tager aggregeringer generelt fem sekunder pr. million resultater.
- Ellers er anmodninger konstant-tid.
Caching og Omkostningsbemærkninger
- Når
forceRecalculateer angivet, er omkostningen altid10i stedet for de normale2. - Hvis cachen udløber og data genberegnes, er omkostningen stadig en konstant
2, hvisforceRecalculateikke er angivet. Cachen udløber baseret på datasættets størrelse, der aggregeres (kan variere mellem 30 sekunder og 5 minutter). - Dette er for at tilskynde brug af cachen.
GET /api/v1/question-results-aggregate/combine/comments 
Her sker kombination af resultater med kommentarer. Nyttigt til at oprette et "nylige positive og negative kommentarer" diagram for et produkt, for eksempel.
Du kan søge via et interval af værdier (inklusiv), et eller flere spørgsmål og efter en startdato (inklusiv).
Svarstrukturen er som følger:

Her er query-parametrene tilgængelige for aggregering:

Her er et eksempel på en anmodning:

Eksempel på svar:


Caching og Omkostningsbemærkninger
- Når
forceRecalculateer angivet, er omkostningen altid10i stedet for de normale2. - Hvis cachen udløber og data genberegnes, er omkostningen stadig en konstant
2, hvisforceRecalculateikke er angivet. - Dette er for at tilskynde brug af cachen.
Brugerbadge-struktur 
UserBadge er et objekt, der repræsenterer et badge tildelt til en bruger i FastComments-systemet.
Badges kan tildeles brugere automatisk baseret på deres aktivitet (såsom kommentarantal, svartid, veteranstatus) eller manuelt af side-administratorer.
Strukturen for UserBadge-objektet er som følger:

GET /api/v1/user-badges 
Dette endpoint giver dig mulighed for at hente bruger-badges baseret på forskellige kriterier.
Eksempel på Anmodning:
Run 
Du kan tilføje forskellige forespørgselsparametre for at filtrere resultaterne:
userId- Hent badges for en specifik brugerbadgeId- Hent forekomster af et specifikt badgetype- Filtrer efter badge-type (0=CommentCount, 1=CommentUpVotes, 2=CommentReplies, osv. Se UserBadge-strukturen for fuld liste)displayedOnComments- Filtrer efter om badge'et vises på kommentarer (true/false)limit- Maksimalt antal badges at returnere (standard 30, maks 200)skip- Antal badges at springe over (til paginering)
Eksempel på Svar:

Mulige Fejlsvar:


GET /api/v1/user-badges/:id 
Dette endpoint giver dig mulighed for at hente et specifikt bruger-badge efter dets unikke ID.
Eksempel på Anmodning:
Run 
Eksempel på Svar:

Mulige Fejlsvar:


POST /api/v1/user-badges 
Dette endpoint giver dig mulighed for at oprette en ny bruger-badge tildeling.
Eksempel på Anmodning:
Run 
Anmodningskroppen skal indeholde følgende parametre:
userId(påkrævet) - ID'et for brugeren, der skal tildeles badge'etbadgeId(påkrævet) - ID'et for badge'et, der skal tildelesdisplayedOnComments(valgfrit) - Om badge'et skal vises på brugerens kommentarer (standard er true)
Vigtige Bemærkninger:
- Badge'et skal eksistere og være aktiveret i din tenants badge-katalog
- Du kan kun tildele badges til brugere, der tilhører din tenant eller har kommenteret på din side
Eksempel på Svar:

Mulige Fejlsvar:





PUT /api/v1/user-badges/:id 
Dette endpoint giver dig mulighed for at opdatere en bruger-badge tildeling.
I øjeblikket er den eneste egenskab, der kan opdateres, displayedOnComments, som styrer, om badge'et vises på brugerens kommentarer.
Eksempel på Anmodning:
Run 
Eksempel på Svar:

Mulige Fejlsvar:



DELETE /api/v1/user-badges/:id 
Dette endpoint giver dig mulighed for at slette en bruger-badge tildeling.
Eksempel på Anmodning:
Run 
Eksempel på Svar:

Mulige Fejlsvar:



Brugerbadge-fremgangsstruktur 
UserBadgeProgress er et objekt, der repræsenterer en brugers fremskridt mod at optjene forskellige badges i FastComments-systemet.
Denne sporing hjælper med at bestemme, hvornår brugere skal modtage automatiske badges baseret på deres aktivitet og deltagelse i dit fællesskab.
Strukturen for UserBadgeProgress-objektet er som følger:

GET /api/v1/user-badge-progress 
Dette endpoint giver dig mulighed for at hente bruger-badge fremskridtsposter baseret på forskellige kriterier.
Eksempel på Anmodning:
Run 
Du kan tilføje forskellige forespørgselsparametre for at filtrere resultaterne:
userId- Hent fremskridt for en specifik brugerlimit- Maksimalt antal poster at returnere (standard 30, maks 200)skip- Antal poster at springe over (til paginering)
Eksempel på Svar:

Mulige Fejlsvar:


GET /api/v1/user-badge-progress/:id 
Dette endpoint giver dig mulighed for at hente en specifik bruger-badge fremskridtspost efter dens unikke ID.
Eksempel på Anmodning:
Run 
Eksempel på Svar:

Mulige Fejlsvar:


GET /api/v1/user-badge-progress/user/:userId 
Dette endpoint giver dig mulighed for at hente en brugers badge-fremskridtspost efter deres bruger-ID.
Eksempel på Anmodning:
Run 
Eksempel på Svar:

Mulige Fejlsvar:



Afslutningsvis
Vi håber, at du har fundet vores API-dokumentation grundig og nem at forstå. Hvis du finder nogen mangler, så lad os det vide nedenfor.