Tek bir REST API ve 10+ dil için SDK'lar aracılığıyla yorumlar, moderasyon ve sosyal akışlar. Kendi arka ucunuzdan çekin, gönderin ve moderasyon yapın, ardından yeni etkinlikleri WebSockets üzerinden her okuyucuya gerçek zamanlı olarak aktarın.
FastComments yorumlardan çok daha fazlasıdır. Tartışmaları, moderasyonu ve sosyal akışları aynı API ve SDK paketi üzerinde oluşturun.
İç içe yorumlar ve canlı sohbet. Yerleşik SSO ve gerçek zamanlı güncellemelerle çekin, gönderin, oylayın, sabitleyin, yanıtlayın ve arayın.
40+ uç noktaya sahip özel bir moderasyon yüzeyi. Otomatik spam filtrelemeyle desteklenen onaylama, işaretleme, engelleme, yasaklama, kilitleme ve denetim.
Gönderiler, medya, tepkiler ve takiplerle etkinlik ve sosyal akışlar oluşturun, ardından yeni gönderileri her istemciye canlı olarak iletin.
Node, Python, PHP, Ruby, Go, Java, Rust, Swift ve C++ için cURL ve tipli SDK'lar. 200'den fazla uç nokta; yorumları, oyları, sayfaları, SSO kullanıcılarını, akış gönderilerini, moderasyonu ve bildirimleri kapsar; hepsi tek bir API anahtarının arkasında.
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();
Tek bir bağlantı açın ve her yeni yorumu, düzenlemeyi, oyu ve varlık güncellemesini gerçekleştiği anda alın. Hiçbir olay kaçmaz: yeniden bağlanıldığında event log yeniden çekilir ve istemci çevrimdışıyken gönderilen her şey yeniden oynatılır. Yerel WebSocket aboneleri Node, React Native, Java, Swift ve C++ için gelir. Diğer tüm diller, event log'u yoklayarak gerçek zamanlı kalır.
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'
Kendi yorum arayüzünüzü oluşturmayı ve bakımını yapmayı atlayın. React Native, Android ve iOS için özel, bakımı yapılan SDK'larımız iç içe yorumlar, canlı sohbet ve akışlar için yerel arayüz bileşenleri sunar. Bir görünüm ekleyin, bir yapılandırma geçirin ve işiniz biter.
npm: fastcomments-react-native-sdk
Yerel bileşenler, webview yok. FastCommentsLiveCommenting, FastCommentsLiveChat veya FastCommentsFeed'i ekleyin ve bir yapılandırma geçirin.
Canlı demoyu görüncom.fastcomments:sdk
Yerel Android arayüz bileşenleri. İç içe yorumlar, oylama, bildirimler ve akışlar için düzeninize FastCommentsView ekleyin. Android 8.0+.
GitHub'da görüntüleSwift Package: FastCommentsUI
İç içe yorumlar, sosyal akışlar ve canlı sohbet için yerel bir SwiftUI kitaplığı. iOS 16+ ve macOS 14+.
GitHub'da görüntüleTek API anahtarı, tek temel URL. Panelin yaptığı her şeyi kodunuz da yapabilir.
Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ ve daha fazlası için tipli istemciler; böylece bizim değil kendi teknoloji yığınınızda geliştirirsiniz.
Yeni yorumlar gönderildikleri anda her okuyucuya ulaşır, yenileme ve yoklama olmadan. Bir okuyucu yeniden bağlanırsa, kaçırılan olaylar günlükten yeniden oynatılır.
Tek oturum açma, yorum moderasyonu ve spam filtreleme yerleşiktir; böylece zor kısımlar siz tek satır yazmadan önce halledilir.
Depolama ve gerçek zamanlı altyapıyı küresel bir ağ üzerinde biz çalıştırırız. Siz API'yi çağırıp yayına alırsınız.
Web, mobil ve sunucu uygulamalarında yorum başlıkları, sohbet ve canlı etkinliğin arkasında tek bir API ve SDK paketi.
Odadaki herkese mesajları gerçek zamanlı olarak aktarın; varlık sayımları ve yazma etkinliğiyle birlikte.
Birkaç API çağrısıyla makalelere, ürünlere ve gönderilere iç içe, oylanabilir yorum bölümleri ekleyin.
Bir akışa gönderi yapın ve yeni öğeleri ve tepkileri geldikçe bağlı istemcilere iletin.
Soruları, yanıtları, oyları ve anket sonuçlarını toplayın, ardından bunları canlı olarak sıralayıp görüntüleyin.
Ücretsiz denemeyi başlatın ve panelden tenant kimliğinizi ve API anahtarınızı alın.
Dilinize ait SDK'yı ekleyin veya REST API'yi doğrudan cURL ve x-api-key başlığınızla çağırın.
Yorumları yükleyin, arka ucunuzdan gönderin ve güncellemeleri her okuyucuya aktarmak için değişikliklere abone olun.
FastComments, kendi altyapımızda birden fazla bölgede çalışır. Yazmalar bölgeler arasında çoğaltılır, düğümler otomatik olarak yük devretme yapar ve okuyuculara kendilerine en yakın konumdan hizmet verilir.
Yazmalar birden fazla bölgede kabul edilir ve bölgeler arasında çoğaltılır, böylece tek bir hata noktası yoktur.
Yorumlar ve medya kendi küresel CDN ve DNS'imizden sunulur, kullanıcılarınıza en yakın konumdan teslim edilir. Üçüncü taraf CDN yok.
Yedekli düğümler kendi başlarına yük devretme yapar, böylece bir kesinti boyunca trafik akmaya devam eder. %99,99 çalışma süresi ile desteklenir.
US veya EU bölgesinde çalıştırın. eu.fastcomments.com adresindeki EU bölgesi, uyumluluk için verileri bölge içinde tutar.
Binlerce memnun müşteri, olağanüstü hizmetimiz, güvenilirliğimiz ve yenilikçi çözümlerimiz için bize güveniyor. Büyüyen topluluğumuza katılın ve farkı bugün deneyimleyin!
Başlayın
Hayır. Bileşen isteğe bağlıdır. Tüm yorum deneyiminizi REST API ve SDK'lar üzerine kurup her şeyi kendiniz oluşturabilirsiniz.
Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ ve Nim, ayrıca mobil için bir React Native SDK'sı. Herhangi bir dil REST API'yi doğrudan da çağırabilir.
İstemciler bir WebSocket açar ve yeni yorumları, düzenlemeleri, oyları ve varlık güncellemelerini olay olarak alır, böylece yenileme ve yoklama olmaz. Hiçbir olay kaçmaz: bir istemcinin bağlantısı kesilirse, yeniden bağlandığında event log'u yeniden çekerek çevrimdışıyken gönderilen her şeyi yeniden oynatır.
Hayır. Gerçek zamanlı altyapıyı FastComments barındırır. İstemciniz SDK ile abone olur ve olayları biz teslim ederiz.
Bir zaman damgasından bu yana her değişikliği döndüren event log uç noktasını yoklarlar. Node, React Native, Java, Swift ve C++ SDK'ları bunun yerine yerel bir WebSocket abonesi içerir.
Özellikle yorumlar için FastComments, en iyi yükleme süreleri açısından her yazmada sayfalamayı önceden hesaplar, böylece çok büyük başlıklar bile hızlı sayfalanır.
Evet. API ve SDK'lara tam erişimle ücretsiz denemeyi başlatın, kredi kartı gerekmez. Denemeden sonra ücretli planlar trafiğinizle birlikte ölçeklenir.
Tam REST API ve SDK referansı docs.fastcomments.com adresinde bulunur; burada her uç nokta, parametre ve yanıt belgelenmiştir.
Evet. FastComments, eu.fastcomments.com adresinde bir EU bölgesi sunar ve SDK'lar buraya yönlendirmeyi destekler.
Ücretsiz denemeyi başlatın, API anahtarınızı alın ve bugün uygulamanıza canlı tartışmalar ekleyin.