
Jezik 🇸🇮 Slovenščina
Viri API
Agregacije
Revizijski dnevniki
Komentarji
E-poštne predloge
Hashtagi
Moderatorji
Število obvestil
Obvestila
Strani
Čakajoči webhook dogodki
SSO uporabniki
Naročnine
Dnevna poraba najemnika
Najemniki
Paketi najemnikov
Uporabniki najemnikov
Uporabniki
Glasovi
Konfiguracije domen
Konfiguracije vprašanj
Rezultati vprašanj
Agregacija rezultatov vprašanj
Uporabniške značke
Napredek uporabniške značke
API FastComments
FastComments nudi API za interakcijo z mnogimi viri. Zgradite integracije z našo platformo ali celo ustvarite svoje lastne odjemalce!
V tej dokumentaciji najdete vse vire, ki jih API podpira, dokumentirane z njihovimi tipi zahtevkov in odgovorov.
Za Enterprise naročnike je ves dostop do API zabeležen v revizijskem dnevniku.
Generirani SDK-ji
FastComments sedaj generira API specifikacijo iz naše kode (to še ni popolno, vendar vključuje mnoge API-je).
Imamo tudi SDK-je za priljubljene jezike:
- fastcomments-cpp
- fastcomments-go
- fastcomments-java
- fastcomments-sdk-js
- fastcomments-nim
- fastcomments-php
- fastcomments-php-sso
- fastcomments-python
- fastcomments-ruby
- fastcomments-rust
- fastcomments-swift
Avtentikacija
API se avtenticira tako, da posredujete svoj API ključ bodisi kot X-API-KEY header ali API_KEY query parameter. Za klice API boste potrebovali tudi svoj tenantId
za izvajanje klicev API. To lahko pridobite na isti strani kot svoj API ključ.
Varnostno opozorilo
Te poti so namenjene klicanju z strežnika. NE jih kličite iz brskalnika. S tem boste razkrili svoj API ključ - to bo vsakomur, ki si lahko ogleda izvorno kodo strani, omogočilo popoln dostop do vašega računa!
Authentication Option One - Headers
- Glava:
X-API-KEY - Glava:
X-TENANT-ID
Authentication Option Two - Query Parameters
- Parameter poizvedbe:
API_KEY - Parameter poizvedbe:
tenantId
Viri API 
Uporaba virov
Treba je opozoriti, da se pridobivanje podatkov iz API-ja šteje kot poraba na vašem računu.
Vsak vir bo v svojem razdelku navedel, kakšna je ta poraba.
Nekateri viri zahtevajo več sredstev kot drugi. Vsaka končna točka ima določeno ceno v kreditih na klic API-ja. Pri nekaterih končnih točkah se število kreditov spreminja glede na možnosti in velikosti odgovorov.
Uporabo API-ja lahko preverite na strani Analitika obračunavanja in se posodablja vsake nekaj minut.
Opomba!
Priporočamo, da najprej preberete dokumentacijo Pages, da zmanjšate zmedo pri določanju, katere vrednosti posredovati za urlId v Comment API.
Združite svoje podatke 
Ta API agregira dokumente tako, da jih združi (če je podan groupBy) in uporabi več operacij. Podprte so različne operacije (npr. sum, countDistinct, avg itd.).
Strošek je spremenljiv. Vsakih 500 pregledanih objektov stane 1 API kredit.
Privzeto je največja dovoljena poraba pomnilnika na klic API 64 MB, privzeto pa lahko hkrati teče samo ena agregacija. Če pošljete več agregacij hkrati, bodo postavljene v čakalno vrsto in izvršene v vrstnem redu pošiljanja. Čakanje na obdelavo v čakalni vrsti traja največ 60 sekund, po tem poizvedba poteče. Posamezne agregacije se lahko izvršujejo do 5 minut.
Če imate upravljane najemnike (managed tenants), lahko v enem klicu agregirate vire vseh otroških najemnikov tako, da pošljete query parameter parentTenantId.
Primeri
Primer: Štetje edinstvenih vrednosti


Primer: Štetje različnih

Odgovor:

Primer: Seštevek vrednosti več polj

Odgovor:

Primer: Povprečne vrednosti več polj

Odgovor:

Primer: Minimalne/maksimalne vrednosti več polj

Odgovor:

Primer: Štetje unikatnih vrednosti več polj

Odgovor:

Primer: Primer ustvarjanja poizvedbe

Odgovor:

Primer: Štetje komentarjev, ki čakajo na pregled

Odgovor:

Primer: Razčlenitev odobrenih, pregledanih in spam komentarjev

Odgovor:

Strukture


Naslednje vire je mogoče agregirati:
- 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
Struktura revizijskega dnevnika 
An AuditLog je objekt, ki predstavlja revidiran dogodek za najemnike, ki imajo dostop do te funkcije.
Struktura objekta AuditLog je naslednja:

Revizijski dnevnik je nespremenljiv. Vanj poleg tega ni mogoče pisati ročno. FastComments.com lahko odloča le, kdaj zapisati v revizijski dnevnik. Vendar ga lahko berete prek tega API-ja.
Dogodki v revizijskem dnevniku potečejo po dveh letih.
GET /api/v1/audit-logs 
Ta API uporablja straničenje, ki ga zagotavljata parametra skip, before in after. AuditLogi se vračajo v straneh po 1000, razvrščeni po when in id.
Pridobivanje vsakih 1000 zapisov stane 10 kreditov.
Privzeto boste prejeli seznam z najnovejšimi elementi na vrhu. Na ta način lahko začnete z skip=0 in straničite, dokler ne najdete zadnjega zapisa, ki ste ga že obdelali.
Alternativno lahko razvrstite najprej najstarejše in straničite, dokler ne bo več zapisov.
Razvrščanje lahko izvedete tako, da nastavite order na ASC ali DESC. Privzeto je ASC.
Poizvedovanje po datumu je mogoče z before in after kot časovnimi žigi v milisekundah. before in after nista vključujoča.



Struktura komentarja 
Objekt Comment predstavlja komentar, ki ga je pustil uporabnik.
Razmerje med nadrejenimi in potomskimi komentarji je določeno z parentId.
Struktura objekta Comment je naslednja:

Nekatera od teh polj so označena kot READONLY - ta so vrnjena s strani API-ja, vendar jih ni mogoče nastaviti.
Struktura besedila komentarja
Komentarji so napisani v FastComments različici markdowna, kar je preprosto markdown plus tradicionalne bbcode sloga oznake za slike, na primer [img]path[/img].
Besedilo se shranjuje v dveh poljih. Besedilo, ki ga je uporabnik vnesel, je shranjeno nespremenjeno v polju comment. To se upodobi in shrani v polju commentHTML.
Dovoljene HTML oznake so b, u, i, strike, pre, span, code, img, a, strong, ul, ol, li, and br.
Priporočeno je upodabljanje HTML-ja, saj gre za zelo majhen podnabor HTML-ja, zato je izgradnja rendererja precej preprosta. Na voljo je več knjižnic za React Native in Flutter, na primer, ki pri tem pomagajo.
Lahko se odločite tudi za upodabljanje ne-normalizirane vrednosti polja comment. Primer parserja je tukaj..
Primer parserja bi lahko prilagodili tudi za delo s HTML-jem in pretvorbo HTML oznak v pričakovane elemente za upodabljanje na vaši platformi.
Označevanje
Ko so uporabniki označeni v komentarju, je informacija shranjena v seznamu imenovanem mentions. Vsak objekt v tem seznamu ima naslednjo strukturo.
Run 
Hashtagi
Ko so hashtagi uporabljeni in uspešno razčlenjeni, je informacija shranjena v seznamu imenovanem hashTags. Vsak objekt v tem seznamu ima naslednjo strukturo. Hashtage je mogoče tudi ročno dodati v polje hashTags komentarja za poizvedovanje, če je retain nastavljen.
Run 
GET /api/v1/comments 
Ta API se uporablja za pridobivanje komentarjev za prikaz uporabniku. Na primer, samodejno filtrira neodobrene ali neželene (spam) komentarje.
Straničenje
Straničenje je mogoče izvesti na enega od dveh načinov, odvisno od zahtev glede zmogljivosti in primera uporabe:
- Najhitrejše: Vnaprej izračunano straničenje:
- Tako FastComments deluje, ko uporabljate naše vnaprej izdelane widgete in odjemalce.
- Klik na "next" preprosto poveča števec strani.
- To lahko razumete kot pridobitev iz ključ-vrednost shrambe.
- Na ta način preprosto določite parameter
page, ki se začne pri0, in smer razvrščanja kotdirection. - Velikosti strani je mogoče prilagoditi preko pravil prilagoditve.
- Najbolj prilagodljivo: Fleksibilno straničenje:
- Na ta način lahko določite po meri
limitinskipparametra. Ne pošiljajtepage. - Podprta je tudi smer razvrščanja
direction. limitje skupno število, ki ga vrnemo po uporabiskip.- Primer: nastavite
skip = 200, limit = 100, ko jepage size = 100inpage = 2.
- Primer: nastavite
- Otroški komentarji se še vedno štejejo v straničenju. To lahko zaobidete z uporabo opcije
asTree.- Otroke lahko straničite z
limitChildreninskipChildren. - Globino vrnjenih niti lahko omejite z
maxTreeDepth.
- Otroke lahko straničite z
- Na ta način lahko določite po meri
Niti
- Ko uporabljate
Precalculated Pagination, so komentarji združeni po strani in komentarji v nitih vplivajo na celotno stran.- Tako se niti lahko določijo na odjemalcu glede na
parentId. - Na primer, na strani z enim vrhnjim komentarjem in 29 odgovori, in če v API nastavite
page=0- boste dobili samo vrhnji komentar in 29 otrok. - Primer slike tukaj, ki prikazuje več strani.
- Tako se niti lahko določijo na odjemalcu glede na
- Ko uporabljate
Flexible Pagination, lahko določite parameterparentId.- Nastavite ga na null, da dobite samo vrhnje komentarje.
- Nato za ogled niti pokličite API znova in posredujte
parentId. - Pogosta rešitev je, da naredite API klic za vrhnje komentarje in nato vzporedne API klice za pridobitev komentarjev za otroke vsakega komentarja.
- NOVO od februarja 2023! Pridobite kot drevo z uporabo
&asTree=true.- To lahko razumete kot
Fleksibilno straničenje kot drevo. - Samo vrhnji komentarji štejejo v straničenju.
- Nastavite
parentId=null, da začnete drevo na korenu (mora biti nastavljenparentId). - Nastavite
skipinlimitza straničenje. - Nastavite
asTreenatrue. - Cena v kreditih se poveča za
2x, saj mora naš backend v tem scenariju opraviti veliko več dela. - Nastavite
maxTreeDepth,limitChildreninskipChildrenpo želji.
- To lahko razumete kot
Drevesa pojasnjena
Ko uporabljate asTree, je lahko težko razmišljati o straničenju. Tukaj je priročna grafika:
Pridobivanje komentarjev v kontekstu uporabnika
API /comments se lahko uporablja v dveh kontekstih, za različne primere uporabe:
- Za vračanje komentarjev, razvrščenih in označenih z informacijami za izdelavo vašega lastnega odjemalca.
- V tem primeru določite parameter poizvedbe
contextUserId.
- V tem primeru določite parameter poizvedbe
- Za pridobivanje komentarjev iz vašega backenda za prilagojene integracije.
- Platforma bo to privzeto uporabila, če
contextUserIdni podan.
- Platforma bo to privzeto uporabila, če




Pridobitev komentarjev kot drevo
Možno je vrniti komentarje kot drevo, pri čemer straničenje upošteva samo vrhnje komentarje.

Želite pridobiti samo vrhnje komentarje in neposredne otroke? Tukaj je en način:

Vendar boste v svojem UI morda morali vedeti, ali prikazati gumb "prikaži odgovore" pri vsakem komentarju. Ko pridobivate komentarje kot drevo, imajo komentarji, kjer je primerno, lastnost hasChildren.
Pridobitev komentarjev kot drevo, iskanje po hashtagih
Možno je iskati po hashtagih z uporabo API-ja, po celotnem vašem najemniku (ne omejeno na eno stran ali urlId).
V tem primeru izpustimo urlId in iščemo po več hashtagih. API bo vrnil samo komentarje, ki vsebujejo vse zahtevane hashtage.

Vsi parametri zahteve

Odgovor

Koristni nasveti
URL ID
Verjetno boste želeli uporabiti API Comment s parametrom urlId. Najprej lahko pokličete API Pages, da vidite, kako izgledajo razpoložljive vrednosti urlId.
Anonimna dejanja
Za anonimno komentiranje boste verjetno želeli podati anonUserId pri pridobivanju komentarjev in pri prijavljanju in blokiranju.
(!) To je zahtevano pri mnogih trgovinah z aplikacijami, saj mora uporabnik lahko prijavi vsebino, ki jo je ustvaril uporabnik in ki jo vidi, tudi če ni prijavljen. Neupoštevanje tega lahko povzroči, da bo vaša aplikacija odstranjena iz navedene trgovine.
Komentarji se ne vračajo
Preverite, ali so vaši komentarji odobreni in niso neželeni (spam).
GET /api/v1/comments/:id 
Ta API omogoča pridobitev posameznega komentarja po ID-ju.



POST /api/v1/comments 
Ta končna točka API omogoča ustvarjanje komentarjev.
Pogoste uporabe so prilagojeni uporabniški vmesniki, integracije ali uvozi.
Opombe:
- Ta API lahko po želji posodobi prikazovalnik komentarjev "v živo" (to poveča
creditsCostz1na2). - Ta API bo samodejno ustvaril objekte uporabnikov v našem sistemu, če je podan e-poštni naslov.
- Poskus shranjevanja dveh komentarjev z različnimi e-poštnimi naslovi, vendar istim uporabniškim imenom, bo pri drugem komentarju povzročil napako.
- Če določite
parentId, in ima otroški komentarnotificationSentForParentnastavljen na false, bomo poslali obvestila za starševski komentar. To se izvaja vsako uro (obvestila zbiramo skupaj, da zmanjšamo število poslanih e-poštnih sporočil). - Če želite poslati dobrodošla e-poštna sporočila ob ustvarjanju uporabnikov ali e-poštna sporočila za preverjanje komentarjev, v poizvedbenih parametrih nastavite
sendEmailsnatrue. - Komentarji ustvarjeni preko tega API se bodo prikazali na straneh Analitike in Moderacije v administrativni aplikaciji.
- "bad words" so še vedno zastrti v imenih komentatorjev in besedilu komentarjev, če je nastavitev vklopljena.
- Komentarje ustvarjene preko tega API-ja je mogoče še vedno preveriti za neželeno pošto, če želite.
- Konfiguracija, kot je največja dolžina komentarja, če je nastavljena preko strani pravil za prilagoditev (Customization Rule) v administraciji, se uporabi tukaj.
Najmanjši podatki, potrebni za oddajo in prikaz v pripomočku za komentarje, so naslednji:

Bolj realističen primer zahteve je:



PATCH /api/v1/comments/:id 
Ta API endpoint omogoča posodobitev enega komentarja.
Notes:
- Ta API lahko po želji posodobi pripomoček za komentarje "live" (to poveča osnovni
creditsCostz1na2).- To omogoča, da je migracija komentarjev med stranmi "v živo" (spreminjanje
urlId). - Migracije stanejo dodatne
2kredite, saj se strani predizračunajo in je to intenzivno za CPU.
- To omogoča, da je migracija komentarjev med stranmi "v živo" (spreminjanje
- V nasprotju z API-jem za ustvarjanje, ta API NE bo samodejno ustvaril uporabniških objektov v našem sistemu, če je naveden e-poštni naslov.
- Komentarje posodobljene preko tega API-ja je mogoče po želji še vedno preveriti na neželeno pošto (spam).
- Konfiguracije, kot je največja dolžina komentarja, če so nastavljene prek strani za upravljanje pravil prilagoditve (Customization Rule), bodo veljale tudi tu.
- Da omogočite uporabnikom, da posodobijo besedilo komentarja, lahko v telesu zahteve preprosto navedete
comment. Mi bomo ustvarili ustrezencommentHTML.- Če določite oba
commentincommentHTML, HTML ne bomo samodejno ustvarili. - Če uporabnik v novo besedilo doda omembe ali oznake, bo to še vedno obdelano enako kot pri
POSTAPI-ju.
- Če določite oba
- Ko posodabljate
commenterEmailpri komentarju, je najbolje, da prav tako navedeteuserId. V nasprotnem primeru morate zagotoviti, da uporabnik s tem e-poštnim naslovom pripada vašemu tenant, sicer bo zahteva neuspešna.



DELETE /api/v1/comments/:id 
Ta API endpoint omogoča brisanje komentarja.
Opombe:
- Ta API lahko po želji posodobi pripomoček za komentarje "v živo" (to poveča
creditsCosts1na2). - Ta API bo izbrisal vse podrejene komentarje.



POST /api/v1/comments/:id/flag 
Ta API endpoint omogoča prijavo (flag) komentarja za določenega uporabnika.
Opombe:
- Ta klic mora biti vedno izveden v kontekstu uporabnika. Uporabnik je lahko FastComments.com uporabnik, SSO uporabnik ali uporabnik najemnika.
- Če je nastavljen flag-to-hide threshold, bo komentar samodejno skrit v živo, potem ko je bil prijavljen tolikokrat, kot je določeno.
- Ko je samodejno preklican (skrit) — komentar lahko ponovno potrdi le skrbnik ali moderator. Odstranitev oznake (un-flagging) komentarja ga ne bo ponovno potrdila.

Za anonimno prijavo moramo določiti anonUserId. To je lahko ID, ki predstavlja anonimno sejo, ali naključni UUID.
To nam omogoča podporo prijavljanja in odstranjevanja prijav komentarjev tudi, če uporabnik ni prijavljen. Tako je lahko komentar označen kot
prijavljen, ko se komentarji pridobijo z istim anonUserId.



POST /api/v1/comments/:id/un-flag 
Ta končna točka API-ja omogoča odstranitev zastavice (un-flag) iz komentarja za določenega uporabnika.
Opombe:
- Klic mora biti vedno izveden v kontekstu uporabnika. Uporabnik je lahko FastComments.com User, SSO User, ali Tenant User.
- Ko je komentar samodejno zavrnjen (skrit) - komentar lahko ponovno odobri le administrator ali moderator. Odznačitev zastavice ne bo ponovno odobrila komentarja.

Za anonimno označevanje z zastavico moramo navesti anonUserId. To je lahko ID, ki predstavlja anonimno sejo, ali naključni UUID.



POST /api/v1/comments/:id/block 
Ta API endpoint omogoča blokiranje uporabnika, ki je napisal določen komentar. Podpira blokiranje komentarjev, napisanih s strani FastComments.com uporabnikov, SSO uporabnikov in najemniških uporabnikov.
Podpira telo parameter commentIdsToCheck, s katerim se preveri, ali je treba po tej akciji kateri koli drug potencialno viden komentar na odjemalcu blokirati/odblokirati.
Opombe:
- Ta klic mora biti vedno izveden v kontekstu uporabnika. Uporabnik je lahko FastComments.com uporabnik, SSO uporabnik ali najemniški uporabnik.
- V zahtevi
userIdoznačuje uporabnika, ki izvaja blokiranje. Na primer:User Aželi blokiratiUser B. PosredujteuserId=User Ain ID komentarja, ki ga je napisalUser B. - Popolnoma anonimnih komentarjev (brez ID uporabnika, brez e-pošte) ni mogoče blokirati in bo vrnjena napaka.

Za anonimno blokiranje moramo navesti en anonUserId. To je lahko ID, ki predstavlja anonimno sejo, ali naključen UUID.
To nam omogoča podporo blokiranja komentarjev tudi, če uporabnik ni prijavljen, saj se komentarji pridobijo z istim anonUserId.



POST /api/v1/comments/:id/un-block 
Ta API konecna točka omogoča odblokiranje uporabnika, ki je napisal določen komentar. Podpira odblokiranje komentarjev, napisanih s strani uporabnikov FastComments.com, SSO uporabnikov in najemniških uporabnikov.
Podpira parametru v telesu zahteve commentIdsToCheck, s katerim se preveri, ali je treba tudi druge morebitno vidne komentarje na odjemalcu po tej akciji blokirati/odblokirati.
Opombe:
- Ta klic mora biti vedno izveden v kontekstu uporabnika. Uporabnik je lahko uporabnik FastComments.com, SSO uporabnik ali najemniški uporabnik.
- V zahtevku
userIdoznačuje uporabnika, ki izvaja odblokiranje. Na primer:User Aželi odblokiratiUser B. PosredujteuserId=User Ain ID komentarja, ki ga je napisalUser B. - Popolnoma anonimnih komentarjev (brez ID uporabnika, brez e-pošte) ni mogoče blokirati in bo vrnjena napaka.




Struktura e-poštne predloge 
Objekt EmailTemplate predstavlja konfiguracijo za prilagojen e-poštni predlog za najemnika.
Sistem bo izbral e-poštni predlog na podlagi:
- Njegovega identifikatorja vrste, imenovanega
emailTemplateId. To so konstante. domain. Najprej bomo poskusili najti predlog za domeno, s katero je povezan ustrezni objekt (na primerComment), in če ujemanja ne najdemo, bomo poiskali predlog, kjer je domain null ali*.
Struktura objekta EmailTemplate je naslednja:

Opombe
- Veljavne vrednosti
emailTemplateIdlahko pridobite prek končne točke/definitions. - Končna točka
/definitionsvsebuje tudi privzete prevode in testne podatke. - Predlogi se ne bodo shranili, če je struktura ali testni podatki neveljavni.
GET /api/v1/email-templates/:id 
Posamezne EmailTemplate lahko pridobite z njihovim ustreznim id (NE emailTemplateId).



GET /api/v1/email-templates 
Ta API uporablja straničenje, ki ga zagotavlja poizvedni parameter page. EmailTemplates so vrnjeni po straneh po 100, urejeni po createdAt in nato id.



PATCH /api/v1/email-templates/:id 
Ta API endpoint omogoča posodobitev e-poštne predloge z navedbo samo id in atributov, ki jih želite posodobiti.
Upoštevajte, da veljajo enake preveritve kot pri ustvarjanju predloge, na primer:
- Predloga se mora pravilno upodobiti. To se preveri pri vsaki posodobitvi.
- Ne morete imeti podvojenih predlog za isto domeno (v nasprotnem primeru bi bila ena prezreta brez obvestila).



POST /api/v1/email-templates 
Ta API vmesnik omogoča ustvarjanje predlog e-pošte.
Opombe:
- Ne morete imeti več predlog z istim
emailTemplateIdza isto domeno. - Vendar pa lahko imate univerzalno (wildcard) predlogo (
domain=*) in domensko specifično predlogo za istiemailTemplateId. - Določitev
domainje pomembna le, če imate različne domene ali želite uporabiti specifične predloge za testiranje (npr.domainnastavljena nalocalhost). - Če določite
domain, mora ta ustrezatiDomainConfig. V primeru napake je na voljo seznam veljavnih domen. - Sintaksa predloge je EJS in se upodablja z omejitvijo 500ms. P99 za upodabljanje je <5ms, zato, če dosežete 500ms, je nekaj narobe.
- Vaša predloga se mora upodabljati z danimi
testData, da se shrani. Napake pri upodabljanju se združujejo in poročajo na nadzorni plošči (kmalu na voljo tudi prek API).
Najmanj podatkov, potrebnih za dodajanje predloge, je naslednjih:

Morda boste želeli imeti predloge za vsako spletno mesto posebej; v tem primeru določite domain:



POST /api/v1/email-templates/render 
Ta API končna točka omogoča predogled e-poštnih predlog.



DELETE /api/v1/email-templates/:id 
Ta končna točka omogoča odstranitev posameznega EmailTemplate po id.



Struktura hashtagov 
Objekt HashTag predstavlja oznako, ki jo lahko pusti uporabnik. HashTags se lahko uporabijo za povezavo na zunanjo vsebino ali za
povezovanje sorodnih komentarjev.
The structure for the HashTag object is as follows:

Notes:
- In some API endpoints you will see that the hashtag is used in the URL. Remember to URI-Encoded values. For example,
#should instead be represented as%23. - Some of these fields are marked
READONLY- these are returned by the API but cannot be set.
GET /api/v1/hash-tags 
To API uporablja straničenje, ki ga zagotavlja poizvedni parameter page. Hashtagi se vrnejo v straneh po 100, urejeni po tag.



PATCH /api/v1/hash-tags/:tag 
Ta končna točka omogoča posodobitev enega HashTag.



POST /api/v1/hash-tags 
Ta pot omogoča dodajanje posameznega HashTag.



POST /api/v1/hash-tags/bulk 
Ta pot omogoča dodajanje do 100 HashTag objektov hkrati.



DELETE /api/v1/hash-tags/:tag 
Ta ruta omogoča odstranitev uporabnika HashTag z navedenim tagom.
Upoštevajte, da če samodejno ustvarjanje HashTag ni onemogočeno, lahko uporabniki ponovno ustvarijo hashtage tako, da pri komentiranju vnesejo hashtag.



Struktura moderatorja 
Objekt Moderator predstavlja konfiguracijo za moderatorja.
Obstajajo trije tipi moderatorjev:
- Administrator users that have the
isCommentModeratorAdminflag. - SSO Users with the
isCommentModeratorAdminflag. - Regular commenters, or FastComments.com users, that are invited as Moderators.
Struktura Moderator se uporablja za predstavitev stanja moderacije pri primeru uporabe 3.
Če želite preko API-ja povabiti uporabnika, da postane moderator, uporabite Moderator API tako, da ustvarite Moderator in jih inviting.
Če uporabnik nima računa FastComments.com, mu bo povabilo po e-pošti pomagalo pri nastavitvi. Če že ima račun, mu bo dodeljen dostop za moderiranje do vašega tenant-a in lastnost userId objekta Moderator bo posodobljena, da kaže na njihovega uporabnika. Nimali boste API dostopa do njihovega uporabnika, saj v tem primeru pripada njim in ga upravlja FastComments.com.
Če potrebujete popolno upravljanje računa uporabnika, priporočamo uporabo SSO ali pa ga dodajte kot Tenant User in nato dodajte objekt Moderator za sledenje njihovim statistikam.
Strukturo Moderator je mogoče uporabiti kot mehanizem za sledenje statistik v primerih uporabe 1 in 2. Po ustvarjanju uporabnika dodajte objekt Moderator z določenim userId in njihove statistike se bodo spremljale na Comment Moderators Page.
Struktura objekta Moderator je naslednja:

GET /api/v1/moderators/:id 
Ta klic vrne enega moderatorja po njihovem id.



GET /api/v1/moderators 
Ta API uporablja straničenje, ki ga zagotavlja poizvedni parameter skip. Moderatorji se vračajo po straneh po 100, urejeni po createdAt in id.
Stroški so odvisni od števila vrnjenih moderatorjev: 1 credit per 10 vrnjenih moderatorjev.



PATCH /api/v1/moderators/:id 
Ta API končna točka omogoča posodobitev Moderator po id.
Posodabljanje Moderator ima naslednje omejitve:
- Pri posodabljanju
Moderatorni dovoljeno posredovati naslednjih vrednosti:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Če je naveden
userId, mora ta uporabnik obstajati. - Če je naveden
userId, mora pripadati istemutenantId, navedenemu v parametrih poizvedbe. - Dva moderatorja v istem najemniku ne moreta biti dodana z istim
email. - Ne smete spremeniti
tenantId, povezanega zModerator.



POST /api/v1/moderators 
Ta ruta omogoča dodajanje enega samega Moderator.
Ustvarjanje Moderator ima naslednje omejitve:
- Vedno morate navesti
nameinemail.userIdje izbiren. - Pri ustvarjanju
Moderatorni dovoljeno navesti naslednjih vrednosti:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Če je naveden
userId, ta uporabnik mora obstajati. - Če je naveden
userId, mora pripadati istemutenantId, navedenemu v parametrkih poizvedbe. - Dva moderatorja v istem najemniku ne moreta imeti istega
email.
Ustvarimo lahko Moderator za uporabnika, o katerem poznamo samo e-poštni naslov:

Lahko pa ustvarimo Moderator za uporabnika, ki pripada našemu najemniku, da spremljamo njegove statistike moderiranja:



POST /api/v1/moderators/:id/send-invite 
Ta ruta omogoča povabilo enega samega Moderator.
The following restrictions exist to send an invite email to a Moderator:
Moderatormora že obstajati.fromNamene sme biti daljši od100 characters.
Opombe:
- Če uporabnik z navedenim e-poštnim naslovom že obstaja, bo povabljen, da moderira komentarje vašega najemnika.
- Če uporabnik z navedenim e-poštnim naslovom ne obstaja bo povezava za povabilo vodila skozi postopek ustvarjanja njihovega računa.
- Povabilo poteče po
30 days.
Lahko ustvarimo Moderator za uporabnika, katerega poznamo le po e-poštnem naslovu:

To bo poslalo e-pošto, kot je Bob at TenantName is inviting you to be a moderator...


DELETE /api/v1/moderators/:id 
Ta pot omogoča odstranitev Moderator po id.



Struktura števila obvestil 
Objekt NotificationCount predstavlja število neprebranih obvestil in metapodatke za uporabnika.
Če ni neprebranih obvestil, za uporabnika ne bo NotificationCount.
Objekti NotificationCount se ustvarijo samodejno in jih ni mogoče ustvariti prek API-ja. Prav tako potečejo po enem letu.
Število neprebranih obvestil uporabnika lahko počistite z izbrisom njihovega NotificationCount.
Struktura objekta NotificationCount je naslednja:

GET /api/v1/notification-count/:user_id 
Ta pot vrne en sam NotificationCount po ID-ju uporabnika. Pri SSO je ID uporabnika v obliki <tenant id>:<user id>.
Če ni nobenih neprebranih obvestil, NotificationCount ne bo — zato boste prejeli 404.
To se razlikuje od notifications/count, ker je veliko hitrejše, vendar ne dopušča filtriranja.



DELETE /api/v1/notification-count/:user_id 
Ta ruta izbriše en sam NotificationCount glede na ID uporabnika. Pri SSO je ID uporabnika v obliki <tenant id>:<user id>.
To bo počistilo število neprebranih obvestil uporabnika (rdeči zvonček v widgetu za komentarje bo zbledel in števec bo izginil).



Struktura obvestila 
Objekt Notification predstavlja obvestilo za uporabnika.
Objekti Notification se ustvarijo samodejno in jih ni mogoče ustvariti prek API-ja. Prav tako potečejo po enem letu.
Obvestil ni mogoče izbrisati. Lahko pa se posodobijo, tako da nastavite viewed na false, in lahko poizvedujete po viewed.
Uporabnik se lahko tudi odjavi od obvestil za določen komentar tako, da v obvestilu nastavi optedOut na true. Ponovno se lahko prijavite tako, da nastavite optedOut na false.
Obstajajo različne vrste obvestil - preverite relatedObjectType in type.
Načini ustvarjanja obvestil so precej prilagodljivi in jih lahko sprožijo številni scenariji (glejte NotificationType).
Trenutno prisotnost Notification ne pomeni nujno, da je bilo ali bi moralo biti poslano e-poštno sporočilo. Namesto tega se obvestila uporabljajo za feed obvestil in sorodne integracije.
Struktura za objekt Notification je naslednja:

GET /api/v1/notifications 
Ta pot vrne do 30 Notification objektov, razvrščenih po createdAt, najnovejši prvi.
Lahko filtrirate po userId. Pri SSO je ID uporabnika v formatu <tenant id>:<user id>.



GET /api/v1/notifications/count 
Ta ruta vrača objekt, ki vsebuje število obvestil v parametru count.
Je počasnejša od /notification-count/ in stane dvakrat več kreditov, vendar omogoča filtriranje po več dimenzijah.
Filtrirate lahko z istimi parametri kot pri končni točki /notifications, na primer userId. Pri SSO je ID uporabnika v formatu <tenant id>:<user id>.




PATCH /api/v1/notifications/:id 
Ta končna točka API omogoča posodobitev Notification po id.
Posodabljanje Notification ima naslednje omejitve:
- Posodobiti lahko le naslednja polja:
viewedoptedOut



Struktura strani 
Objekt Page predstavlja stran, kateremu lahko pripada več komentarjev. Ta povezava je določena z
urlId.
Objekt Page hrani informacije, kot so naslov strani, število komentarjev in urlId.
Struktura objekta Page je naslednja:

GET /api/v1/pages 
Trenutno lahko pridobite le vse strani (ali posamezno stran preko /by-url-id) povezanih z vašim računom. Če želite bolj natančno iskanje, kontaktirajte nas.



Koristen nasvet
API Comment zahteva urlId. Najprej lahko pokličete API Pages, da vidite, kako
izgledajo vrednosti urlId, ki so vam na voljo.
GET /api/v1/pages/by-url-id 
Posamezne strani lahko pridobite po njihovem ustreznem urlId. To je lahko uporabno pri iskanju naslovov strani ali števila komentarjev.



Koristen nasvet
Ne pozabite kodirati vrednosti za URI, kot je urlId.
PATCH /api/v1/pages/:id 
Ta ruta omogoča posodobitev ene Page. Ustrezni komentarji bodo posodobljeni.



Opomba
Nekateri parametri v objektu Page se samodejno posodobijo. To so atributi za števce in naslov. Števcev ni mogoče posodobiti
prek API-ja, saj so izračunane vrednosti. Naslov strani title je mogoče nastaviti prek API-ja, vendar bo prepisan, če je gradnik za komentarje uporabljen na
strani z istim urlId in drugačnim naslovom strani.
POST /api/v1/pages 
Ta končna točka API-ja omogoča ustvarjanje strani.
Pogosta uporaba je nadzor dostopa.
Opombe:
- Če ste komentirali v nit komentarjev, ali poklicali API za ustvarjanje
Comment, ste že ustvarili objektPage! Poskusite ga pridobiti prekPagepoti/by-url-id, tako da posredujete istiurlId, ki je bil posredovan gradniku za komentarje. - Struktura
Pagevsebuje nekaj izračunanih vrednosti. Trenutno so tocommentCountinrootCommentCount. Te vrednosti se napolnijo samodejno in jih API ne dovoljuje nastaviti. Poskus nastavitev bo povzročil, da bo API vrnil napako.



DELETE /api/v1/pages/:id 
Ta pot omogoča odstranitev posamezne strani po id.
Upoštevajte, da bo interakcija z vtičnikom za komentarje za stran z istim urlId preprosto brezhibno ponovno ustvarila Page.



Struktura čakajočega webhook dogodka 
Objekt PendingWebhookEvent predstavlja webhook dogodek v čakalni vrsti.
Objekti PendingWebhookEvent se ustvarijo samodejno in jih ni mogoče ročno ustvariti prek API. Potečejo tudi po enem letu.
Lahko jih izbrišete, kar odstrani nalogo iz vrste.
Obstajajo različne vrste dogodkov - preverite eventType (OutboundSyncEventType) in type (OutboundSyncType).
Pogost primer uporabe tega API-ja je implementacija prilagojenega nadzora. Morda boste želeli občasno klicati /count končno točko
za poizvedovanje o številu nerešenih primerov za določene filtre.
Struktura objekta PendingWebhookEvent je naslednja:

GET /api/v1/pending-webhook-events 
Ta pot vrne seznam čakajočih webhook dogodkov v parametru pendingWebhookEvents.
Ta API uporablja paginacijo, ki jo določa parameter skip. PendingWebhookEvents so vrnjeni po straneh po 100, urejeni po createdAt od najnovejših naprej.



GET /api/v1/pending-webhook-events/count 
Ta pot vrne objekt, ki vsebuje število čakajočih webhook dogodkov v parametru count.
Lahko filtrirate z istimi parametri kot na končni točki /pending-webhook-events



DELETE /api/v1/pending-webhook-events/:id 
Ta končna točka omogoča izbris enega PendingWebhookEvent.
Če potrebujete množični izbris, pokličite GET API s paginacijo in nato to API pokličite zaporedoma.



Struktura SSO uporabnika 
FastComments zagotavlja enostavno rešitev SSO. Posodabljanje informacij o uporabniku z integracijo, ki temelji na HMAC, je tako preprosto, kot če uporabnik naloži stran s posodobljenim podatkovnim paketom.
Vendar je včasih zaželeno upravljati z uporabnikom izven tega toka, da izboljšate doslednost vaše aplikacije.
SSO User API omogoča ustvarjanje, branje, posodabljanje in brisanje objektov, ki jim pravimo SSOUsers. Ti objekti se razlikujejo od običajnih Users in so ločeni zaradi tipne varnosti.
The structure for the SSOUser object is as follows:

Billing for SSO Users
SSO uporabniki se zaračunavajo različno glede na njihove zastavice dovoljenj:
- Regular SSO Users: Uporabniki brez skrbniških ali moderatorskih dovoljenj se zaračunavajo kot običajni SSO uporabniki
- SSO Admins: Uporabniki z zastavicami
isAccountOwneraliisAdminAdminse zaračunavajo ločeno kot SSO Admini (enaka stopnja kot običajni najemniški skrbniki) - SSO Moderators: Uporabniki z zastavico
isCommentModeratorAdminse zaračunavajo ločeno kot SSO Moderatorji (enaka stopnja kot običajni moderatorji)
Pomembno: Da bi preprečili dvojno zaračunavanje, sistem samodejno odstrani podvojene SSO uporabnike glede na običajne najemniške uporabnike in moderatorje po e-poštnem naslovu. Če ima SSO uporabnik isti e-poštni naslov kot običajni najemniški uporabnik ali moderator, ne bo zaračunan dvakrat.
Access Control
Uporabnike je mogoče razdeliti v skupine. Za to služi polje groupIds in je neobvezno.
@Mentions
Privzeto bodo @mentions uporabili username za iskanje drugih SSO uporabnikov, ko je vnesen znak @. Če se uporablja displayName, bodo rezultati, ki se ujemajo z username, prezrti, kadar obstaja ujemanje za displayName, in rezultati iskanja @omenjanja bodo uporabili displayName.
Subscriptions
Pri FastComments se lahko uporabniki naročijo na stran tako, da kliknejo ikono zvonca v komentarni vtičnik in izberejo Subscribe.
Pri običajnem uporabniku jim pošljemo obvestilna e-poštna sporočila glede na njihove nastavitve obvestil.
Pri SSO uporabnikih to razdelimo zaradi združljivosti nazaj. Uporabniki bodo prejeli ta dodatna obvestilna e-poštna sporočila o naročilih le, če nastavite optedInSubscriptionNotifications na true.
Badges
Značke lahko dodelite SSO uporabnikom z uporabo lastnosti badgeConfig. Značke so vizualni pokazatelji, ki se prikažejo zraven imena uporabnika pri komentarjih.
badgeIds- Polje ID-jev značk, ki jih je treba dodeliti uporabniku. Ti morajo biti veljavni ID-ji značk, ustvarjeni v vašem FastComments računu. Omejeno na 30 značk.override- Če je true, bodo vse obstoječe značke, prikazane pri komentarjih, zamenjane s podanimi. Če je false ali izpuščeno, bodo podane značke dodane k obstoječim značkam.update- Če je true, bodo lastnosti prikaza značk posodobljene iz konfiguracije najemnika vsakič, ko se uporabnik prijavi.
GET /api/v1/sso-users 
Ta ruta vrača SSO uporabnike po 100 na stran. Straničenje je zagotovljeno z parametrom skip. Uporabniki so razvrščeni po njihovem signUpDate in id.



GET /api/v1/sso-users/by-id/:id 
Ta pot vrne enega SSO uporabnika po njihovem id.



GET /api/v1/sso-users/by-email/:email 
Ta pot vrne enega SSO uporabnika glede na njihov e-poštni naslov.



PATCH /api/v1/sso-users/:id 
This route provides the ability to update a single SSO user.



POST /api/v1/sso-users 
Ta končna točka omogoča ustvarjanje enega SSO uporabnika.
Poskus ustvarjanja dveh uporabnikov z istim ID bo povzročil napako.

V tem primeru določimo groupIds za nadzor dostopa, vendar je to izbirno.


Opomba o integraciji
Podatke, poslane preko API-ja, je mogoče preglasiti preprosto tako, da posredujete drugačen SSO User HMAC payload. Na primer, če nastavite uporabniško ime prek API-ja, a nato ob nalaganju strani skozi SSO tok posredujete drugačno, bomo samodejno posodobili njihovo uporabniško ime.
V tem toku ne bomo posodabljali uporabniških parametrov, razen če jih izrecno določite ali nastavite na null (ne undefined).
PUT /api/v1/sso-users/:id 
Ta končna točka omogoča posodobitev enega SSO uporabnika.

V tem primeru navedemo groupIds za nadzor dostopa, vendar je to neobvezno.


DELETE /api/v1/sso-users/:id 
This route provides the removal of a single SSO user by their id.
Note that loading the comment widget again with a payload for this user will simply recreate the user seamlessly.
Deleting the user's comments is possible via the deleteComments query parameter. Note that if this is true:
- All the user's comments will be deleted live.
- All child (now orphan) comments will be deleted or anonymized based on each comment's associated page configuration. For example if thread deletion mode is "anonymize", then replies will remain, and the user's comments will be anonymized. This only applies when
commentDeleteModeisRemove(the default value). - The
creditsCostbecomes2.
Anonymized Comments
You can retain the user's comments but simply anonymize them by setting commentDeleteMode=1.
If the user's comments are anonymized then the following values are set to null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted and isDeletedUser is set to true.
When rendering, the comment widget will use DELETED_USER_PLACEHOLDER (privzeto: "[deleted]") for the user's name and DELETED_CONTENT_PLACEHOLDER for the comment. These can be customized via the Widget Customization UI.
Examples



Struktura naročnine 
Objekt Subscription predstavlja naročnino za uporabnika.
Subscription objekti se ustvarijo, ko uporabnik klikne zvonček za obvestila v pripomočku za komentarje in izbere "Naroči se na to stran".
Naročnine je mogoče ustvariti tudi prek API-ja.
Prisotnost objekta Subscription povzroči ustvarjanje objektov Notification in pošiljanje e-poštnih sporočil, ko so na korenu povezane strani
za katero je Subscription, objavljeni novi komentarji. Pošiljanje e-pošte je odvisno od tipa uporabnika. Pri običajnih uporabnikih to določa optedInNotifications. Pri SSO uporabnikih to določa optedInSubscriptionNotifications. Upoštevajte, da nekateri programi morda nimajo koncepta spletno dostopne strani, v tem primeru preprosto nastavite urlId na id elementa, na katerega se naročate (isto vrednost za urlId, ki bi jo posredovali v pripomoček za komentarje).
Struktura objekta Subscription je naslednja:

GET /api/v1/subscriptions/:id 
Ta končna točka vrne do 30 objektov Subscription urejenih po createdAt, najnovejši prvi.
Filtrirate lahko po userId. Pri SSO je uporabniški id v formatu <tenant id>:<user id>.



POST /api/v1/subscriptions 
Ta API končna točka omogoča ustvarjanje Subscription. Upoštevajte, da ima lahko uporabnik samo eno naročnino na stran, saj je več odvečno, in poskus
ustvariti več kot eno naročnino za istega uporabnika na isti strani bo povzročil napako.
Ustvarjanje naročnine bo povzročilo ustvarjanje objektov Notification, ko je na korenu naročenega urlId objavljen nov komentar (ko je parentId komentarja null).



DELETE /api/v1/subscriptions/:id 
Ta končna točka izbriše posamezen objekt Subscription po id-ju.



Struktura dnevne porabe najemnika 
Objekt TenantDailyUsage predstavlja porabo za najemnika na določen dan. Če ni bilo dejavnosti za določenega najemnika na določen dan, ta dan ne bo imel objekta TenantDailyUsage.
Objekt TenantDailyUsage ni v realnem času in je lahko za dejansko porabo zamaknjen za nekaj minut.
Struktura objekta TenantDailyUsage je naslednja:

GET /api/v1/tenant-daily-usage 
Ta pot omogoča iskanje uporabe najemnika po letu, mesecu in dnevu. Vrne se lahko do 365 objektov, cena pa je 1 api credit na 10 objektov.
Objekti v odgovoru so razvrščeni po datumu ustvarjanja (najstarejši prvi).



Struktura najemnika 
Tenant predstavlja stranko FastComments.com. Ustvarijo jih lahko preko API-ja najemniki z dostopom za white-labeling. Najemniki z white-labelingom ne morejo ustvarjati drugih najemnikov z white-labelingom (dovoljena je le ena raven gnezdenja).
Struktura objekta Tenant je naslednja:

GET /api/v1/tenants/:id 
Ta pot vrne posamezen Tenant glede na id.



GET /api/v1/tenants 
Ta API vrne tenants, ki jih upravlja vaš tenant.
Paginacija se izvaja z parametrom poizvedbe skip. Tenants so vrnjeni v straneh po 100, urejeni po signUpDate in id.
Strošek je odvisen od števila vrnjenih tenants in znaša 1 credit per 10 vrnjenih tenants.

Na objektih Tenant lahko določite parametre meta in poizvedujete po ujemajočih se tenants. Na primer, za ključ someKey in vrednost meta some-value, lahko sestavimo JSON objekt s tem parom ključ/vrednost in ga nato URI-enkodiramo kot parametar poizvedbe za filtriranje:



POST /api/v1/tenants 
Ta ruta omogoča dodajanje enega Tenant.
Ustvarjanje Tenant ima naslednje omejitve:
- Polje
nameje obvezno. domainConfigurationje obvezno.- Naslednjih vrednosti ni dovoljeno posredovati pri ustvarjanju
Tenant:hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmount
- Datum
signUpDatene sme biti v prihodnosti. - Ime
namene sme biti daljše od200 characters. - Elektronski naslov
emailne sme biti daljši od300 characters. - Elektronski naslov
emailmora biti unikaten med vsemi najemniki na FastComments.com. - Ne smete ustvarjati najemnikov, če nadrejeni najemnik nima veljavnega
TenantPackage.- Če je vaš najemnik ustvarjen preko FastComments.com, to ne bi smelo povzročati težav.
- Ne smete ustvariti več najemnikov, kot je določeno v
maxWhiteLabeledTenantsv vašem paketu. - Obvezno morate določiti poizvedbeni parameter
tenantId, ki je id vašegaparent tenantz omogočenim white labelingom.
Za ustvarjanje Tenant potrebujemo le nekaj parametrov:



PATCH /api/v1/tenants/:id 
Ta API endpoint omogoča posodobitev Tenant po id.
Pri posodabljanju Tenant veljajo naslednje omejitve:
- Naslednje vrednosti ni mogoče posodobiti:
hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmountmanagedByTenantId
signUpDatene sme biti v prihodnosti.namene sme presegati dolžine200 characters.emailne sme presegati dolžine300 characters.emailmora biti unikaten za vse FastComments.com tenants.- Ko nastavite
billingInfoValidnatrue, mora bitibillingInfopriložen v istem zahtevku. - Ne smete posodobiti
packageId, povezanega z vašim tenantom. - Ne smete posodobiti
paymentFrequency, povezanega z vašim tenantom.



DELETE /api/v1/tenants/:id 
Ta pot omogoča odstranitev Tenant in vseh povezanih podatkov (uporabniki, komentarji itd.) po id-ju.
The following restrictions exist around removing tenants:
- Najemnik mora biti vaš ali najemnik z belo etiketo, ki ga upravljate.
- Poizvedbeni parameter
suremora biti nastavljen natrue.



Struktura paketa najemnika 
The TenantPackage določa informacije o paketu, ki so na voljo Tenant-u. Tenant lahko ima na voljo več paketov, vendar je hkrati lahko v uporabi le en.
Tenant ne more uporabljati nobenih izdelkov, dokler njegov packageId ne kaže na veljaven TenantPackage.
Obstajata dve vrsti objektov TenantPackage:
- Paketi s fiksno ceno - kjer je
hasFlexPricingfalse. - Fleksibilno pricevanje - kjer je
hasFlexPricingtrue.
V obeh primerih so omejitve določene na računu, ki uporablja paket, vendar pri Flex najemnika zaračunamo osnovno ceno plus porabo, določeno z flex* parametri.
Tenant lahko ima več paketov in lahko spremeni paket sam na Billing Info Page.
Če boste sami urejali obračunavanje za najemnike, boste še vedno morali določiti paket za vsakega najemnika, da definirate njihove omejitve. Preprosto nastavite billingHandledExternally na true na Tenant in ne bodo mogli sami spreminjati svojih podatkov o obračunavanju ali aktivnega paketa.
Ne smete ustvarjati paketov z višjimi omejitvami kot ima nadrejeni tenant.
Struktura objekta TenantPackage je naslednja:

GET /api/v1/tenant-packages/:id 
Ta pot vrne en Tenant Package glede na id.



GET /api/v1/tenant-packages 
Ta API uporablja paginacijo, ki jo zagotavlja poizvedni parameter skip. TenantPackages se vrnejo po 100 na stran, razvrščene po createdAt in id.
Stroški so odvisni od števila vrnjenih tenant packages; znaša 1 credit per 10 vrnjenih tenant packages.



POST /api/v1/tenant-packages 
Ta ruta omogoča dodajanje posameznega TenantPackage.
Ustvarjanje TenantPackage ima naslednje omejitve:
- Naslednji parametri so obvezni:
nametenantIdmonthlyCostUSD- Can be null.yearlyCostUSD- Can be null.maxMonthlyPageLoadsmaxMonthlyAPICreditsmaxMonthlyCommentsmaxConcurrentUsersmaxTenantUsersmaxSSOUsersmaxModeratorsmaxDomainshasDebrandingforWhoTextfeatureTaglineshasFlexPricing- If true, then allflex*parameters are required.
- The
namemay not be longer than50 characters. - Vsak element
forWhoTextne sme biti daljši od200 characters. - Vsak element
featureTaglinesne sme biti daljši od100 characters. TenantPackagemora biti "manjši" od nadrejenega najemnika. Na primer, vsimax*parametri morajo imeti nižje vrednosti kot pri nadrejenem najemniku.- White-label najemnik lahko ima največ pet paketov.
- Samo najemniki z dostopom do white-label lahko ustvarijo
TenantPackage. - Paketov ne smete dodajati svojemu najemniku. :)
TenantPackage lahko ustvarimo na naslednji način:



PATCH /api/v1/tenant-packages/:id 
Ta API endpoint omogoča posodobitev TenantPackage po id.
Posodabljanje TenantPackage ima naslednje omejitve:
- Če nastavite
hasFlexPricingna true, so vsi parametriflex*obvezni v istem zahtevku. namene sme biti daljše od50 characters.- Vsak element
forWhoTextne sme biti daljši od200 characters. - Vsak element
featureTaglinesne sme biti daljši od100 characters. TenantPackagemora biti "manjši" od nadrejenega najemnika. Na primer, vsimax*parametri morajo imeti nižje vrednosti kot pri nadrejenem najemniku.- Ne smete spremeniti
tenantId, povezanega zTenantPackage.



DELETE /api/v1/tenant-packages/:id 
Ta končna točka omogoča odstranitev TenantPackage po id-ju.
Ne smete odstraniti TenantPackage, ki je v uporabi (tenantov packageId kaže na paket). Najprej posodobite Tenant.



Struktura uporabnika najemnika 
TenantUser definira User, ki ga upravlja določen tenant. Njihov račun je popolnoma pod nadzorom tenanta, s katerim so povezani, in njihov račun lahko tenant posodobi ali izbriše preko UI ali API.
Uporabniki tenanta so lahko skrbniki z vsemi dovoljenji in dostopom do Tenant, ali pa so omejeni na določena dovoljenja za moderiranje komentarjev, dostop do API ključev itd.
Struktura za objekt TenantUser je naslednja:

GET /api/v1/tenant-users/:id 
Ta pot vrne enega TenantUser glede na id.



GET /api/v1/tenant-users 
Ta API uporablja paginacijo, ki jo zagotavlja poizvedni parameter skip. TenantUsers se vračajo v straneh po 100, urejeni po signUpDate, username in id.
Cena je odvisna od števila vrnjenih tenant uporabnikov; znaša 1 credit per 10 vrnjenih tenant uporabnikov.



POST /api/v1/tenant-users 
Ta končna točka omogoča dodajanje enega TenantUser.
Ustvarjanje TenantUser ima naslednje omejitve:
usernameje zahtevan.emailje zahtevan.signUpDatene sme biti v prihodnosti.localemora biti na seznamu Podprte lokalne nastavitve.usernamemora biti edinstven na celotnem FastComments.com. Če to predstavlja težavo, priporočamo uporabo SSO.emailmora biti edinstven na celotnem FastComments.com. Če to predstavlja težavo, priporočamo uporabo SSO.- Ne smete ustvariti več uporabnikov najemnika, kot je določeno v
maxTenantUsersv vašem paketu.
TenantUser lahko ustvarite na naslednji način



POST /api/v1/tenant-users/:id/send-login-link 
Ta ruta omogoča pošiljanje prijavne povezave enemu TenantUser.
Uporabno pri množičnem ustvarjanju uporabnikov, ko jim ni treba navodila za prijavo na FastComments.com. To jim pošlje le "čarobno povezavo" za prijavo, ki poteče po 30 days.
Naslednje omejitve veljajo za pošiljanje prijavne povezave TenantUser:
TenantUsermora že obstajati.- Morate imeti dostop do upravljanja
Tenant, kateremu pripadaTenantUser.
Prijavno povezavo TenantUser lahko pošljemo na naslednji način:

To bo poslalo e-pošto, kot na primer Bob at TenantName is inviting you to be a moderator...


PATCH /api/v1/tenant-users/:id 
Ta pot omogoča posodobitev posameznega TenantUser.
Posodabljanje TenantUser ima naslednje omejitve:
signUpDatene sme biti v prihodnosti.localemora biti na seznamu Podprte lokalizacije.usernamemora biti edinstven po celotnem FastComments.com. Če je to težava, priporočamo uporabo SSO.emailmora biti edinstven po celotnem FastComments.com. Če je to težava, priporočamo uporabo SSO.- Ne morete posodobiti
tenantIduporabnika.
Ustvarimo lahko TenantUser na naslednji način



DELETE /api/v1/tenant-users/:id 
Ta ruta omogoča odstranitev TenantUser po id.
Brisanje komentarjev uporabnika je možno preko poizvedbenega parametra deleteComments. Upoštevajte, da če je to true:
- Vsi komentarji uporabnika bodo takoj izbrisani.
- Vsi child (sedaj osiroteli) komentarji bodo izbrisani ali anonimizirani glede na konfiguracijo strani, povezane z vsakim komentarjem. Na primer, če je thread deletion mode "anonymize", bodo odgovori ostali, komentatorjevi komentarji pa bodo anonimizirani. To velja samo, ko je
commentDeleteModenastavljeno naRemove(privzeta vrednost). - Vrednost
creditsCostpostane2.
Anonimizirani komentarji
Komentarje uporabnika lahko obdržite, vendar jih preprosto anonimizirate tako, da nastavite commentDeleteMode=1.
Če so komentarji uporabnika anonimizirani, se naslednje vrednosti nastavijo na null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted and isDeletedUser sta nastavljena na true.
Pri upodabljanju bo komentarni pripomoček za ime uporabnika uporabil DELETED_USER_PLACEHOLDER (privzeto: "[deleted]") in DELETED_CONTENT_PLACEHOLDER za vsebino komentarja. To je mogoče prilagoditi prek uporabniškega vmesnika za prilagajanje widgeta.
Primeri



Struktura uporabnika 
User je objekt, ki predstavlja najpogostejši skupni imenovalec vseh uporabnikov.
Upoštevajte, da imamo pri FastComments več različnih primerov uporabe uporabnikov:
- Secure SSO
- Simple SSO
- Uporabniki najemnika (na primer: skrbniki)
- Komentatorji
Ta API je namenjen Komentatorjem in uporabnikom, ustvarjenim z Simple SSO. Praktično vsak uporabnik, ustvarjen prek vaše strani, je dostopen preko tega API-ja. Uporabniki najemnika so prav tako dostopni na ta način, vendar boste več informacij dobili pri interakciji z API-jem /tenant-users/.
Za Secure SSO uporabite API /sso-users/.
Te vrste uporabnikov ne morete posodobiti. Ustvarili so svoj račun preko vaše strani, zato nudimo osnovni dostop samo za branje, vendar ne morete narediti sprememb. Če želite imeti takšen potek, morate nastaviti Secure SSO.
Struktura objekta User je naslednja:

GET /api/v1/users/:id 
Ta endpoint vrne posameznega User po id.



Struktura glasu 
Objekt Vote predstavlja glas, ki ga je oddal uporabnik.
Razmerje med komentarji in glasovi je določeno preko commentId.
Struktura za objekt Vote je naslednja:

GET /api/v1/votes 
Glasove je treba pridobiti po urlId.
Vrste glasov
Obstajajo tri vrste glasov:
- Avtentificirani glasovi, ki se uporabljajo za ustrezen komentar. Te lahko ustvarite preko tega API-ja.
- Avtentificirani glasovi, ki so v postopku preverjanja, in zato še niso uporabljeni za komentar. Ti se ustvarijo, ko uporabnik uporabi mehanizem FastComments.com prijava za glasovanje.
- Anonimni glasovi, ki se uporabljajo za ustrezen komentar. Ti se ustvarijo skupaj z anonimnim komentiranjem.
V API-ju so ti vrnjeni v ločenih seznamih, da se zmanjša zmeda.



Opombe o anonimnih glasovih
Upoštevajte, da se bodo anonimni glasovi, ustvarjeni preko tega API-ja, pojavili v seznamu appliedAuthorizedVotes. Štejemo jih za pooblaščene, saj so bili ustvarjeni preko API-ja z API ključem.
Struktura appliedAnonymousVotes je za glasove, ustvarjene brez e-pošte, API ključa itd.
GET /api/v1/votes/for-user 
Omogoča pridobivanje glasov, ki jih je uporabnik oddal za določen urlId. Sprejme userId, ki je lahko katerikoli FastComments.com ali SSO User.
To je uporabno, če želite prikazati, ali je uporabnik glasoval pri komentarju. Pri pridobivanju komentarjev preprosto pokličite to API istočasno za uporabnika z
istim urlId.
Če uporabljate anonimno glasovanje, boste namesto tega želeli posredovati anonUserId.


Upoštevajte, da se bodo anonimni glasovi pojavili v seznamu appliedAuthorizedVotes. Štejemo jih za pooblaščene, saj so bili ustvarjeni preko API z API ključem.


POST /api/v1/votes 
Ta pot omogoča dodajanje enega pooblaščenega Vote. Glasovi so lahko up (+1) ali down (-1).




Ustvarjanje anonimnih glasov
Anonimne glasove lahko ustvarite tako, da v parametrih poizvedbe nastavite anonUserId namesto userId.
Ta id ne rabi ustrezati nobenemu uporabniškemu objektu nikjer (od tod anonimno). To je preprosto identifikator za sejo, tako da lahko v isti seji ponovno pridobite glasove, da preverite, ali je bil komentar glasovan.
Če nimate česa takega kot "anonymous sessions", kot jih ima FastComments - lahko preprosto to nastavite na naključen ID, na primer UUID (čeprav cenimo krajše identifikatorje zaradi prihranka prostora).
Druge opombe
- Ta API upošteva nastavitve na ravni najemnika. Na primer, če onemogočite glasovanje za določeno stran, in poskusite ustvariti glas preko API-ja, bo spodletelo s kodo napake
voting-disabled. - Ta API je privzeto aktiven.
- Ta API bo posodobil
votesustreznegaComment.
DELETE /api/v1/votes/:id 
Ta ruta omogoča brisanje posameznega Vote.



Opombe:
- Ta API upošteva nastavitve na ravni najemnika. Na primer, če onemogočite glasovanje za določeno stran in poskušate ustvariti glas prek API-ja, bo to neuspešno in se bo vrnila koda napake
voting-disabled. - Ta API je privzeto aktiven.
- Ta API bo posodobil
votesustreznegaComment.
Struktura konfiguracije domene 
A DomainConfig object represents configuration for a domain for a tenant.
The structure for the DomainConfig object is as follows:


Za avtentikacijo
Konfiguracija domen se uporablja za določanje, kateri spletni mesti lahko gostijo vtičnik FastComments za vaš račun. To je osnovna oblika avtentikacije, kar pomeni, da lahko dodajanje ali odstranjevanje katere koli konfiguracije domene vpliva na razpoložljivost vaše namestitve FastComments v produkcijskem okolju.
Ne odstranjujte ali ne spreminjajte lastnosti domain v Domain Config za domeno, ki se trenutno uporablja, razen če nameravate to domeno onemogočiti.
To ima enako vedenje kot odstranitev domene iz /auth/my-account/configure-domains.
Upoštevajte tudi, da bo odstranitev domene iz uporabniškega vmesnika My Domains odstranila tudi ustrezno konfiguracijo za to domeno, ki je bila morda dodana prek tega vmesnika.
Za prilagajanje e-pošte
Povezavo za odjavo v nogi e-poštnega sporočila in funkcijo enoklikne odjave, ki jo ponuja veliko e-poštnih odjemalcev, je mogoče konfigurirati prek tega API-ja z nastavitvijo footerUnsubscribeURL oziroma emailHeaders.
Za DKIM
Po opredelitvi vaših DKIM DNS zapisov preprosto posodobite DomainConfig z vašo DKIM konfiguracijo, pri čemer uporabite zgoraj določeno strukturo.
GET /api/v1/domain-configs 
Ta API omogoča pridobitev vseh DomainConfig objektov za najemnika.



GET /api/v1/domain-configs/:domain 
Posamezne DomainConfigs je mogoče pridobiti po ustrezni domain.



POST /api/v1/domain-configs 
Ta API endpoint omogoča ustvarjanje konfiguracij domen.
Dodajanje konfiguracije za domeno pooblasti to domeno za račun FastComments.
Pogoste rabe tega API-ja so začetna nastavitev, če je želja dodati več domen, ali prilagojena konfiguracija za pošiljanje e-pošte.



PATCH /api/v1/domain-configs/:domain 
Ta API končna točka omogoča posodobitev konfiguracije domene z navedbo samo domene in atributa, ki ga želite posodobiti.



PUT /api/v1/domain-configs/:domain 
Ta API končna točka omogoča zamenjavo konfiguracije domene.



DELETE /api/v1/domain-configs/:domain 
Ta pot omogoča odstranitev enega DomainConfig po ID-ju.
- Note: Odstranitev
DomainConfigbo preklicala dovoljenje tej domeni za uporabo FastComments. - Note: Ponovno dodajanje domene prek uporabniškega vmesnika bo znova ustvarilo objekt (z izpolnjeno samo lastnostjo
domain).



Struktura konfiguracije vprašanja 
FastComments nudi način za sestavljanje vprašanj in združevanje njihovih rezultatov. Primer vprašanja (v nadaljevanju imenovan QuestionConfig) je lahko ocena z zvezdicami, drsnik ali NPS vprašanje (določeno z type).
Podatke o vprašanjih je mogoče združevati posamično, skupaj, skozi čas, na splošno, po strani itd.
Okvir ima vse zmogljivosti, potrebne za izdelavo odjemalskih vtičnikov (z vašim strežnikom pred tem API-jem), nadzornih plošč za skrbnike in orodij za poročanje.
Najprej moramo definirati QuestionConfig. Struktura je naslednja:

GET /api/v1/question-configs 
Ta ruta vrne do 100 QuestionConfig objektov naenkrat, paginirano. Strošek je 1 za vsakih 100 objektov. Razvrščeni so
po besedilu vprašanja naraščajoče (question field).



GET /api/v1/question-configs/:id 
Ta endpoint vrne en QuestionConfig po njegovem id.



POST /api/v1/question-configs 
Ta API endpoint omogoča ustvarjanje QuestionConfig.



PATCH /api/v1/question-configs/:id 
Ta končna točka omogoča posodobitev posamezne QuestionConfig.
Naslednja struktura predstavlja vse vrednosti, ki jih je mogoče spremeniti:




DELETE /api/v1/question-configs/:id 
Ta ruta omogoča odstranitev QuestionConfig po ID-ju.
To bo izbrisalo vse ustrezne rezultate vprašanj (ne pa komentarjev). To je del visoke porabe kreditov.



Struktura rezultata vprašanja 
Da shranite rezultate za vprašanja, ustvarite QuestionResult. Nato lahko združite rezultate vprašanj in jih povežete s komentarji za namene poročanja.

GET /api/v1/question-results 
Ta ruta vrne do 1000 QuestionResults objektov naenkrat, paginirano. Strošek je 1 za vsakih 100 objektov. Razvrščeni so po createdAt, naraščajoče. Lahko filtrirate po različnih parametrih.



GET /api/v1/question-results/:id 
Ta končna točka vrne posamezen QuestionResult po njegovem id.



POST /api/v1/question-results 
Ta API endpoint omogoča ustvarjanje QuestionResult.



PATCH /api/v1/question-results/:id 
Ta končna točka omogoča posodobitev enega QuestionResult.
Naslednja struktura predstavlja vse vrednosti, ki jih je mogoče spremeniti:




DELETE /api/v1/question-results/:id 
Ta končna točka omogoča odstranitev QuestionResult glede na id.



GET /api/v1/question-results-aggregate 
Tukaj poteka agregacija rezultatov.
Struktura odziva agregacije je naslednja:

Tu so razpoložljivi parametri poizvedbe za agregacijo:

Primer zahteve:

Primer odziva:


Opombe o zmogljivosti
- Pri neujemajočem predpomnilniku (cache miss) agregacije običajno trajajo pet sekund na milijon rezultatov.
- V nasprotnem primeru so zahtevki v konstantnem času.
Opombe o predpomnjenju in stroških
- Ko je
forceRecalculatedoločen, je strošek vedno10, namesto običajnih2. - Če predpomnilnik poteče in se podatki ponovno izračunajo, je strošek še vedno konstanten
2, čeforceRecalculateni naveden. Predpomnilnik poteče glede na velikost agregiranega nabora podatkov (lahko se giblje med 30 sekundami in 5 minutami). - To spodbuja uporabo predpomnilnika.
GET /api/v1/question-results-aggregate/combine/comments 
Tukaj se izvaja združevanje rezultatov s komentarji. Uporabno na primer za ustvarjanje "nedavni pozitivni in negativni komentarji" grafikona za izdelek.
Iskanje lahko izvedete po razponu vrednosti (vključno), za eno ali več vprašanj in po začetnem datumu (vključno).
Struktura odgovora je naslednja:

Spodaj so parametri poizvedbe, ki so na voljo za agregacijo:

Tu je primer zahteve:

Primer odgovora:


Opombe o predpomnjenju in stroških
- Ko je določen
forceRecalculate, je strošek vedno10, namesto običajnega2. - Če predpomnilnik poteče in so podatki ponovno izračunani, je strošek še vedno konstanten
2, čeforceRecalculateni določen. - To je namenjeno spodbujanju uporabe predpomnilnika.
Struktura uporabniške značke 
UserBadge je objekt, ki predstavlja značko, dodeljeno uporabniku v sistemu FastComments.
Značke se lahko uporabnikom dodelijo samodejno na podlagi njihove aktivnosti (kot so število komentarjev, čas odgovora, status veterana) ali ročno s strani skrbnikov spletnega mesta.
Struktura objekta UserBadge je naslednja:

GET /api/v1/user-badges 
Ta končna točka vam omogoča pridobivanje značk uporabnikov na podlagi različnih kriterijev.
Example Request:
Run 
You can add various query parameters to filter the results:
userId- Pridobi značke za določenega uporabnikabadgeId- Pridobi primere določene značketype- Filtriraj po tipu značke (0=CommentCount, 1=CommentUpVotes, 2=CommentReplies, etc. Glejte strukturo UserBadge za celoten seznam)displayedOnComments- Filtriraj glede na to, ali je značka prikazana pri komentarjih (true/false)limit- Največje število značk za vrniti (privzeto 30, max 200)skip- Število značk za preskočiti (za pagination)
Example Response:

Possible Error Responses:


GET /api/v1/user-badges/:id 
Ta končna točka omogoča pridobitev določene uporabniške značke po njenem edinstvenem ID-ju.
Primer zahteve:
Run 
Primer odgovora:

Možni odgovori z napako:


POST /api/v1/user-badges 
This endpoint allows you to create a new user badge assignment.
Example Request:
Run 
The request body must contain the following parameters:
userId(required) - The ID of the user to assign the badge tobadgeId(required) - The ID of the badge to assigndisplayedOnComments(optional) - Whether the badge should be displayed on the user's comments (defaults to true)
Important Notes:
- The badge must exist and be enabled in your tenant's badge catalog
- You can only assign badges to users who belong to your tenant or have commented on your site
Example Response:

Possible Error Responses:





PUT /api/v1/user-badges/:id 
Ta končna točka vam omogoča posodobitev dodelitve uporabniške značke.
Trenutno je edina lastnost, ki jo je mogoče posodobiti, displayedOnComments, ki določa, ali se značka prikazuje pri komentarjih uporabnika.
Primer zahteve:
Run 
Primer odgovora:

Možni odgovori z napako:



DELETE /api/v1/user-badges/:id 
Ta končna točka omogoča brisanje dodelitve uporabniške značke.
Example Request:
Run 
Example Response:

Possible Error Responses:



Struktura napredka uporabniške značke 
UserBadgeProgress je objekt, ki predstavlja napredek uporabnika pri pridobivanju različnih značk v sistemu FastComments.
To sledenje pomaga določiti, kdaj naj uporabniki prejmejo samodejne značke glede na njihovo dejavnost in sodelovanje v vaši skupnosti.
Struktura objekta UserBadgeProgress je naslednja:

GET /api/v1/user-badge-progress 
Ta končna točka vam omogoča pridobitev zapisov o napredku uporabniških značk na podlagi različnih kriterijev.
Primer zahteve:
Run 
Lahko dodate različne parametre poizvedbe za filtriranje rezultatov:
userId- Pridobi napredek za določenega uporabnikalimit- Največje število zapisov za vrnitev (privzeto 30, največ 200)skip- Število zapisov za preskočitev (za straničenje)
Primer odgovora:

Možni odgovori z napako:


GET /api/v1/user-badge-progress/:id 
Ta končna točka vam omogoča pridobiti določen zapis napredka uporabnikove značke po njegovem edinstvenem ID-ju.
Example Request:
Run 
Example Response:

Possible Error Responses:


GET /api/v1/user-badge-progress/user/:userId 
Ta končna točka omogoča pridobitev zapisa o napredku značk uporabnika na podlagi ID-ja uporabnika.
Primer zahteve:
Run 
Primer odgovora:

Možni odgovori z napako:



Zaključek
Upamo, da se vam je naša dokumentacija API zdela izčrpna in enostavna za razumevanje. Če opazite kakšne vrzeli, nam jih sporočite spodaj.