
Sprache 🇩🇪 Deutsch
API-Ressourcen
Aggregationen
Audit-Logs
Kommentare
E-Mail-Vorlagen
Hashtags
Moderatoren
Anzahl der Benachrichtigungen
Benachrichtigungen
Seiten
Ausstehende Webhook-Ereignisse
SSO-Benutzer
Abonnements
Tägliche Mandantennutzung
Mandanten
Mandantenpakete
Mandantenbenutzer
Benutzer
Abstimmungen
Domain-Konfigurationen
Fragekonfigurationen
Frageergebnisse
Aggregation von Frageergebnissen
Benutzerabzeichen
Fortschritt bei Benutzerabzeichen
Die FastComments API
FastComments stellt eine API zur Verfügung, um mit vielen Ressourcen zu interagieren. Erstellen Sie Integrationen mit unserer Plattform oder bauen Sie sogar Ihre eigenen Clients!
In dieser Dokumentation finden Sie alle vom API unterstützten Ressourcen, dokumentiert mit ihren Anfrage- und Antworttypen.
Für Enterprise-Kunden wird sämtlicher API-Zugriff im Audit-Log protokolliert.
Generierte SDKs
FastComments erzeugt jetzt eine API-Spezifikation aus unserem Code (dies ist noch nicht vollständig, enthält aber viele APIs).
Wir haben jetzt auch SDKs für beliebte Sprachen:
- fastcomments-cpp
- fastcomments-go
- fastcomments-java
- fastcomments-sdk-js
- fastcomments-nim
- fastcomments-php
- fastcomments-php-sso
- fastcomments-python
- fastcomments-ruby
- fastcomments-rust
- fastcomments-swift
Authentifizierung
Die API wird authentifiziert, indem Sie Ihren api key entweder als X-API-KEY Header oder als API_KEY Query-Parameter übergeben. Sie benötigen außerdem Ihre tenantId
für API-Aufrufe. Diese kann auf derselben Seite wie Ihr api key abgerufen werden.
Sicherheitshinweis
Diese Routen sind dafür gedacht, von einem Server aufgerufen zu werden. RUFEN SIE SIE NICHT aus einem Browser auf. Wenn Sie dies tun, wird Ihr API-Schlüssel offengelegt - dadurch erhält jede Person, die den Quellcode einer Seite einsehen kann, vollen Zugriff auf Ihr Konto!
Authentifizierungsoption Eins - Header
- Header:
X-API-KEY - Header:
X-TENANT-ID
Authentifizierungsoption Zwei - Query-Parameter
- Query-Parameter:
API_KEY - Query-Parameter:
tenantId
API-Ressourcen 
Ressourcennutzung
Es sollte beachtet werden, dass das Abrufen von Daten aus der API als Nutzung auf Ihrem Konto gezählt wird.
Jede Ressource listet diese Nutzung in ihrem eigenen Abschnitt auf.
Einige Ressourcen sind teurer zu bedienen als andere. Jeder Endpunkt hat festgelegte Kosten in Credits pro API-Aufruf. Für einige Endpunkte variiert die Anzahl der Credits basierend auf den Optionen und Antwortgrößen.
Die API-Nutzung kann auf der Abrechnungsanalyse-Seite überprüft werden und wird alle paar Minuten aktualisiert.
Hinweis!
Wir empfehlen, zuerst die Seiten-Dokumentation zu lesen, um Verwirrung bei der Bestimmung zu vermeiden, welche Werte für urlId in der Comment-API übergeben werden sollen.
Daten aggregieren 
Diese API aggregiert Dokumente durch Gruppierung (wenn groupBy angegeben ist) und wendet mehrere Operationen an. Verschiedene Operationen (z.B. sum, countDistinct, avg, usw.) werden unterstützt.
Die Kosten sind variabel. Alle 500 gescannten Objekte kosten 1 API-Credit.
Die maximal erlaubte Speichernutzung pro API-Aufruf beträgt standardmäßig 64MB, und standardmäßig dürfen Sie nur eine Aggregation gleichzeitig ausführen. Wenn Sie mehrere Aggregationen gleichzeitig einreichen, werden sie in die Warteschlange gestellt und in der Reihenfolge der Einreichung ausgeführt. Ausstehende Aggregationen warten maximal 60 Sekunden, danach wird die Anfrage zeitüberschritten. Einzelne Aggregationen können bis zu 5 Minuten laufen.
Wenn Sie verwaltete Tenants haben, können Sie alle untergeordneten Tenant-Ressourcen in einem Aufruf aggregieren, indem Sie den parentTenantId-Query-Parameter übergeben.
Beispiele
Beispiel: Eindeutige Werte zählen


Beispiel: Distinct Count

Antwort:

Beispiel: Werte mehrerer Felder summieren

Antwort:

Beispiel: Durchschnittswerte mehrerer Felder

Antwort:

Beispiel: Min/Max-Werte mehrerer Felder

Antwort:

Beispiel: Eindeutige Werte mehrerer Felder zählen

Antwort:

Beispiel: Abfrageerstellung

Antwort:

Beispiel: Kommentare zur Überprüfung zählen

Antwort:

Beispiel: Aufschlüsselung von genehmigten, überprüften und Spam-Kommentaren

Antwort:

Strukturen


Folgende Ressourcen können aggregiert werden:
- 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
Audit-Log-Struktur 
Ein AuditLog ist ein Objekt, das ein auditiertes Ereignis für Tenants darstellt, die Zugriff auf diese Funktion haben.
Die Struktur für das AuditLog-Objekt ist wie folgt:

Das Audit-Log ist unveränderlich. Es kann auch nicht manuell beschrieben werden. Nur FastComments.com entscheidet, wann ins Audit-Log geschrieben wird. Sie können es jedoch über diese API lesen.
Ereignisse im Audit-Log verfallen nach zwei Jahren.
GET /api/v1/audit-logs 
Diese API verwendet Paginierung, bereitgestellt durch die Parameter skip, before und after. AuditLogs werden in Seiten von 1000 zurückgegeben, sortiert nach when und id.
Das Abrufen von jeweils 1000 Logs hat Credit-Kosten von 10.
Standardmäßig erhalten Sie eine Liste mit den neuesten Elementen zuerst. So können Sie beginnend mit skip=0 abfragen und paginieren, bis Sie den letzten verarbeiteten Datensatz finden.
Alternativ können Sie älteste-zuerst sortieren und paginieren, bis keine Datensätze mehr vorhanden sind.
Die Sortierung kann durch Setzen von order auf entweder ASC oder DESC erfolgen. Der Standard ist ASC.
Abfragen nach Datum sind über before und after als Zeitstempel mit Millisekunden möglich. before und after sind NICHT inklusive.



Kommentarstruktur 
Ein Comment-Objekt repräsentiert einen Kommentar, der von einem Benutzer hinterlassen wurde.
Die Beziehung zwischen übergeordneten und untergeordneten Kommentaren wird über parentId definiert.
Die Struktur für das Comment-Objekt ist wie folgt:

Einige dieser Felder sind mit READONLY markiert - diese werden von der API zurückgegeben, können aber nicht gesetzt werden.
Kommentartext-Struktur
Kommentare werden in einem FastComments-Dialekt von Markdown geschrieben, was einfach Markdown plus traditionelle bbcode-Style-Tags für Bilder ist, wie [img]pfad[/img].
Text wird in zwei Feldern gespeichert. Der vom Benutzer eingegebene Text wird unverändert im comment-Feld gespeichert. Dieser wird gerendert und im commentHTML-Feld gespeichert.
Die erlaubten HTML-Tags sind b, u, i, strike, pre, span, code, img, a, strong, ul, ol, li, und br.
Es wird empfohlen, das HTML zu rendern, da es sich um eine sehr kleine Teilmenge von HTML handelt und der Bau eines Renderers ziemlich einfach ist. Es gibt mehrere Bibliotheken für React Native und Flutter, die dabei helfen können.
Sie können auch den nicht normalisierten Wert des comment-Feldes rendern. Ein Beispiel-Parser ist hier..
Der Beispiel-Parser könnte auch angepasst werden, um mit HTML zu arbeiten und die HTML-Tags in erwartete Elemente für Ihre Plattform zu transformieren.
Tagging
Wenn Benutzer in einem Kommentar markiert werden, werden die Informationen in einer Liste namens mentions gespeichert. Jedes Objekt in dieser Liste
hat die folgende Struktur.
Run 
HashTags
Wenn Hashtags verwendet und erfolgreich geparst werden, werden die Informationen in einer Liste namens hashTags gespeichert. Jedes Objekt in dieser Liste
hat die folgende Struktur. Hashtags können auch manuell zum hashTags-Array des Kommentars für Abfragen hinzugefügt werden, wenn retain gesetzt ist.
Run 
GET /api/v1/comments 
Diese API wird verwendet, um Kommentare zur Anzeige für einen Benutzer abzurufen. Sie filtert beispielsweise automatisch nicht genehmigte oder Spam-Kommentare heraus.
Paginierung
Die Paginierung kann auf zwei Arten erfolgen, abhängig von den Leistungsanforderungen und dem Anwendungsfall:
- Am schnellsten: Vorberechnete Paginierung:
- So funktioniert FastComments, wenn Sie unsere vorgefertigten Widgets und Clients verwenden.
- Ein Klick auf "weiter" erhöht einfach die Seitenzahl.
- Sie können sich das so vorstellen, als würde es durch einen Key-Value-Speicher abgerufen.
- Definieren Sie auf diese Weise einfach einen
page-Parameter beginnend bei0und eine Sortierrichtung alsdirection. - Seitengrößen können über Anpassungsregeln konfiguriert werden.
- Am flexibelsten: Flexible Paginierung:
- Auf diese Weise können Sie benutzerdefinierte
limit- undskip-Parameter definieren. Übergeben Sie nichtpage. - Sortierrichtung
directionwird ebenfalls unterstützt. limitist die Gesamtzahl, die nach Anwendung vonskipzurückgegeben wird.- Beispiel: Setzen Sie
skip = 200, limit = 100beiSeitengröße = 100undpage = 2.
- Beispiel: Setzen Sie
- Untergeordnete Kommentare zählen weiterhin bei der Paginierung. Sie können dies mit der Option
asTreeumgehen.- Sie können untergeordnete Kommentare über
limitChildrenundskipChildrenpaginieren. - Sie können die Tiefe der zurückgegebenen Threads über
maxTreeDepthbegrenzen.
- Sie können untergeordnete Kommentare über
- Auf diese Weise können Sie benutzerdefinierte
Threads
- Bei Verwendung der
Vorberechneten Paginierungwerden Kommentare nach Seite gruppiert und Kommentare in Threads beeinflussen die Gesamtseite.- Auf diese Weise können Threads auf dem Client basierend auf
parentIdbestimmt werden. - Beispiel: Bei einer Seite mit einem Kommentar der obersten Ebene und 29 Antworten und der Einstellung
page=0in der API - erhalten Sie nur den Kommentar der obersten Ebene und die 29 untergeordneten. - Beispielbild hier, das mehrere Seiten illustriert.
- Auf diese Weise können Threads auf dem Client basierend auf
- Bei Verwendung der
Flexiblen Paginierungkönnen Sie einenparentId-Parameter definieren.- Setzen Sie diesen auf null, um nur Kommentare der obersten Ebene zu erhalten.
- Um dann Threads anzuzeigen, rufen Sie die API erneut auf und übergeben
parentId. - Eine gängige Lösung ist, einen API-Aufruf für die Kommentare der obersten Ebene zu machen und dann parallele API-Aufrufe für die untergeordneten Kommentare jedes Kommentars zu machen.
- NEU seit Feb 2023! Als Baum abrufen mit
&asTree=true.- Sie können sich das als
Flexible Paginierung als Baumvorstellen. - Nur die Kommentare der obersten Ebene zählen bei der Paginierung.
- Setzen Sie
parentId=null, um den Baum am Wurzelknoten zu beginnen (Sie müssenparentIdsetzen). - Setzen Sie
skipundlimitfür die Paginierung. - Setzen Sie
asTreeauftrue. - Die Credit-Kosten erhöhen sich um das
2-fache, da unser Backend in diesem Szenario viel mehr Arbeit leisten muss. - Setzen Sie
maxTreeDepth,limitChildrenundskipChildrennach Bedarf.
- Sie können sich das als
Bäume erklärt
Bei Verwendung von asTree kann es schwierig sein, die Paginierung nachzuvollziehen. Hier ist eine hilfreiche Grafik:
Kommentare im Kontext eines Benutzers abrufen
Die /comments-API kann in zwei Kontexten für verschiedene Anwendungsfälle verwendet werden:
- Für die Rückgabe von Kommentaren, sortiert und mit Informationen versehen, um Ihren eigenen Client zu erstellen.
- Definieren Sie in diesem Fall einen
contextUserId-Abfrageparameter.
- Definieren Sie in diesem Fall einen
- Zum Abrufen von Kommentaren von Ihrem Backend für benutzerdefinierte Integrationen.
- Die Plattform verwendet standardmäßig dies ohne
contextUserId.
- Die Plattform verwendet standardmäßig dies ohne




Kommentare als Baum abrufen
Es ist möglich, die Kommentare als Baum zurückzugeben, wobei die Paginierung nur die Kommentare der obersten Ebene zählt.

Möchten Sie nur die Kommentare der obersten Ebene und die unmittelbaren Kinder erhalten? Hier ist eine Möglichkeit:

In Ihrer Benutzeroberfläche müssen Sie jedoch möglicherweise wissen, ob bei
jedem Kommentar eine Schaltfläche "Antworten anzeigen" angezeigt werden soll. Beim Abrufen von Kommentaren über einen Baum gibt es eine hasChildren-Eigenschaft, die
bei Bedarf an Kommentare angehängt wird.
Kommentare als Baum abrufen, Suche nach Hash-Tag
Es ist möglich, mit der API nach Hashtag zu suchen, über Ihren gesamten Tenant (nicht auf eine Seite oder urlId beschränkt).
In diesem Beispiel lassen wir urlId weg und suchen nach mehreren Hashtags. Die API gibt nur Kommentare zurück, die alle angeforderten Hashtags haben.

Alle Anfrageparameter

Die Antwort

Hilfreiche Tipps
URL-ID
Sie möchten wahrscheinlich die Comment-API mit dem urlId-Parameter verwenden. Sie können zuerst die Pages-API aufrufen, um zu sehen, wie die verfügbaren urlId-Werte aussehen.
Anonyme Aktionen
Für anonymes Kommentieren möchten Sie wahrscheinlich anonUserId beim Abrufen von Kommentaren und beim Durchführen von Markierungen und Blockierungen übergeben.
(!) Dies ist für viele App-Stores erforderlich, da Benutzer in der Lage sein müssen, benutzergenerierten Inhalt, den sie sehen können, zu markieren, auch wenn sie nicht angemeldet sind. Wenn Sie dies nicht tun, kann Ihre App aus dem entsprechenden Store entfernt werden.
Kommentare werden nicht zurückgegeben
Überprüfen Sie, ob Ihre Kommentare genehmigt sind und kein Spam sind.
GET /api/v1/comments/:id 
Diese API bietet die Möglichkeit, einen einzelnen Kommentar nach ID abzurufen.



POST /api/v1/comments 
Dieser API-Endpunkt bietet die Möglichkeit, Kommentare zu erstellen.
Häufige Anwendungsfälle sind benutzerdefinierte UIs, Integrationen oder Importe.
Hinweise:
- Diese API kann das Kommentar-Widget bei Bedarf "live" aktualisieren (dies erhöht
creditsCostvon1auf2). - Diese API erstellt automatisch Benutzerobjekte in unserem System, wenn eine E-Mail angegeben wird.
- Der Versuch, zwei Kommentare mit unterschiedlichen E-Mails, aber demselben Benutzernamen zu speichern, führt zu einem Fehler für den zweiten Kommentar.
- Wenn Sie
parentIdangeben und ein untergeordneter KommentarnotificationSentForParentauf false hat, werden wir Benachrichtigungen für den übergeordneten Kommentar senden. Dies geschieht stündlich (wir fassen die Benachrichtigungen zusammen, um die Anzahl der gesendeten E-Mails zu reduzieren). - Wenn Sie Willkommens-E-Mails beim Erstellen von Benutzern oder Kommentarverifizierungs-E-Mails senden möchten, setzen Sie
sendEmailsin den Query-Parametern auftrue. - Über diese API erstellte Kommentare erscheinen auf den Analytics- und Moderationsseiten der Admin-App.
- "Schlechte Wörter" werden weiterhin in den Kommentatornamen und im Kommentartext maskiert, wenn die Einstellung aktiviert ist.
- Über diese API erstellte Kommentare können bei Bedarf immer noch auf Spam überprüft werden.
- Konfigurationen wie die maximale Kommentarlänge, wenn über die Customization Rule Admin-Seite konfiguriert, gelten auch hier.
Die minimal erforderlichen Daten zur Übermittlung, die im Kommentar-Widget angezeigt werden, sind wie folgt:

Eine realistischere Anfrage könnte so aussehen:



PATCH /api/v1/comments/:id 
Dieser API-Endpunkt bietet die Möglichkeit, einen einzelnen Kommentar zu aktualisieren.
Hinweise:
- Diese API kann das Kommentar-Widget bei Bedarf "live" aktualisieren (dies erhöht die Basis-
creditsCostvon1auf2).- Dies kann das Migrieren von Kommentaren zwischen Seiten "live" machen (Ändern der
urlId). - Migrationen kosten zusätzlich
2Credits, da Seiten vorberechnet werden und dies CPU-intensiv ist.
- Dies kann das Migrieren von Kommentaren zwischen Seiten "live" machen (Ändern der
- Anders als bei der Create-API wird diese API NICHT automatisch Benutzerobjekte in unserem System erstellen, wenn eine E-Mail angegeben wird.
- Über diese API aktualisierte Kommentare können bei Bedarf immer noch auf Spam überprüft werden.
- Konfigurationen wie die maximale Kommentarlänge, wenn über die Customization Rule Admin-Seite konfiguriert, gelten auch hier.
- Um Benutzern zu ermöglichen, ihren Kommentartext zu aktualisieren, können Sie einfach
commentim Anfrage-Body angeben. Wir generieren das resultierendecommentHTML.- Wenn Sie sowohl
commentals auchcommentHTMLdefinieren, werden wir das HTML nicht automatisch generieren. - Wenn der Benutzer Erwähnungen oder Hashtags in seinem neuen Text hinzufügt, wird es weiterhin wie bei der
POST-API verarbeitet.
- Wenn Sie sowohl
- Beim Aktualisieren von
commenterEmailbei einem Kommentar ist es am besten, auchuserIdanzugeben. Andernfalls müssen Sie sicherstellen, dass der Benutzer mit dieser E-Mail zu Ihrem Tenant gehört, oder die Anfrage schlägt fehl.



DELETE /api/v1/comments/:id 
Dieser API-Endpunkt bietet die Möglichkeit, einen Kommentar zu löschen.
Hinweise:
- Diese API kann das Kommentar-Widget bei Bedarf "live" aktualisieren (dies erhöht
creditsCostvon1auf2). - Diese API löscht alle untergeordneten Kommentare.



POST /api/v1/comments/:id/flag 
Dieser API-Endpunkt bietet die Möglichkeit, einen Kommentar für einen bestimmten Benutzer zu melden.
Hinweise:
- Dieser Aufruf muss immer im Kontext eines Benutzers erfolgen. Der Benutzer kann ein FastComments.com-Benutzer, SSO-Benutzer oder Tenant-Benutzer sein.
- Wenn ein Flag-to-Hide-Schwellenwert festgelegt ist, wird der Kommentar automatisch live ausgeblendet, nachdem er die definierte Anzahl von Malen gemeldet wurde.
- Nachdem er automatisch nicht genehmigt (ausgeblendet) wurde - kann der Kommentar nur von einem Administrator oder Moderator wieder genehmigt werden. Das Aufheben der Meldung wird den Kommentar nicht wieder genehmigen.

Für anonymes Melden müssen wir eine anonUserId angeben. Dies kann eine ID sein, die die anonyme Sitzung repräsentiert, oder eine zufällige UUID.
Dies ermöglicht uns, das Melden und Aufheben der Meldung von Kommentaren zu unterstützen, auch wenn ein Benutzer nicht eingeloggt ist. Auf diese Weise kann der Kommentar als
gemeldet markiert werden, wenn Kommentare mit derselben anonUserId abgerufen werden.



POST /api/v1/comments/:id/un-flag 
Dieser API-Endpunkt bietet die Möglichkeit, die Markierung eines Kommentars für einen bestimmten Benutzer aufzuheben.
Hinweise:
- Dieser Aufruf muss immer im Kontext eines Benutzers erfolgen. Der Benutzer kann ein FastComments.com-Benutzer, SSO-Benutzer oder Tenant-Benutzer sein.
- Nachdem ein Kommentar automatisch nicht genehmigt (ausgeblendet) wurde - kann der Kommentar nur von einem Administrator oder Moderator wieder genehmigt werden. Das Aufheben der Markierung wird den Kommentar nicht wieder genehmigen.

Für anonymes Markieren müssen wir eine anonUserId angeben. Dies kann eine ID sein, die die anonyme Sitzung repräsentiert, oder eine zufällige UUID.



POST /api/v1/comments/:id/block 
Dieser API-Endpunkt bietet die Möglichkeit, einen Benutzer zu blockieren, der einen bestimmten Kommentar geschrieben hat. Es unterstützt das Blockieren von Kommentaren, die von FastComments.com-Benutzern, SSO-Benutzern und Tenant-Benutzern geschrieben wurden.
Es unterstützt einen commentIdsToCheck-Body-Parameter, um zu prüfen, ob andere potenziell sichtbare Kommentare auf dem Client nach dieser Aktion blockiert/entsperrt werden sollten.
Hinweise:
- Dieser Aufruf muss immer im Kontext eines Benutzers erfolgen. Der Benutzer kann ein FastComments.com-Benutzer, SSO-Benutzer oder Tenant-Benutzer sein.
- Die
userIdin der Anfrage ist der Benutzer, der das Blockieren durchführt. Zum Beispiel:Benutzer AmöchteBenutzer Bblockieren. Übergeben SieuserId=Benutzer Aund die Kommentar-ID, dieBenutzer Bgeschrieben hat. - Vollständig anonyme Kommentare (keine Benutzer-ID, keine E-Mail) können nicht blockiert werden und es wird ein Fehler zurückgegeben.

Für anonymes Blockieren müssen wir eine anonUserId angeben. Dies kann eine ID sein, die die anonyme Sitzung repräsentiert, oder eine zufällige UUID.
Dies ermöglicht uns, das Blockieren von Kommentaren zu unterstützen, auch wenn ein Benutzer nicht eingeloggt ist, indem die Kommentare mit derselben anonUserId abgerufen werden.



POST /api/v1/comments/:id/un-block 
Dieser API-Endpunkt bietet die Möglichkeit, einen Benutzer zu entsperren, der einen bestimmten Kommentar geschrieben hat. Es unterstützt das Entsperren von Kommentaren, die von FastComments.com-Benutzern, SSO-Benutzern und Tenant-Benutzern geschrieben wurden.
Es unterstützt einen commentIdsToCheck-Body-Parameter, um zu prüfen, ob andere potenziell sichtbare Kommentare auf dem Client nach dieser Aktion blockiert/entsperrt werden sollten.
Hinweise:
- Dieser Aufruf muss immer im Kontext eines Benutzers erfolgen. Der Benutzer kann ein FastComments.com-Benutzer, SSO-Benutzer oder Tenant-Benutzer sein.
- Die
userIdin der Anfrage ist der Benutzer, der das Entsperren durchführt. Zum Beispiel:Benutzer AmöchteBenutzer Bentsperren. Übergeben SieuserId=Benutzer Aund die Kommentar-ID, dieBenutzer Bgeschrieben hat. - Vollständig anonyme Kommentare (keine Benutzer-ID, keine E-Mail) können nicht blockiert werden und es wird ein Fehler zurückgegeben.




Struktur der E-Mail-Vorlage 
Ein EmailTemplate-Objekt repräsentiert die Konfiguration für eine benutzerdefinierte E-Mail-Vorlage für einen Tenant.
Das System wählt die zu verwendende E-Mail-Vorlage über:
- Ihren Typ-Identifikator, wir nennen dies
emailTemplateId. Dies sind Konstanten. - Die
domain. Wir versuchen zuerst, eine Vorlage für die Domain zu finden, mit der das zugehörige Objekt (wie einComment) verbunden ist, und wenn keine Übereinstimmung gefunden wird, versuchen wir, eine Vorlage zu finden, bei der domain null oder*ist.
Die Struktur des EmailTemplate-Objekts ist wie folgt:

Hinweise
- Sie können die gültigen
emailTemplateId-Werte vom/definitions-Endpunkt abrufen. - Der
/definitions-Endpunkt enthält auch die Standardübersetzungen und Testdaten. - Vorlagen können nicht gespeichert werden, wenn sie eine ungültige Struktur oder Testdaten haben.
GET /api/v1/email-templates/:id 
Einzelne EmailTemplates können nach ihrer entsprechenden id abgerufen werden (NICHT emailTemplateId).



GET /api/v1/email-templates 
Diese API verwendet Paginierung, bereitgestellt durch den page-Abfrageparameter. EmailTemplates werden in Seiten von 100 zurückgegeben, sortiert nach createdAt und dann id.



PATCH /api/v1/email-templates/:id 
Dieser API-Endpunkt bietet die Möglichkeit, eine E-Mail-Vorlage zu aktualisieren, indem nur die ID und die zu aktualisierenden Attribute angegeben werden.
Beachten Sie, dass alle gleichen Validierungen für das Erstellen einer Vorlage auch gelten, zum Beispiel:
- Die Vorlage muss renderbar sein. Dies wird bei jeder Aktualisierung überprüft.
- Sie können keine doppelten Vorlagen für dieselbe Domain haben (ansonsten würde eine stillschweigend ignoriert werden).



POST /api/v1/email-templates 
Dieser API-Endpunkt bietet die Möglichkeit, E-Mail-Vorlagen zu erstellen.
Hinweise:
- Sie können nicht mehrere Vorlagen mit derselben
emailTemplateIdund derselben Domain haben. - Sie können jedoch eine Wildcard-Vorlage (
domain=*) und eine domainspezifische Vorlage für dieselbeemailTemplateIdhaben. - Die Angabe von
domainist nur relevant, wenn Sie verschiedene Domains haben oder spezifische Vorlagen zum Testen verwenden möchten (domainauflocalhostusw. gesetzt). - Wenn Sie
domainangeben, muss es mit einerDomainConfigübereinstimmen. Bei einem Fehler wird eine Liste gültiger Domains bereitgestellt. - Die Vorlagensyntax ist EJS und wird mit einem Timeout von 500ms gerendert. P99 für das Rendern liegt bei <5ms, wenn Sie also 500ms erreichen, stimmt etwas nicht.
- Ihre Vorlage muss mit Ihren angegebenen
testDatagerendert werden, um zu speichern. Renderfehler werden aggregiert und im Dashboard gemeldet (bald über API verfügbar).
Die Mindestdaten, die zum Hinzufügen einer Vorlage erforderlich sind, sind wie folgt:

Möglicherweise möchten Sie Vorlagen pro Website haben, in diesem Fall definieren Sie domain:



POST /api/v1/email-templates/render 
Dieser API-Endpunkt bietet die Möglichkeit, E-Mail-Vorlagen in der Vorschau anzuzeigen.



DELETE /api/v1/email-templates/:id 
Diese Route ermöglicht das Entfernen einer einzelnen EmailTemplate nach ID.



Hashtag-Struktur 
Ein HashTag-Objekt repräsentiert ein Tag, das von einem Benutzer hinterlassen werden kann. HashTags können verwendet werden, um auf einen externen Inhalt zu verlinken oder um
zusammengehörige Kommentare zu verbinden.
Die Struktur des HashTag-Objekts ist wie folgt:

Hinweise:
- In einigen API-Endpunkten werden Sie sehen, dass der Hashtag in der URL verwendet wird. Denken Sie daran, Werte URL-zu-kodieren. Zum Beispiel sollte
#stattdessen als%23dargestellt werden. - Einige dieser Felder sind als
READONLYmarkiert - diese werden von der API zurückgegeben, können aber nicht gesetzt werden.
GET /api/v1/hash-tags 
Diese API verwendet Paginierung, bereitgestellt durch den page-Abfrageparameter. HashTags werden in Seiten von 100 zurückgegeben, sortiert nach tag.



PATCH /api/v1/hash-tags/:tag 
Diese Route bietet die Möglichkeit, einen einzelnen HashTag zu aktualisieren.



POST /api/v1/hash-tags 
Diese Route bietet die Möglichkeit, einen einzelnen HashTag hinzuzufügen.



POST /api/v1/hash-tags/bulk 
Diese Route bietet die Möglichkeit, bis zu 100 HashTag-Objekte auf einmal hinzuzufügen.



DELETE /api/v1/hash-tags/:tag 
Diese Route ermöglicht das Entfernen eines HashTag-Benutzers anhand des angegebenen Tags.
Beachten Sie, dass Hashtags, sofern die automatische HashTag-Erstellung nicht deaktiviert ist, von einem Benutzer neu erstellt werden können, indem er beim Kommentieren den Hashtag angibt.



Moderator-Struktur 
Ein Moderator-Objekt repräsentiert die Konfiguration für einen Moderator.
Es gibt drei Arten von Moderatoren:
- Administratorbenutzer, die das
isCommentModeratorAdmin-Flag haben. - SSO-Benutzer mit dem
isCommentModeratorAdmin-Flag. - Reguläre Kommentatoren oder FastComments.com-Benutzer, die als Moderatoren eingeladen werden.
Die Moderator-Struktur wird verwendet, um den Moderationsstatus von Anwendungsfall 3 darzustellen.
Wenn Sie einen Benutzer über die API als Moderator einladen möchten, verwenden Sie die Moderator-API, indem Sie einen Moderator erstellen und ihn einladen.
Wenn der Benutzer kein FastComments.com-Konto hat, hilft ihm die Einladungs-E-Mail bei der Einrichtung. Wenn er bereits ein Konto hat, erhält er
Moderationszugriff auf Ihren Tenant und die userId des Moderator-Objekts wird aktualisiert, um auf seinen Benutzer zu verweisen. Sie werden keinen API-Zugriff
auf seinen Benutzer haben, da dieser in diesem Fall ihm selbst gehört und von FastComments.com verwaltet wird.
Wenn Sie eine vollständige Verwaltung des Benutzerkontos benötigen, empfehlen wir entweder die Verwendung von SSO oder das Hinzufügen als Tenant-Benutzer und
dann das Hinzufügen eines Moderator-Objekts, um ihre Statistiken zu verfolgen.
Die Moderator-Struktur kann als Statistik-Verfolgungsmechanismus für die Anwendungsfälle 1 und 2 verwendet werden. Nachdem Sie den Benutzer erstellt haben, fügen Sie ein Moderator-Objekt
mit definierter userId hinzu und ihre Statistiken werden auf der Kommentar-Moderatoren-Seite verfolgt.
Die Struktur des Moderator-Objekts ist wie folgt:

GET /api/v1/moderators/:id 
Diese Route gibt einen einzelnen Moderator nach seiner ID zurück.



GET /api/v1/moderators 
Diese API verwendet Paginierung, bereitgestellt durch den skip-Abfrageparameter. Moderatoren werden in Seiten von 100 zurückgegeben, sortiert nach createdAt und id.
Die Kosten basieren auf der Anzahl der zurückgegebenen Moderatoren und kosten 1 Credit pro 10 zurückgegebene Moderatoren.



PATCH /api/v1/moderators/:id 
Dieser API-Endpunkt bietet die Möglichkeit, einen Moderator nach id zu aktualisieren.
Das Aktualisieren eines Moderator hat folgende Einschränkungen:
- Die folgenden Werte dürfen beim Aktualisieren eines
Moderatornicht angegeben werden:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Wenn eine
userIdangegeben wird, muss dieser Benutzer existieren. - Wenn eine
userIdangegeben wird, muss sie zum selbentenantIdgehören, der in den Abfrageparametern angegeben ist. - Zwei Moderatoren im selben Tenant können nicht mit derselben
emailhinzugefügt werden. - Sie können die mit einem
ModeratorverknüpftetenantIdnicht ändern.



POST /api/v1/moderators 
Diese Route bietet die Möglichkeit, einen einzelnen Moderator hinzuzufügen.
Das Erstellen eines Moderator hat folgende Einschränkungen:
- Ein
nameund eineemailmüssen immer angegeben werden. EineuserIdist optional. - Die folgenden Werte dürfen beim Erstellen eines
Moderatornicht angegeben werden:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Wenn eine
userIdangegeben wird, muss dieser Benutzer existieren. - Wenn eine
userIdangegeben wird, muss sie zum selbentenantIdgehören, der in den Abfrageparametern angegeben ist. - Zwei Moderatoren im selben Tenant können nicht mit derselben
emailhinzugefügt werden.
Wir können einen Moderator für einen Benutzer erstellen, von dem wir nur die E-Mail kennen:

Oder wir können einen Moderator für einen Benutzer erstellen, der zu unserem Tenant gehört, um seine Moderationsstatistiken zu verfolgen:



POST /api/v1/moderators/:id/send-invite 
Diese Route bietet die Möglichkeit, einen einzelnen Moderator einzuladen.
Die folgenden Einschränkungen gelten für das Senden einer Einladungs-E-Mail an einen Moderator:
- Der
Moderatormuss bereits existieren. - Der
fromNamedarf nicht länger als100 Zeichensein.
Hinweise:
- Wenn ein Benutzer mit der angegebenen E-Mail bereits existiert, wird er eingeladen, die Kommentare Ihres Tenants zu moderieren.
- Wenn ein Benutzer mit der angegebenen E-Mail nicht existiert, führt der Einladungslink ihn durch die Erstellung seines Kontos.
- Die Einladung läuft nach
30 Tagenab.
Wir können einen Moderator für einen Benutzer erstellen, von dem wir nur die E-Mail kennen:

Dies sendet eine E-Mail wie Bob bei TenantName lädt Sie ein, Moderator zu werden...


DELETE /api/v1/moderators/:id 
Diese Route ermöglicht das Entfernen eines Moderator nach ID.



Struktur der Anzahl der Benachrichtigungen 
Ein NotificationCount-Objekt repräsentiert die Anzahl ungelesener Benachrichtigungen und Metadaten für einen Benutzer.
Wenn es keine ungelesenen Benachrichtigungen gibt, existiert kein NotificationCount für den Benutzer.
NotificationCount-Objekte werden automatisch erstellt und können nicht über die API erstellt werden. Sie laufen auch nach einem Jahr ab.
Sie können den Zähler für ungelesene Benachrichtigungen eines Benutzers löschen, indem Sie seinen NotificationCount löschen.
Die Struktur des NotificationCount-Objekts ist wie folgt:

GET /api/v1/notification-count/:user_id 
Diese Route gibt einen einzelnen NotificationCount nach Benutzer-ID zurück. Bei SSO hat die Benutzer-ID das Format <tenant id>:<user id>.
Wenn es keine ungelesenen Benachrichtigungen gibt, existiert kein NotificationCount - Sie erhalten also einen 404-Fehler.
Dies unterscheidet sich von notifications/count dadurch, dass es viel schneller ist, aber keine Filterung erlaubt.



DELETE /api/v1/notification-count/:user_id 
Diese Route löscht einen einzelnen NotificationCount nach Benutzer-ID. Bei SSO hat die Benutzer-ID das Format <tenant id>:<user id>.
Dadurch wird der Zähler für ungelesene Benachrichtigungen des Benutzers gelöscht (die rote Glocke im Kommentar-Widget wird ausgeblendet und der Zähler verschwindet).



Benachrichtigungsstruktur 
Ein Notification-Objekt repräsentiert eine Benachrichtigung für einen Benutzer.
Notification-Objekte werden automatisch erstellt und können nicht über die API erstellt werden. Sie laufen auch nach einem Jahr ab.
Benachrichtigungen können nicht gelöscht werden. Sie können jedoch aktualisiert werden, um viewed auf false zu setzen, und Sie können nach viewed abfragen.
Ein Benutzer kann sich auch von Benachrichtigungen für einen bestimmten Kommentar abmelden, indem er optedOut in der Benachrichtigung auf true setzt. Sie können sich wieder anmelden, indem Sie es auf false setzen.
Es gibt verschiedene Benachrichtigungstypen - prüfen Sie relatedObjectType und type.
Die Art und Weise, wie Benachrichtigungen erstellt werden, ist recht flexibel und kann durch viele Szenarien ausgelöst werden (siehe NotificationType).
Stand heute bedeutet die Existenz einer Notification nicht tatsächlich, dass eine E-Mail gesendet wird oder werden sollte. Vielmehr werden die Benachrichtigungen
für den Benachrichtigungs-Feed und verwandte Integrationen verwendet.
Die Struktur des Notification-Objekts ist wie folgt:

GET /api/v1/notifications 
Diese Route gibt bis zu 30 Notification-Objekte zurück, sortiert nach createdAt, neueste zuerst.
Sie können nach userId filtern. Bei SSO hat die Benutzer-ID das Format <tenant id>:<user id>.



GET /api/v1/notifications/count 
Diese Route gibt ein Objekt zurück, das die Anzahl der Benachrichtigungen unter einem count-Parameter enthält.
Sie ist langsamer als /notification-count/ und kostet doppelt so viele Credits, ermöglicht aber die Filterung nach mehr Dimensionen.
Sie können nach denselben Parametern wie beim /notifications-Endpunkt filtern, wie z.B. userId. Bei SSO hat die Benutzer-ID das Format <tenant id>:<user id>.




PATCH /api/v1/notifications/:id 
Dieser API-Endpunkt bietet die Möglichkeit, eine Notification nach id zu aktualisieren.
Das Aktualisieren einer Notification hat folgende Einschränkungen:
- Sie können nur die folgenden Felder aktualisieren:
viewedoptedOut



Seitenstruktur 
Ein Page-Objekt repräsentiert die Seite, zu der viele Kommentare gehören können. Diese Beziehung wird durch
urlId definiert.
Eine Page speichert Informationen wie den Seitentitel, die Kommentaranzahl und die urlId.
Die Struktur des Page-Objekts ist wie folgt:

GET /api/v1/pages 
Sie können derzeit nur alle Seiten (oder eine einzelne Seite über /by-url-id) abrufen, die mit Ihrem Konto verknüpft sind. Wenn Sie eine feinere Suche wünschen, kontaktieren Sie uns.



Hilfreicher Tipp
Die Comment-API erfordert eine urlId. Sie können zuerst die Pages-API aufrufen, um zu sehen, wie die verfügbaren urlId-Werte
aussehen.
GET /api/v1/pages/by-url-id 
Einzelne Seiten können nach ihrer entsprechenden urlId abgerufen werden. Dies kann nützlich sein, um Seitentitel oder Kommentaranzahlen nachzuschlagen.



Hilfreicher Tipp
Denken Sie daran, Werte wie die urlId URL-zu-kodieren.
PATCH /api/v1/pages/:id 
Diese Route bietet die Möglichkeit, eine einzelne Page zu aktualisieren. Die entsprechenden Kommentare werden aktualisiert.



Hinweis
Einige Parameter im Page-Objekt werden automatisch aktualisiert. Dies sind die Zähl- und Titel-Attribute. Zähler können nicht über
die API aktualisiert werden, da es sich um berechnete Werte handelt. Der Seiten-title kann über die API gesetzt werden, würde aber überschrieben werden, wenn das Kommentar-Widget auf
einer Seite mit derselben urlId und einem anderen Seitentitel verwendet wird.
POST /api/v1/pages 
Dieser API-Endpunkt bietet die Möglichkeit, Seiten zu erstellen.
Ein häufiger Anwendungsfall ist die Zugriffskontrolle.
Hinweise:
- Wenn Sie einen Kommentar in einem Kommentar-Thread hinterlassen oder die API aufgerufen haben, um einen
Commentzu erstellen, haben Sie bereits einPage-Objekt erstellt! Sie können versuchen, es über die/by-url-idPage-Route abzurufen, indem Sie dieselbeurlIdübergeben, die an das Kommentar-Widget übergeben wurde. - Die
Page-Struktur enthält einige berechnete Werte. Derzeit sind diescommentCountundrootCommentCount. Sie werden automatisch befüllt und können nicht über die API gesetzt werden. Der Versuch, dies zu tun, führt dazu, dass die API einen Fehler zurückgibt.



DELETE /api/v1/pages/:id 
Diese Route ermöglicht das Entfernen einer einzelnen Seite nach ID.
Beachten Sie, dass die Interaktion mit dem Kommentar-Widget für eine Seite mit derselben urlId die Page einfach nahtlos neu erstellt.



Struktur ausstehender Webhook-Ereignisse 
Ein PendingWebhookEvent-Objekt repräsentiert ein in der Warteschlange befindliches Webhook-Ereignis, das aussteht.
PendingWebhookEvent-Objekte werden automatisch erstellt und können nicht manuell über die API erstellt werden. Sie laufen auch nach einem Jahr ab.
Sie können gelöscht werden, wodurch die Aufgabe aus der Warteschlange entfernt wird.
Es gibt verschiedene Ereignistypen - prüfen Sie eventType (OutboundSyncEventType) und type (OutboundSyncType).
Ein häufiger Anwendungsfall für diese API ist die Implementierung von benutzerdefiniertem Monitoring. Sie möchten vielleicht den /count-Endpunkt regelmäßig aufrufen,
um die ausstehende Anzahl für gegebene Filter abzufragen.
Die Struktur des PendingWebhookEvent-Objekts ist wie folgt:

GET /api/v1/pending-webhook-events 
Diese Route gibt eine Liste ausstehender Webhook-Ereignisse unter einem pendingWebhookEvents-Parameter zurück.
Diese API verwendet Paginierung, bereitgestellt durch den skip-Parameter. PendingWebhookEvents werden in Seiten von 100 zurückgegeben, sortiert nach createdAt neueste zuerst.



GET /api/v1/pending-webhook-events/count 
Diese Route gibt ein Objekt zurück, das die Anzahl der ausstehenden Webhook-Ereignisse unter einem count-Parameter enthält.
Sie können nach denselben Parametern wie beim /pending-webhook-events-Endpunkt filtern.



DELETE /api/v1/pending-webhook-events/:id 
Diese Route ermöglicht das Löschen eines einzelnen PendingWebhookEvent.
Wenn Sie eine Massenlöschung benötigen, rufen Sie die GET-API mit Paginierung auf und rufen Sie dann diese API sequentiell auf.



SSO-Benutzer-Struktur 
FastComments bietet eine einfach zu verwendende SSO-Lösung. Das Aktualisieren der Benutzerinformationen mit der HMAC-basierten Integration ist so einfach wie das Laden der Seite mit einem aktualisierten Payload durch den Benutzer.
Es kann jedoch wünschenswert sein, einen Benutzer außerhalb dieses Flows zu verwalten, um die Konsistenz Ihrer Anwendung zu verbessern.
Die SSO-Benutzer-API bietet eine Möglichkeit, Objekte zu erstellen, zu lesen, zu aktualisieren und zu löschen, die wir SSOUsers nennen. Diese Objekte unterscheiden sich von regulären Benutzern und werden aus Gründen der Typsicherheit getrennt gehalten.
Die Struktur des SSOUser-Objekts ist wie folgt:

Abrechnung für SSO-Benutzer
SSO-Benutzer werden je nach ihren Berechtigungsflags unterschiedlich abgerechnet:
- Reguläre SSO-Benutzer: Benutzer ohne Admin- oder Moderatorberechtigungen werden als reguläre SSO-Benutzer abgerechnet
- SSO-Admins: Benutzer mit
isAccountOwner- oderisAdminAdmin-Flags werden separat als SSO-Admins abgerechnet (gleicher Tarif wie reguläre Tenant-Admins) - SSO-Moderatoren: Benutzer mit
isCommentModeratorAdmin-Flag werden separat als SSO-Moderatoren abgerechnet (gleicher Tarif wie reguläre Moderatoren)
Wichtig: Um doppelte Abrechnung zu vermeiden, dedupliziert das System automatisch SSO-Benutzer gegen reguläre Tenant-Benutzer und Moderatoren nach E-Mail-Adresse. Wenn ein SSO-Benutzer dieselbe E-Mail wie ein regulärer Tenant-Benutzer oder Moderator hat, wird er nicht doppelt abgerechnet.
Zugriffskontrolle
Benutzer können in Gruppen aufgeteilt werden. Dafür ist das Feld groupIds da, und es ist optional.
@Mentions
Standardmäßig verwendet @mentions username, um nach anderen SSO-Benutzern zu suchen, wenn das @-Zeichen eingegeben wird. Wenn displayName verwendet wird, werden Ergebnisse, die mit
username übereinstimmen, ignoriert, wenn es eine Übereinstimmung für displayName gibt, und die @mention-Suchergebnisse verwenden displayName.
Abonnements
Mit FastComments können Benutzer eine Seite abonnieren, indem sie auf das Glockensymbol im Kommentar-Widget klicken und auf Abonnieren klicken.
Bei einem regulären Benutzer senden wir ihm Benachrichtigungs-E-Mails basierend auf seinen Benachrichtigungseinstellungen.
Bei SSO-Benutzern teilen wir dies aus Gründen der Abwärtskompatibilität auf. Benutzer erhalten diese zusätzlichen Abonnement-Benachrichtigungs-E-Mails
nur, wenn Sie optedInSubscriptionNotifications auf true setzen.
Badges
Sie können SSO-Benutzern Badges über die badgeConfig-Eigenschaft zuweisen. Badges sind visuelle Indikatoren, die neben dem Benutzernamen in Kommentaren erscheinen.
badgeIds- Ein Array von Badge-IDs, die dem Benutzer zugewiesen werden sollen. Diese müssen gültige Badge-IDs sein, die in Ihrem FastComments-Konto erstellt wurden. Auf 30 Badges begrenzt.override- Wenn wahr, werden alle vorhandenen Badges, die in Kommentaren angezeigt werden, durch die bereitgestellten ersetzt. Wenn falsch oder weggelassen, werden die bereitgestellten Badges zu allen vorhandenen Badges hinzugefügt.update- Wenn wahr, werden Badge-Anzeigeeigenschaften aus der Tenant-Konfiguration aktualisiert, wann immer sich der Benutzer anmeldet.
GET /api/v1/sso-users 
Diese Route gibt SSO-Benutzer in Seiten von 100 zurück. Die Paginierung wird durch den skip-Parameter bereitgestellt. Benutzer sind nach ihrem signUpDate und id sortiert.



GET /api/v1/sso-users/by-id/:id 
Diese Route gibt einen einzelnen SSO-Benutzer nach seiner ID zurück.



GET /api/v1/sso-users/by-email/:email 
Diese Route gibt einen einzelnen SSO-Benutzer nach seiner E-Mail zurück.



PATCH /api/v1/sso-users/:id 
Diese Route bietet die Möglichkeit, einen einzelnen SSO-Benutzer zu aktualisieren.



POST /api/v1/sso-users 
Diese Route ermöglicht die Erstellung eines einzelnen SSO-Benutzers.
Der Versuch, zwei Benutzer mit derselben ID zu erstellen, führt zu einem Fehler.

In diesem Beispiel geben wir groupIds für die Zugriffskontrolle an, aber dies ist optional.


Integrationshinweis
Daten, die über die API übergeben werden, können einfach überschrieben werden, indem ein anderer SSO-Benutzer-HMAC-Payload übergeben wird. Wenn Sie beispielsweise einen Benutzernamen über die API setzen, aber dann einen anderen über den SSO-Flow beim Laden der Seite übergeben, aktualisieren wir automatisch ihren Benutzernamen.
Wir aktualisieren keine Benutzerparameter in diesem Flow, es sei denn, Sie geben sie explizit an oder setzen sie auf null (nicht undefined).
PUT /api/v1/sso-users/:id 
Diese Route bietet die Möglichkeit, einen einzelnen SSO-Benutzer zu aktualisieren.

In diesem Beispiel geben wir groupIds für die Zugriffskontrolle an, aber dies ist optional.


DELETE /api/v1/sso-users/:id 
Diese Route ermöglicht das Entfernen eines einzelnen SSO-Benutzers nach seiner ID.
Beachten Sie, dass das erneute Laden des Kommentar-Widgets mit einem Payload für diesen Benutzer den Benutzer einfach nahtlos neu erstellt.
Das Löschen der Kommentare des Benutzers ist über den deleteComments-Abfrageparameter möglich. Beachten Sie, dass wenn dies wahr ist:
- Alle Kommentare des Benutzers werden live gelöscht.
- Alle untergeordneten (nun verwaisten) Kommentare werden basierend auf der zugehörigen Seitenkonfiguration jedes Kommentars gelöscht oder anonymisiert. Wenn beispielsweise der Thread-Löschmodus "anonymisieren" ist, bleiben Antworten erhalten und die Kommentare des Benutzers werden anonymisiert. Dies gilt nur, wenn
commentDeleteModeRemoveist (der Standardwert). - Die
creditsCostwird zu2.
Anonymisierte Kommentare
Sie können die Kommentare des Benutzers behalten, aber einfach anonymisieren, indem Sie commentDeleteMode=1 setzen.
Wenn die Kommentare des Benutzers anonymisiert werden, werden die folgenden Werte auf null gesetzt:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted und isDeletedUser wird auf true gesetzt.
Beim Rendern verwendet das Kommentar-Widget DELETED_USER_PLACEHOLDER (Standard: "[deleted]") für den Namen des Benutzers und DELETED_CONTENT_PLACEHOLDER für den Kommentar. Diese können über die Widget-Anpassungs-Benutzeroberfläche angepasst werden.
Beispiele



Abonnement-Struktur 
Ein Subscription-Objekt repräsentiert ein Abonnement für einen Benutzer.
Subscription-Objekte werden erstellt, wenn ein Benutzer auf das Benachrichtigungsglocken-Symbol im Kommentar-Widget klickt und "Diese Seite abonnieren" auswählt.
Abonnements können auch über die API erstellt werden.
Das Vorhandensein eines Subscription-Objekts bewirkt, dass Notification-Objekte generiert und E-Mails gesendet werden, wenn neue Kommentare am Wurzelknoten der zugehörigen Seite hinterlassen werden,
für die das Subscription gilt. Das Senden von E-Mails hängt vom Benutzertyp ab. Für reguläre Benutzer hängt dies von optedInNotifications ab. Für SSO-Benutzer hängt dies von optedInSubscriptionNotifications ab. Beachten Sie, dass einige Anwendungen möglicherweise kein Konzept einer webzugänglichen Seite haben, in diesem Fall setzen Sie urlId einfach auf
die ID des Elements, das Sie abonnieren (derselbe Wert für urlId, den Sie an das Kommentar-Widget übergeben würden).
Die Struktur des Subscription-Objekts ist wie folgt:

GET /api/v1/subscriptions/:id 
Diese Route gibt bis zu 30 Subscription-Objekte zurück, sortiert nach createdAt, neueste zuerst.
Sie können nach userId filtern. Bei SSO hat die Benutzer-ID das Format <tenant id>:<user id>.



POST /api/v1/subscriptions 
Dieser API-Endpunkt bietet die Möglichkeit, ein Subscription zu erstellen. Beachten Sie, dass ein Benutzer nur ein Abonnement pro Seite haben kann, da mehr redundant ist, und der Versuch,
mehr als ein Abonnement für denselben Benutzer für dieselbe Seite zu erstellen, führt zu einem Fehler.
Das Erstellen eines Abonnements führt dazu, dass Notification-Objekte erstellt werden, wenn ein neuer Kommentar am Wurzelknoten der abonnierten urlId hinterlassen wird (wenn parentId des Kommentars null ist).



DELETE /api/v1/subscriptions/:id 
Diese Route löscht ein einzelnes Subscription-Objekt nach ID.



Struktur der täglichen Mandantennutzung 
Ein TenantDailyUsage-Objekt repräsentiert die Nutzung für einen Tenant an einem bestimmten Tag. Wenn es keine Aktivität für einen bestimmten Tenant an einem bestimmten
Tag gab, wird dieser Tag kein TenantDailyUsage-Objekt haben.
Das TenantDailyUsage-Objekt ist nicht in Echtzeit und kann einige Minuten hinter der tatsächlichen Nutzung zurückliegen.
Die Struktur des TenantDailyUsage-Objekts ist wie folgt:

GET /api/v1/tenant-daily-usage 
Diese Route ermöglicht die Suche nach der Nutzung eines Tenants nach Jahr, Monat und Tag. Es können bis zu 365 Objekte zurückgegeben werden, und die Kosten betragen 1 API-Credit pro 10 Objekte.
Antwortobjekte sind nach ihrem Erstellungsdatum sortiert (die ältesten zuerst).



Mandantenstruktur 
Der Tenant definiert einen FastComments.com-Kunden. Sie können über die API von Tenants mit White-Labeling-Zugang erstellt werden. White-Label-Tenants
können keine anderen White-Label-Tenants erstellen (nur eine Verschachtelungsebene ist erlaubt).
Die Struktur des Tenant-Objekts ist wie folgt:

GET /api/v1/tenants/:id 
Diese Route gibt einen einzelnen Tenant nach ID zurück.



GET /api/v1/tenants 
Diese API gibt Tenants zurück, die von Ihrem Tenant verwaltet werden.
Die Paginierung wird durch den skip-Abfrageparameter bereitgestellt. Tenants werden in Seiten von 100 zurückgegeben, sortiert nach signUpDate und id.
Die Kosten basieren auf der Anzahl der zurückgegebenen Tenants und betragen 1 Credit pro 10 zurückgegebene Tenants.

Sie können meta-Parameter für die Tenant-Objekte definieren und nach passenden Tenants abfragen. Zum Beispiel können wir für den Schlüssel someKey und den Meta-Wert some-value
ein JSON-Objekt mit diesem Schlüssel/Wert-Paar erstellen und es dann als Abfrageparameter URI-kodieren, um zu filtern:



POST /api/v1/tenants 
Diese Route bietet die Möglichkeit, einen einzelnen Tenant hinzuzufügen.
Das Erstellen eines Tenant hat die folgenden Einschränkungen:
- Ein
nameist erforderlich. domainConfigurationist erforderlich.- Die folgenden Werte dürfen beim Erstellen eines
Tenantnicht angegeben werden:hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmount
- Das
signUpDatedarf nicht in der Zukunft liegen. - Der
namedarf nicht länger als200 Zeichensein. - Die
emaildarf nicht länger als300 Zeichensein. - Die
emailmuss über alle FastComments.com-Tenants hinweg eindeutig sein. - Sie können keine Tenants erstellen, wenn der übergeordnete Tenant kein gültiges
TenantPackagedefiniert hat.- Wenn Ihr Tenant über FastComments.com erstellt wurde, sollte dies kein Problem sein.
- Sie können nicht mehr Tenants erstellen als unter
maxWhiteLabeledTenantsin Ihrem Paket definiert. - Sie müssen den
tenantId-Abfrageparameter angeben, der die ID Ihresübergeordneten Tenantsmit aktiviertem White Labeling ist.
Wir können einen Tenant mit nur wenigen Parametern erstellen:



PATCH /api/v1/tenants/:id 
Dieser API-Endpunkt bietet die Möglichkeit, einen Tenant nach id zu aktualisieren.
Das Aktualisieren eines Tenant hat die folgenden Einschränkungen:
- Die folgenden Werte können nicht aktualisiert werden:
hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmountmanagedByTenantId
- Das
signUpDatedarf nicht in der Zukunft liegen. - Der
namedarf nicht länger als200 Zeichensein. - Die
emaildarf nicht länger als300 Zeichensein. - Die
emailmuss über alle FastComments.com-Tenants hinweg eindeutig sein. - Wenn
billingInfoValidauftruegesetzt wird, mussbillingInfoin derselben Anfrage angegeben werden. - Sie können die
packageId, die mit Ihrem eigenen Tenant verknüpft ist, nicht aktualisieren. - Sie können die
paymentFrequency, die mit Ihrem eigenen Tenant verknüpft ist, nicht aktualisieren.



DELETE /api/v1/tenants/:id 
Diese Route ermöglicht das Entfernen eines Tenant und aller zugehörigen Daten (Benutzer, Kommentare usw.) nach ID.
Die folgenden Einschränkungen gelten für das Entfernen von Tenants:
- Der Tenant muss Ihr eigener oder ein White-Label-Tenant sein, den Sie verwalten.
- Der
sure-Abfrageparameter muss auftruegesetzt sein.



Struktur des Mandantenpakets 
Das TenantPackage definiert Paketinformationen, die einem Tenant zur Verfügung stehen. Ein Tenant kann viele Pakete zur Verfügung haben, aber nur
eines zu einem bestimmten Zeitpunkt nutzen.
Ein Tenant kann für keine Produkte verwendet werden, bis seine packageId auf ein gültiges TenantPackage verweist.
Es gibt zwei Arten von TenantPackage-Objekten:
- Pakete mit Festpreisen - wobei
hasFlexPricingfalse ist. - Flexible Preisgestaltung - wobei
hasFlexPricingtrue ist.
In beiden Fällen werden Limits für das Konto definiert, das das Paket verwendet, jedoch wird bei Flex dem Tenant ein Grundpreis plus
die Nutzung berechnet, definiert durch die flex*-Parameter.
Ein Tenant kann mehrere Tenant-Pakete haben und die Möglichkeit haben, das Paket selbst von der Abrechnungsinfo-Seite zu ändern.
Wenn Sie die Abrechnung für Tenants selbst übernehmen, müssen Sie dennoch ein Paket für jeden Tenant definieren, um deren Limits festzulegen. Setzen Sie einfach billingHandledExternally auf true beim Tenant und sie
werden nicht in der Lage sein, ihre Abrechnungsinformationen oder das aktive Paket selbst zu ändern.
Sie dürfen keine Pakete mit höheren Limits als der übergeordnete Tenant erstellen.
Die Struktur des TenantPackage-Objekts ist wie folgt:

GET /api/v1/tenant-packages/:id 
Diese Route gibt ein einzelnes Tenant-Paket nach ID zurück.



GET /api/v1/tenant-packages 
Diese API verwendet Paginierung, bereitgestellt durch den skip-Abfrageparameter. TenantPackages werden in Seiten von 100 zurückgegeben, sortiert nach createdAt und id.
Die Kosten basieren auf der Anzahl der zurückgegebenen Tenant-Pakete und betragen 1 Credit pro 10 zurückgegebene Tenant-Pakete.



POST /api/v1/tenant-packages 
Diese Route bietet die Möglichkeit, ein einzelnes TenantPackage hinzuzufügen.
Das Erstellen eines TenantPackage hat die folgenden Einschränkungen:
- Die folgenden Parameter sind erforderlich:
nametenantIdmonthlyCostUSD- Kann null sein.yearlyCostUSD- Kann null sein.maxMonthlyPageLoadsmaxMonthlyAPICreditsmaxMonthlyCommentsmaxConcurrentUsersmaxTenantUsersmaxSSOUsersmaxModeratorsmaxDomainshasDebrandingforWhoTextfeatureTaglineshasFlexPricing- Wenn true, sind alleflex*-Parameter erforderlich.
- Der
namedarf nicht länger als50 Zeichensein. - Jedes
forWhoText-Element darf nicht länger als200 Zeichensein. - Jedes
featureTaglines-Element darf nicht länger als100 Zeichensein. - Das
TenantPackagemuss "kleiner" als der übergeordnete Tenant sein. Beispielsweise müssen allemax*-Parameter niedrigere Werte als der übergeordnete Tenant haben. - Ein White-Label-Tenant darf maximal fünf Pakete haben.
- Nur Tenants mit White-Labeling-Zugang können ein
TenantPackageerstellen. - Sie können keine Pakete zu Ihrem eigenen Tenant hinzufügen. :)
Wir können ein TenantPackage wie folgt erstellen:



PATCH /api/v1/tenant-packages/:id 
Dieser API-Endpunkt bietet die Möglichkeit, ein TenantPackage nach id zu aktualisieren.
Das Aktualisieren eines TenantPackage hat die folgenden Einschränkungen:
- Wenn Sie
hasFlexPricingauf true setzen, sind alleflex*-Parameter in derselben Anfrage erforderlich. - Der
namedarf nicht länger als50 Zeichensein. - Jedes
forWhoText-Element darf nicht länger als200 Zeichensein. - Jedes
featureTaglines-Element darf nicht länger als100 Zeichensein. - Das
TenantPackagemuss "kleiner" als der übergeordnete Tenant sein. Beispielsweise müssen allemax*-Parameter niedrigere Werte als der übergeordnete Tenant haben. - Sie können die mit einem
TenantPackageverknüpftetenantIdnicht ändern.



DELETE /api/v1/tenant-packages/:id 
Diese Route ermöglicht das Entfernen eines TenantPackage nach ID.
Sie können ein TenantPackage nicht entfernen, das in Verwendung ist (wenn die packageId eines Tenants auf das Paket verweist). Aktualisieren Sie zuerst den Tenant.



Mandantenbenutzer-Struktur 
Der TenantUser definiert einen User, der von einem bestimmten Tenant verwaltet wird. Sein Konto steht vollständig unter der Kontrolle des Tenants,
mit dem er verknüpft ist, und sein Konto kann über die Benutzeroberfläche oder API aktualisiert oder gelöscht werden.
Tenant-Benutzer können Administratoren mit allen Berechtigungen und Zugriff auf den Tenant sein, oder sie können auf bestimmte Berechtigungen beschränkt sein, um
Kommentare zu moderieren, auf API-Schlüssel zuzugreifen usw.
Die Struktur des TenantUser-Objekts ist wie folgt:

GET /api/v1/tenant-users/:id 
Diese Route gibt einen einzelnen TenantUser nach ID zurück.



GET /api/v1/tenant-users 
Diese API verwendet Paginierung, bereitgestellt durch den skip-Abfrageparameter. TenantUsers werden in Seiten von 100 zurückgegeben, sortiert nach signUpDate, username und id.
Die Kosten basieren auf der Anzahl der zurückgegebenen Tenant-Benutzer und betragen 1 Credit pro 10 zurückgegebene Tenant-Benutzer.



POST /api/v1/tenant-users 
Diese Route bietet die Möglichkeit, einen einzelnen TenantUser hinzuzufügen.
Das Erstellen eines TenantUser hat die folgenden Einschränkungen:
- Ein
usernameist erforderlich. - Eine
emailist erforderlich. - Das
signUpDatedarf nicht in der Zukunft liegen. - Die
localemuss in der Liste der Unterstützten Locales enthalten sein. - Der
usernamemuss über alle FastComments.com hinweg eindeutig sein. Wenn dies ein Problem ist, empfehlen wir stattdessen SSO zu verwenden. - Die
emailmuss über alle FastComments.com hinweg eindeutig sein. Wenn dies ein Problem ist, empfehlen wir stattdessen SSO zu verwenden. - Sie können nicht mehr Tenant-Benutzer erstellen als unter
maxTenantUsersin Ihrem Paket definiert.
Wir können einen TenantUser wie folgt erstellen



POST /api/v1/tenant-users/:id/send-login-link 
Diese Route bietet die Möglichkeit, einen Login-Link an einen einzelnen TenantUser zu senden.
Nützlich beim Batch-Erstellen von Benutzern, ohne ihnen erklären zu müssen, wie sie sich bei FastComments.com anmelden. Dies sendet ihnen einfach einen "Magic Link" zum Anmelden, der
nach 30 Tagen abläuft.
Die folgenden Einschränkungen gelten für das Senden eines Login-Links an einen TenantUser:
- Der
TenantUsermuss bereits existieren. - Sie müssen Zugriff haben, um den
Tenantzu verwalten, zu dem derTenantUsergehört.
Wir können wie folgt einen Login-Link an einen TenantUser senden:

Dies sendet eine E-Mail wie Bob bei TenantName lädt Sie ein, Moderator zu werden...


PATCH /api/v1/tenant-users/:id 
Diese Route bietet die Möglichkeit, einen einzelnen TenantUser zu aktualisieren.
Das Aktualisieren eines TenantUser hat die folgenden Einschränkungen:
- Das
signUpDatedarf nicht in der Zukunft liegen. - Die
localemuss in der Liste der Unterstützten Locales enthalten sein. - Der
usernamemuss über alle FastComments.com hinweg eindeutig sein. Wenn dies ein Problem ist, empfehlen wir stattdessen SSO zu verwenden. - Die
emailmuss über alle FastComments.com hinweg eindeutig sein. Wenn dies ein Problem ist, empfehlen wir stattdessen SSO zu verwenden. - Sie können die
tenantIdeines Benutzers nicht aktualisieren.
Wir können einen TenantUser wie folgt erstellen



DELETE /api/v1/tenant-users/:id 
Diese Route ermöglicht das Entfernen eines TenantUser nach ID.
Das Löschen der Kommentare des Benutzers ist über den deleteComments-Abfrageparameter möglich. Beachten Sie, dass wenn dieser true ist:
- Alle Kommentare des Benutzers werden live gelöscht.
- Alle Kind-Kommentare (jetzt verwaist) werden basierend auf der zugehörigen Seitenkonfiguration jedes Kommentars gelöscht oder anonymisiert. Wenn beispielsweise der Thread-Löschmodus "anonymisieren" ist, bleiben Antworten erhalten, und die Kommentare des Benutzers werden anonymisiert. Dies gilt nur, wenn
commentDeleteModeRemoveist (der Standardwert). - Die
creditsCostwird2.
Anonymisierte Kommentare
Sie können die Kommentare des Benutzers behalten, aber einfach anonymisieren, indem Sie commentDeleteMode=1 setzen.
Wenn die Kommentare des Benutzers anonymisiert werden, werden die folgenden Werte auf null gesetzt:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted und isDeletedUser werden auf true gesetzt.
Beim Rendern verwendet das Kommentar-Widget DELETED_USER_PLACEHOLDER (Standard: "[deleted]") für den Namen des Benutzers und DELETED_CONTENT_PLACEHOLDER für den Kommentar. Diese können über die Widget-Anpassungs-UI angepasst werden.
Beispiele



Benutzerstruktur 
User ist ein Objekt, das den kleinsten gemeinsamen Nenner aller Benutzer darstellt.
Beachten Sie, dass wir bei FastComments verschiedene Anwendungsfälle für Benutzer haben:
- Secure SSO
- Simple SSO
- Tenant-Benutzer (zum Beispiel: Administratoren)
- Kommentierende
Diese API ist für Kommentierende und Benutzer, die über Simple SSO erstellt wurden. Grundsätzlich kann über diese API auf jeden Benutzer zugegriffen werden, der
über Ihre Seite erstellt wurde. Tenant-Benutzer können auch auf diese Weise abgerufen werden, aber Sie erhalten mehr Informationen durch Interaktion mit der /tenant-users/-API.
Für Secure SSO verwenden Sie bitte die /sso-users/-API.
Sie können diese Arten von Benutzern nicht aktualisieren. Sie haben ihr Konto über Ihre Seite erstellt, daher bieten wir einen grundlegenden schreibgeschützten Zugang, aber
Sie können keine Änderungen vornehmen. Wenn Sie diesen Flow haben möchten, müssen Sie Secure SSO einrichten.
Die Struktur des User-Objekts ist wie folgt:

GET /api/v1/users/:id 
Diese Route gibt einen einzelnen User nach ID zurück.



Stimmenstruktur 
Ein Vote-Objekt repräsentiert eine Abstimmung, die von einem Benutzer hinterlassen wurde.
Die Beziehung zwischen Kommentaren und Abstimmung wird über commentId definiert.
Die Struktur des Vote-Objekts ist wie folgt:

GET /api/v1/votes 
Abstimmungen müssen nach urlId abgerufen werden.
Arten von Abstimmungen
Es gibt drei Arten von Abstimmungen:
- Authentifizierte Abstimmungen, die auf den entsprechenden Kommentar angewendet werden. Diese können Sie über diese API erstellen.
- Authentifizierte Abstimmungen, die auf Verifizierung warten, und daher noch nicht auf den Kommentar angewendet wurden. Diese werden erstellt, wenn ein Benutzer den FastComments.com-Login-zum-Abstimmen-Mechanismus verwendet.
- Anonyme Abstimmungen, die auf den entsprechenden Kommentar angewendet werden. Diese werden zusammen mit anonymen Kommentaren erstellt.
Diese werden in separaten Listen in der API zurückgegeben, um Verwirrung zu vermeiden.



Hinweise zu anonymen Abstimmungen
Beachten Sie, dass anonyme Abstimmungen, die über diese API erstellt werden, in der appliedAuthorizedVotes-Liste erscheinen. Sie gelten als autorisiert, da sie über die API mit einem API-Schlüssel erstellt wurden.
Die appliedAnonymousVotes-Struktur ist für Abstimmungen, die ohne E-Mail, API-Schlüssel usw. erstellt wurden.
GET /api/v1/votes/for-user 
Ermöglicht das Abrufen von Abstimmungen, die von einem Benutzer für eine bestimmte urlId hinterlassen wurden. Nimmt eine userId entgegen, die jeder FastComments.com- oder SSO-Benutzer sein kann.
Dies ist nützlich, wenn Sie zeigen möchten, ob ein Benutzer für einen Kommentar abgestimmt hat. Wenn Sie Kommentare abrufen, rufen Sie diese API einfach gleichzeitig für den Benutzer mit der
gleichen urlId auf.
Wenn Sie anonyme Abstimmungen verwenden, möchten Sie stattdessen anonUserId übergeben.


Beachten Sie, dass anonyme Abstimmungen in der appliedAuthorizedVotes-Liste erscheinen. Sie gelten als autorisiert, da sie über die API mit einem API-Schlüssel erstellt wurden.


POST /api/v1/votes 
Diese Route bietet die Möglichkeit, ein einzelnes autorisiertes Vote hinzuzufügen. Abstimmungen können up (+1) oder down (-1) sein.




Erstellen anonymer Abstimmungen
Anonyme Abstimmungen können erstellt werden, indem in den Abfrageparametern anonUserId anstelle von userId gesetzt wird.
Diese ID muss keinem Benutzerobjekt irgendwo entsprechen (daher anonym). Es ist einfach ein Bezeichner für die Sitzung, damit Sie Abstimmungen in derselben Sitzung erneut abrufen können, um zu prüfen, ob für einen Kommentar abgestimmt wurde.
Wenn Sie so etwas wie "anonyme Sitzungen" nicht haben, wie FastComments es hat, können Sie dies einfach auf eine zufällige ID setzen, wie eine UUID (obwohl wir kleinere Bezeichner schätzen, um Platz zu sparen).
Weitere Hinweise
- Diese API befolgt Einstellungen auf Tenant-Ebene. Wenn Sie beispielsweise das Abstimmen für eine bestimmte Seite deaktivieren und versuchen, über die API eine Abstimmung zu erstellen, schlägt dies mit dem Fehlercode
voting-disabledfehl. - Diese API ist standardmäßig live.
- Diese API aktualisiert die
votesdes entsprechendenComment.
DELETE /api/v1/votes/:id 
Diese Route bietet die Möglichkeit, ein einzelnes Vote zu löschen.



Hinweise:
- Diese API befolgt Einstellungen auf Tenant-Ebene. Wenn Sie beispielsweise das Abstimmen für eine bestimmte Seite deaktivieren und versuchen, über die API eine Abstimmung zu erstellen, schlägt dies mit dem Fehlercode
voting-disabledfehl. - Diese API ist standardmäßig live.
- Diese API aktualisiert die
votesdes entsprechendenComment.
Struktur der Domain-Konfiguration 
Ein DomainConfig-Objekt repräsentiert die Konfiguration für eine Domain eines Tenants.
Die Struktur des DomainConfig-Objekts ist wie folgt:


Für Authentifizierung
Die Domain-Konfiguration wird verwendet, um zu bestimmen, welche Websites das FastComments-Widget für Ihr Konto hosten können. Dies ist eine grundlegende Form der Authentifizierung, was bedeutet, dass das Hinzufügen oder Entfernen von Domain-Konfigurationen die Verfügbarkeit Ihrer FastComments-Installation in der Produktion beeinflussen kann.
Entfernen oder aktualisieren Sie die domain-Eigenschaft einer Domain Config für eine Domain, die derzeit verwendet wird, nicht, es sei denn, das Deaktivieren dieser Domain ist beabsichtigt.
Dies hat das gleiche Verhalten wie das Entfernen einer Domain aus /auth/my-account/configure-domains.
Beachten Sie auch, dass das Entfernen einer Domain aus der Meine Domains-Benutzeroberfläche alle entsprechenden Konfigurationen für diese Domain entfernt, die möglicherweise über diese Benutzeroberfläche hinzugefügt wurden.
Für E-Mail-Anpassung
Der Abmeldelink in der E-Mail-Fußzeile und die Ein-Klick-Abmeldefunktion, die von vielen E-Mail-Clients angeboten wird, können über diese API konfiguriert werden, indem footerUnsubscribeURL bzw. emailHeaders definiert werden.
Für DKIM
Nachdem Sie Ihre DKIM-DNS-Einträge definiert haben, aktualisieren Sie einfach die DomainConfig mit Ihrer DKIM-Konfiguration unter Verwendung der definierten Struktur.
GET /api/v1/domain-configs 
Diese API bietet die Möglichkeit, alle DomainConfig-Objekte für einen Tenant abzurufen.



GET /api/v1/domain-configs/:domain 
Einzelne DomainConfigs können nach ihrer entsprechenden domain abgerufen werden.



POST /api/v1/domain-configs 
Dieser API-Endpunkt bietet die Möglichkeit, Domain-Konfigurationen zu erstellen.
Das Hinzufügen einer Konfiguration für eine Domain autorisiert diese Domain für das FastComments-Konto.
Häufige Anwendungsfälle dieser API sind die Ersteinrichtung, wenn viele Domains hinzugefügt werden sollen, oder benutzerdefinierte Konfigurationen für den E-Mail-Versand.



PATCH /api/v1/domain-configs/:domain 
Dieser API-Endpunkt bietet die Möglichkeit, eine Domain-Konfiguration zu aktualisieren, indem nur die Domain und das zu aktualisierende Attribut angegeben werden.



PUT /api/v1/domain-configs/:domain 
Dieser API-Endpunkt bietet die Möglichkeit, eine Domain-Konfiguration zu ersetzen.



DELETE /api/v1/domain-configs/:domain 
Diese Route ermöglicht das Entfernen einer einzelnen DomainConfig nach ID.
- Hinweis: Das Entfernen einer
DomainConfigwird die Autorisierung dieser Domain für FastComments aufheben. - Hinweis: Das erneute Hinzufügen einer Domain über die Benutzeroberfläche erstellt das Objekt neu (nur mit
domainbefüllt).



Struktur der Fragekonfiguration 
FastComments bietet eine Möglichkeit, Fragen zu konstruieren und ihre Ergebnisse zu aggregieren. Ein Beispiel für eine Frage (im Folgenden QuestionConfig genannt)
könnte eine Sternebewertung, ein Schieberegler oder eine NPS-Frage sein (bestimmt durch type).
Fragedaten können einzeln, zusammen, über Zeit, insgesamt, nach Seite usw. aggregiert werden.
Das Framework hat alle Fähigkeiten, die benötigt werden, um clientseitige Widgets (mit Ihrem Server vor dieser API), Admin-Dashboards und Reporting-Tools zu erstellen.
Zuerst müssen wir eine QuestionConfig definieren. Die Struktur ist wie folgt:

GET /api/v1/question-configs 
Diese Route gibt bis zu 100 QuestionConfig-Objekte auf einmal zurück, paginiert. Die Kosten betragen 1 pro 100 Objekte. Sie sind
nach Fragetext aufsteigend sortiert (question-Feld).



GET /api/v1/question-configs/:id 
Diese Route gibt eine einzelne QuestionConfig nach ihrer ID zurück.



POST /api/v1/question-configs 
Dieser API-Endpunkt bietet die Möglichkeit, eine QuestionConfig zu erstellen.



PATCH /api/v1/question-configs/:id 
Diese Route bietet die Möglichkeit, eine einzelne QuestionConfig zu aktualisieren.
Die folgende Struktur repräsentiert alle Werte, die geändert werden können:




DELETE /api/v1/question-configs/:id 
Diese Route ermöglicht das Entfernen einer QuestionConfig nach ID.
Dies löscht alle entsprechenden Frageergebnisse (aber nicht die Kommentare). Dies ist Teil der hohen Credit-Kosten.



Struktur des Frageergebnisses 
Um Ergebnisse für Fragen zu speichern, erstellen Sie ein QuestionResult. Sie können dann Frageergebnisse aggregieren und sie auch
zu Berichtszwecken mit Kommentaren verknüpfen.

GET /api/v1/question-results 
Diese Route gibt bis zu 1000 QuestionResults-Objekte auf einmal zurück, paginiert. Die Kosten betragen 1 pro 100 Objekte. Sie sind
nach createdAt aufsteigend sortiert. Sie können nach verschiedenen Parametern filtern.



GET /api/v1/question-results/:id 
Diese Route gibt ein einzelnes QuestionResult nach seiner ID zurück.



POST /api/v1/question-results 
Dieser API-Endpunkt bietet die Möglichkeit, ein QuestionResult zu erstellen.



PATCH /api/v1/question-results/:id 
Diese Route bietet die Möglichkeit, ein einzelnes QuestionResult zu aktualisieren.
Die folgende Struktur repräsentiert alle Werte, die geändert werden können:




DELETE /api/v1/question-results/:id 
Diese Route ermöglicht das Entfernen eines QuestionResult nach ID.



GET /api/v1/question-results-aggregate 
Hier findet die Aggregation von Ergebnissen statt.
Die Aggregations-Antwortstruktur ist wie folgt:

Hier sind die für die Aggregation verfügbaren Abfrageparameter:

Hier ist ein Beispiel für eine Anfrage:

Beispielantwort:


Leistungshinweise
- Bei einem Cache-Miss dauern Aggregationen in der Regel fünf Sekunden pro Million Ergebnisse.
- Ansonsten sind Anfragen in konstanter Zeit.
Caching- und Kostenhinweise
- Wenn
forceRecalculateangegeben wird, betragen die Kosten immer10anstelle der normalen2. - Wenn der Cache abläuft und Daten neu berechnet werden, betragen die Kosten immer noch konstant
2, wennforceRecalculatenicht angegeben ist. Der Cache läuft basierend auf der aggregierten Datensatzgröße ab (kann zwischen 30 Sekunden und 5 Minuten variieren). - Dies soll die Nutzung des Caches fördern.
GET /api/v1/question-results-aggregate/combine/comments 
Hier findet die Kombination von Ergebnissen mit Kommentaren statt. Nützlich zum Beispiel für die Erstellung eines "letzte positive und negative Kommentare"-Diagramms für ein Produkt.
Sie können über einen Wertebereich (inklusive), eine oder mehrere Fragen und nach einem Startdatum (inklusive) suchen.
Die Antwortstruktur ist wie folgt:

Hier sind die für die Aggregation verfügbaren Abfrageparameter:

Hier ist ein Beispiel für eine Anfrage:

Beispielantwort:


Caching- und Kostenhinweise
- Wenn
forceRecalculateangegeben wird, betragen die Kosten immer10anstelle der normalen2. - Wenn der Cache abläuft und Daten neu berechnet werden, betragen die Kosten immer noch konstant
2, wennforceRecalculatenicht angegeben ist. - Dies soll die Nutzung des Caches fördern.
Struktur des Benutzerabzeichens 
UserBadge ist ein Objekt, das ein einem Benutzer im FastComments-System zugewiesenes Badge darstellt.
Badges können Benutzern automatisch basierend auf ihrer Aktivität (wie Kommentaranzahl, Antwortzeit, Veteran-Status) oder manuell von Site-Administratoren zugewiesen werden.
Die Struktur des UserBadge-Objekts ist wie folgt:

GET /api/v1/user-badges 
Dieser Endpunkt ermöglicht das Abrufen von Benutzer-Badges basierend auf verschiedenen Kriterien.
Beispielanfrage:
Run 
Sie können verschiedene Abfrageparameter hinzufügen, um die Ergebnisse zu filtern:
userId- Badges für einen bestimmten Benutzer abrufenbadgeId- Instanzen eines bestimmten Badges abrufentype- Nach Badge-Typ filtern (0=CommentCount, 1=CommentUpVotes, 2=CommentReplies, usw. Siehe UserBadge-Struktur für vollständige Liste)displayedOnComments- Filtern, ob das Badge bei Kommentaren angezeigt wird (true/false)limit- Maximale Anzahl der zurückzugebenden Badges (Standard 30, max 200)skip- Anzahl der zu überspringenden Badges (für Paginierung)
Beispielantwort:

Mögliche Fehlerantworten:


GET /api/v1/user-badges/:id 
Dieser Endpunkt ermöglicht das Abrufen eines bestimmten Benutzer-Badges anhand seiner eindeutigen ID.
Beispielanfrage:
Run 
Beispielantwort:

Mögliche Fehlerantworten:


POST /api/v1/user-badges 
Dieser Endpunkt ermöglicht das Erstellen einer neuen Benutzer-Badge-Zuweisung.
Beispielanfrage:
Run 
Der Anfragekörper muss die folgenden Parameter enthalten:
userId(erforderlich) - Die ID des Benutzers, dem das Badge zugewiesen werden sollbadgeId(erforderlich) - Die ID des zuzuweisenden BadgesdisplayedOnComments(optional) - Ob das Badge bei den Kommentaren des Benutzers angezeigt werden soll (standardmäßig true)
Wichtige Hinweise:
- Das Badge muss existieren und im Badge-Katalog Ihres Tenants aktiviert sein
- Sie können Badges nur Benutzern zuweisen, die zu Ihrem Tenant gehören oder auf Ihrer Seite kommentiert haben
Beispielantwort:

Mögliche Fehlerantworten:





PUT /api/v1/user-badges/:id 
Dieser Endpunkt ermöglicht das Aktualisieren einer Benutzer-Badge-Zuweisung.
Derzeit ist die einzige Eigenschaft, die aktualisiert werden kann, displayedOnComments, die steuert, ob das Badge bei den Kommentaren des Benutzers angezeigt wird.
Beispielanfrage:
Run 
Beispielantwort:

Mögliche Fehlerantworten:



DELETE /api/v1/user-badges/:id 
Dieser Endpunkt ermöglicht das Löschen einer Benutzer-Badge-Zuweisung.
Beispielanfrage:
Run 
Beispielantwort:

Mögliche Fehlerantworten:



Struktur des Fortschritts bei Benutzerabzeichen 
UserBadgeProgress ist ein Objekt, das den Fortschritt eines Benutzers beim Verdienen verschiedener Badges im FastComments-System darstellt.
Diese Verfolgung hilft zu bestimmen, wann Benutzer automatische Badges basierend auf ihrer Aktivität und Teilnahme in Ihrer Community erhalten sollten.
Die Struktur des UserBadgeProgress-Objekts ist wie folgt:

GET /api/v1/user-badge-progress 
Dieser Endpunkt ermöglicht das Abrufen von Benutzer-Badge-Fortschrittseinträgen basierend auf verschiedenen Kriterien.
Beispielanfrage:
Run 
Sie können verschiedene Abfrageparameter hinzufügen, um die Ergebnisse zu filtern:
userId- Fortschritt für einen bestimmten Benutzer abrufenlimit- Maximale Anzahl der zurückzugebenden Einträge (Standard 30, max 200)skip- Anzahl der zu überspringenden Einträge (für Paginierung)
Beispielantwort:

Mögliche Fehlerantworten:


GET /api/v1/user-badge-progress/:id 
Dieser Endpunkt ermöglicht das Abrufen eines bestimmten Benutzer-Badge-Fortschrittseintrags anhand seiner eindeutigen ID.
Beispielanfrage:
Run 
Beispielantwort:

Mögliche Fehlerantworten:


GET /api/v1/user-badge-progress/user/:userId 
Dieser Endpunkt ermöglicht das Abrufen des Badge-Fortschrittseintrags eines Benutzers anhand seiner Benutzer-ID.
Beispielanfrage:
Run 
Beispielantwort:

Mögliche Fehlerantworten:



Abschließend
Wir hoffen, dass Sie unsere API-Dokumentation als umfassend und leicht verständlich empfunden haben. Wenn Sie Lücken feststellen, lassen Sie es uns unten wissen.