Kommentare, Moderation und Social Feeds über eine einzige REST-API und SDKs für mehr als 10 Sprachen. Abrufen, veröffentlichen und moderieren Sie direkt aus Ihrem Backend und streamen Sie neue Aktivität in Echtzeit über WebSockets an jeden Leser.
FastComments ist mehr als nur Kommentare. Erstellen Sie Diskussionen, Moderation und Social Feeds auf derselben API- und SDK-Suite.
Verschachtelte Kommentare und Live-Chat. Abrufen, veröffentlichen, abstimmen, anpinnen, antworten und suchen, mit integriertem SSO und Echtzeit-Updates.
Eine dedizierte Moderationsschnittstelle mit über 40 Endpunkten. Freigeben, melden, blockieren, sperren, schließen und prüfen, unterstützt durch automatische Spam-Filterung.
Erstellen Sie Activity- und Social Feeds mit Beiträgen, Medien, Reaktionen und Followern und pushen Sie neue Beiträge live an jeden Client.
cURL und typisierte SDKs für Node, Python, PHP, Ruby, Go, Java, Rust, Swift und C++. Über 200 Endpunkte decken Kommentare, Abstimmungen, Seiten, SSO-Benutzer, Feed-Beiträge, Moderation und Benachrichtigungen ab, alle hinter einem einzigen API-Schlüssel.
npm install fastcomments-sdkimport { createFastCommentsSDK } from 'fastcomments-sdk/server';
const sdk = createFastCommentsSDK({
apiKey: 'your-api-key', // server-side only
basePath: 'https://fastcomments.com' // optional (default)
});
// Fetch comments for a page
const { comments } = await sdk.publicApi.getCommentsPublic({
tenantId: 'your-tenant-id',
urlId: 'page-url-id'
});
// Post a comment
await sdk.publicApi.createCommentPublic({
tenantId: 'your-tenant-id',
broadcastId: crypto.randomUUID(),
createComment: {
urlId: 'page-url-id',
url: 'https://example.com/post',
comment: 'Hello from the API!',
commenterName: 'Alice'
}
});
# Fetch comments for a page curl -s 'https://fastcomments.com/api/v1/comments?tenantId=your-tenant-id&urlId=page-url-id' \ -H 'x-api-key: YOUR_API_KEY'
pip install fastcommentsimport client
from client.api.public_api import GetCommentsPublicOptions
configuration = client.Configuration(host="https://fastcomments.com")
with client.ApiClient(configuration) as api_client:
api = client.PublicApi(api_client)
response = api.get_comments_public(
"your-tenant-id",
"page-url-id",
GetCommentsPublicOptions(page=0, limit=30),
)
for comment in response.comments:
print(comment.commenter_name, comment.comment)
composer require fastcomments/fastcomments-php<?php
require_once(__DIR__ . '/vendor/autoload.php');
$api = new FastComments\Client\Api\PublicApi(new GuzzleHttp\Client());
$result = $api->getCommentsPublic('your-tenant-id', 'page-url-id', [
'page' => 0,
'limit' => 30,
]);
foreach ($result->getComments() as $comment) {
echo $comment->getCommenterName() . ': ' . $comment->getComment() . PHP_EOL;
}
gem install fastcommentsrequire 'fastcomments-client'
api = FastCommentsClient::PublicApi.new
result = api.get_comments_public('your-tenant-id', 'page-url-id', { page: 0, limit: 30 })
result.comments.each do |comment|
puts "#{comment.commenter_name}: #{comment.comment}"
end
go get github.com/fastcomments/fastcomments-gopackage main
import (
"context"
"fmt"
openapiclient "github.com/fastcomments/fastcomments-go/client"
)
func main() {
client := openapiclient.NewAPIClient(openapiclient.NewConfiguration())
resp, _, err := client.PublicAPI.
GetCommentsPublic(context.Background(), "your-tenant-id").
UrlId("page-url-id").Page(0).Limit(30).Execute()
if err != nil {
panic(err)
}
for _, c := range resp.Comments {
fmt.Printf("%s: %s\n", c.GetCommenterName(), c.GetComment())
}
}
import com.fastcomments.invoker.ApiClient;
import com.fastcomments.invoker.Configuration;
import com.fastcomments.api.PublicApi;
ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://fastcomments.com");
PublicApi api = new PublicApi(client);
var result = api.getCommentsPublic("your-tenant-id", "page-url-id")
.page(0)
.limit(30)
.execute();
System.out.println(result.getComments());
use fastcomments_sdk::client::apis::configuration::Configuration;
use fastcomments_sdk::client::apis::public_api::{get_comments_public, GetCommentsPublicParams};
let config = Configuration::new();
let params = GetCommentsPublicParams {
tenant_id: "your-tenant-id".to_string(),
url_id: "page-url-id".to_string(),
page: Some(0),
limit: Some(30),
..Default::default()
};
let result = get_comments_public(&config, params).await.unwrap();
for comment in result.comments {
println!("{:?}: {:?}", comment.commenter_name, comment.comment);
}
import FastCommentsSwift
var options = PublicAPI.GetCommentsPublicOptions()
options.page = 0
options.limit = 30
let result = try await PublicAPI.getCommentsPublic(
tenantId: "your-tenant-id",
urlId: "page-url-id",
options: options
)
print(result.comments ?? [])
#include "FastCommentsClient/api/PublicApi.h"
#include "FastCommentsClient/ApiClient.h"
#include "FastCommentsClient/ApiConfiguration.h"
using namespace org::openapitools::client::api;
auto config = std::make_shared<ApiConfiguration>();
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"));
PublicApi publicApi(std::make_shared<ApiClient>(config));
auto resp = publicApi.getCommentsPublic(
utility::conversions::to_string_t("your-tenant-id"),
utility::conversions::to_string_t("page-url-id")
).get();
Öffnen Sie eine Verbindung und empfangen Sie jeden neuen Kommentar, jede Bearbeitung, jede Abstimmung und jedes Präsenz-Update in dem Moment, in dem es passiert. Kein Ereignis geht verloren: Bei einer erneuten Verbindung wird das event log neu abgerufen, um alles nachzuspielen, was gesendet wurde, während der Client offline war. Native WebSocket-Abonnenten werden für Node, React Native, Java, Swift und C++ ausgeliefert. Jede andere Sprache bleibt durch Abfragen des event log in Echtzeit.
npm install fastcomments-sdkimport { subscribeToChanges, LiveEventType } from 'fastcomments-sdk/browser';
const config = { tenantId: 'your-tenant-id', urlId: 'page-url-id' };
const subscription = subscribeToChanges(
config,
'your-tenant-id', // tenantIdWS
'page-url-id', // urlIdWS
'user-session-id', // userIdWS (from the getComments response)
(event) => {
if (event.type === LiveEventType.new_comment) {
console.log('New comment:', event.comment?.comment);
}
return true; // event handled
},
(isConnected) => console.log(isConnected ? 'connected' : 'disconnected')
);
// later: subscription.close();
npm install fastcomments-react-native-sdkimport React, { useState } from 'react';
import { FastCommentsLiveCommenting } from 'fastcomments-react-native-sdk';
import { FastCommentsCommentWidgetConfig } from 'fastcomments-typescript';
export default function Comments() {
// <FastCommentsLiveCommenting> subscribes to the live feed automatically.
const [config] = useState<FastCommentsCommentWidgetConfig>({
tenantId: 'your-tenant-id',
urlId: 'page-url-id',
showLiveRightAway: true,
countAll: true,
});
return <FastCommentsLiveCommenting config={config} />;
}
import com.fastcomments.pubsub.LiveEventSubscriber;
import com.fastcomments.pubsub.SubscribeToChangesResult;
import com.fastcomments.core.CommentWidgetConfig;
import com.fastcomments.model.LiveEventType;
CommentWidgetConfig config = new CommentWidgetConfig();
config.tenant = "your-tenant-id";
config.urlId = "page-url-id";
LiveEventSubscriber subscriber = new LiveEventSubscriber();
SubscribeToChangesResult result = subscriber.subscribeToChanges(
config,
"your-tenant-id", // tenantIdWS
"page-url-id", // urlId
"page-url-id", // urlIdWS
"my-presence-id", // userIdWS
null, // canSeeCommentsCallback (optional)
(event) -> {
if (event.getType() == LiveEventType.NEW_COMMENT) {
System.out.println("New comment: " + event.getComment().getId());
}
}
);
// later: result.close();
import FastCommentsSwift
let config = LiveEventConfig(
tenantId: "your-tenant-id",
urlId: "page-url-id",
urlIdWS: "page-url-id", // URL-safe id for the WS server
userIdWS: "my-presence-id"
)
let subscriber = LiveEventSubscriber()
let result = subscriber.subscribeToChanges(config: config) { event in
if event.type == .newComment, let comment = event.comment {
print("New comment: \(comment.id ?? "")")
}
}
// later: result?.close()
#include <fastcomments/live/live_stream.hpp>
#include <iostream>
using namespace fastcomments::live;
LiveStreamConfig cfg;
cfg.wsBaseUrl = "wss://fastcomments.com"; // no trailing slash
LiveStream stream(cfg);
stream.onEvent([](const LiveEvent& ev) {
if (ev.type == EventType::NewComment) {
std::cout << "New comment at " << ev.timestamp << std::endl;
}
});
stream.subscribe("your-tenant-id", "page-url-id", "my-presence-id").wait();
// later: stream.close().wait();
pip install fastcommentsimport time
import client
configuration = client.Configuration(host="https://fastcomments.com")
with client.ApiClient(configuration) as api_client:
api = client.PublicApi(api_client)
start_time = int(time.time() * 1000) # ms epoch
while True:
result = api.get_event_log(
"your-tenant-id", "page-url-id", "my-user-id", start_time
)
for event in result.events:
print("event:", event.data)
start_time = int(event.created_at.timestamp() * 1000) + 1
time.sleep(2)
# startTime = epoch millis to replay from; advance it past the last event you saw curl -s 'https://fastcomments.com/api/v1/event-log/your-tenant-id?urlId=page-url-id&userIdWS=my-user-id&startTime=1720560000000' \ -H 'x-api-key: YOUR_API_KEY'
Sparen Sie sich das Erstellen und Warten einer eigenen Kommentar-UI. Unsere dedizierten, gepflegten SDKs für React Native, Android und iOS liefern native UI-Komponenten für verschachtelte Kommentare, Live-Chat und Feeds. Fügen Sie eine View ein, übergeben Sie eine Konfiguration, und Sie sind fertig.
npm: fastcomments-react-native-sdk
Native Komponenten, keine Webview. Fügen Sie FastCommentsLiveCommenting, FastCommentsLiveChat oder FastCommentsFeed ein und übergeben Sie eine Konfiguration.
Live-Demo ansehencom.fastcomments:sdk
Native Android-UI-Komponenten. Fügen Sie FastCommentsView zu Ihrem Layout hinzu für verschachtelte Kommentare, Abstimmungen, Benachrichtigungen und Feeds. Android 8.0+.
Auf GitHub ansehenSwift Package: FastCommentsUI
Eine native SwiftUI-Bibliothek für verschachtelte Kommentare, Social Feeds und Live-Chat. iOS 16+ und macOS 14+.
Auf GitHub ansehenEin API-Schlüssel, eine Basis-URL. Alles, was das Dashboard kann, kann auch Ihr Code.
Typisierte Clients für Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ und mehr, damit Sie in Ihrem Stack entwickeln statt in unserem.
Neue Kommentare erreichen jeden Leser im Moment der Veröffentlichung, ohne Aktualisieren und ohne Polling. Verbindet sich ein Leser erneut, werden verpasste Ereignisse aus dem Log nachgespielt.
Single Sign-On, Kommentarmoderation und Spam-Filterung sind integriert, sodass die schwierigen Teile erledigt sind, bevor Sie eine Zeile schreiben.
Wir betreiben den Speicher und die Echtzeit-Infrastruktur über ein globales Netzwerk. Sie rufen die API auf und liefern aus.
Eine API- und SDK-Suite hinter Kommentar-Threads, Chat und Live-Aktivität über Web-, Mobile- und Server-Apps hinweg.
Streamen Sie Nachrichten in Echtzeit an alle im Raum, mit Präsenzzählern und Tipp-Aktivität.
Fügen Sie Artikeln, Produkten und Beiträgen mit wenigen API-Aufrufen verschachtelte, abstimmbare Kommentarbereiche hinzu.
Veröffentlichen Sie in einem Feed und pushen Sie neue Elemente und Reaktionen an verbundene Clients, sobald sie eintreffen.
Sammeln Sie Fragen, Antworten, Abstimmungen und Umfrageergebnisse und ordnen und zeigen Sie sie live an.
Starten Sie eine kostenlose Testphase und holen Sie sich Ihre Mandanten-ID und Ihren API-Schlüssel aus dem Dashboard.
Fügen Sie das SDK für Ihre Sprache hinzu oder rufen Sie die REST-API direkt mit cURL und Ihrem x-api-key-Header auf.
Laden Sie Kommentare, veröffentlichen Sie aus Ihrem Backend und abonnieren Sie Änderungen, um Updates an jeden Leser zu streamen.
FastComments läuft über mehrere Regionen auf unserer eigenen Infrastruktur. Schreibvorgänge replizieren zwischen Regionen, Knoten führen automatische Failover durch, und Leser werden vom nächstgelegenen Standort bedient.
Schreibvorgänge werden in mehr als einer Region angenommen und zwischen ihnen repliziert, sodass es keinen einzelnen Ausfallpunkt gibt.
Kommentare und Medien werden über unser eigenes globales CDN und DNS bereitgestellt, ausgeliefert vom Standort, der Ihren Nutzern am nächsten ist. Kein CDN von Drittanbietern.
Redundante Knoten führen von selbst ein Failover durch, sodass der Traffic auch während eines Ausfalls weiterfließt. Gestützt durch 99.99% Verfügbarkeit.
Betrieb in den USA oder der EU. Die EU-Region unter eu.fastcomments.com hält Daten aus Compliance-Gründen in der Region.
Tausende zufriedener Kunden vertrauen auf unseren außergewöhnlichen Service, unsere Zuverlässigkeit und unsere innovativen Lösungen. Werden auch Sie Teil unserer wachsenden Gemeinschaft und erleben Sie den Unterschied!
Jetzt starten
Nein. Das Widget ist optional. Sie können Ihr gesamtes Kommentarerlebnis auf der REST-API und den SDKs aufbauen und alles selbst rendern.
Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ und Nim, dazu ein React Native SDK für Mobile. Jede Sprache kann die REST-API auch direkt aufrufen.
Clients öffnen einen WebSocket und empfangen neue Kommentare, Bearbeitungen, Abstimmungen und Präsenz-Updates als Ereignisse, sodass es kein Aktualisieren und kein Polling gibt. Kein Ereignis geht verloren: Trennt sich ein Client, ruft er beim erneuten Verbinden das event log neu ab, um alles nachzuspielen, was während der Offline-Zeit gesendet wurde.
Nein. FastComments hostet die Echtzeit-Infrastruktur. Ihr Client abonniert mit dem SDK, und wir liefern die Ereignisse.
Sie fragen den event-log-Endpunkt ab, der jede Änderung seit einem Zeitstempel zurückgibt. Die SDKs für Node, React Native, Java, Swift und C++ enthalten stattdessen einen nativen WebSocket-Abonnenten.
Speziell für Kommentare berechnet FastComments die Paginierung bei jedem Schreibvorgang für optimale Ladezeiten vor, sodass selbst sehr große Threads schnell paginieren.
Ja. Starten Sie eine kostenlose Testphase mit vollem Zugriff auf die API und die SDKs, ohne Kreditkarte. Nach der Testphase skalieren die kostenpflichtigen Tarife mit Ihrem Traffic.
Die vollständige REST-API- und SDK-Referenz finden Sie unter docs.fastcomments.com, wo jeder Endpunkt, Parameter und jede Antwort dokumentiert ist.
Ja. FastComments betreibt eine EU-Region unter eu.fastcomments.com, und die SDKs unterstützen das Routing dorthin.
Starten Sie eine kostenlose Testphase, holen Sie sich Ihren API-Schlüssel und fügen Sie Ihrer App noch heute Live-Diskussionen hinzu.