Şunun için yorum API'si: canlı tartışmalar

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.

Tek platform, üç API

FastComments yorumlardan çok daha fazlasıdır. Tartışmaları, moderasyonu ve sosyal akışları aynı API ve SDK paketi üzerinde oluşturun.

Yorumlar API'si

İç 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.

Moderasyon API'si

40+ uç noktaya sahip özel bir moderasyon yüzeyi. Otomatik spam filtrelemeyle desteklenen onaylama, işaretleme, engelleme, yasaklama, kilitleme ve denetim.

Sosyal Akış API'si

Gönderiler, medya, tepkiler ve takiplerle etkinlik ve sosyal akışlar oluşturun, ardından yeni gönderileri her istemciye canlı olarak iletin.

API'yi herhangi bir teknoloji yığınından çağırın

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.

Kurnpm install fastcomments-sdk
import { 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'
Kurpip install fastcomments
import 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)
Kurcomposer 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;
}
Kurgem install fastcomments
require '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
Kurgo get github.com/fastcomments/fastcomments-go
package 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();

Canlı akışa abone olun

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.

Kurnpm install fastcomments-sdk
import { 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();
Kurnpm install fastcomments-react-native-sdk
import 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();
Kurpip install fastcomments
import 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'

Yerel mobil SDK'lar, hemen entegre edilmeye hazır

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.

React Native

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ün

Android

com.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üle

iOS

Swift 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üle

Aksi halde kendinizin oluşturacağı parçalar

200+ REST uç noktası

Tek API anahtarı, tek temel URL. Panelin yaptığı her şeyi kodunuz da yapabilir.

10+ dil için SDK'lar

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.

WebSockets üzerinden gerçek zamanlı

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.

Moderasyon, SSO ve spam koruması

Tek oturum açma, yorum moderasyonu ve spam filtreleme yerleşiktir; böylece zor kısımlar siz tek satır yazmadan önce halledilir.

Sizin için barındırılır ve ölçeklenir

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.

Neler oluşturabilirsiniz

Web, mobil ve sunucu uygulamalarında yorum başlıkları, sohbet ve canlı etkinliğin arkasında tek bir API ve SDK paketi.

Canlı sohbet odaları

Odadaki herkese mesajları gerçek zamanlı olarak aktarın; varlık sayımları ve yazma etkinliğiyle birlikte.

Yorum başlıkları

Birkaç API çağrısıyla makalelere, ürünlere ve gönderilere iç içe, oylanabilir yorum bölümleri ekleyin.

Etkinlik akışları

Bir akışa gönderi yapın ve yeni öğeleri ve tepkileri geldikçe bağlı istemcilere iletin.

Soru-Cevap ve anketler

Soruları, yanıtları, oyları ve anket sonuçlarını toplayın, ardından bunları canlı olarak sıralayıp görüntüleyin.

Üç adımda yayında

1

API anahtarınızı alın

Ücretsiz denemeyi başlatın ve panelden tenant kimliğinizi ve API anahtarınızı alın.

2

SDK'yı kurun

Dilinize ait SDK'yı ekleyin veya REST API'yi doğrudan cURL ve x-api-key başlığınızla çağırın.

3

Çekin, gönderin ve yayına geçin

Yorumları yükleyin, arka ucunuzdan gönderin ve güncellemeleri her okuyucuya aktarmak için değişikliklere abone olun.

Küresel olarak dağıtılmış ve yüksek erişilebilir

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.

Çok ana düğümlü, çok bölgeli

Yazmalar birden fazla bölgede kabul edilir ve bölgeler arasında çoğaltılır, böylece tek bir hata noktası yoktur.

Kendi kenar ağımız

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.

Otomatik yük devretme

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.

Bölgesel veri ikametgahı

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.

Mutlu Müşterilerimiz Aramıza Katılın

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

Yorum API'si SSS

FastComments bileşenini kullanmak zorunda mıyım?

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.

Hangi dillerin bir SDK'sı var?

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.

Gerçek zamanlı nasıl çalışır?

İ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.

Kendi WebSocket sunucumu çalıştırmam gerekir mi?

Hayır. Gerçek zamanlı altyapıyı FastComments barındırır. İstemciniz SDK ile abone olur ve olayları biz teslim ederiz.

Yerel bir abonesi olmayan diller nasıl canlı kalır?

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.

Sayfalama nasıl çalışır?

Ö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.

Ücretsiz deneme var mı?

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.

API belgeleri nerede?

Tam REST API ve SDK referansı docs.fastcomments.com adresinde bulunur; burada her uç nokta, parametre ve yanıt belgelenmiştir.

Verileri EU bölgesinde tutabilir miyim?

Evet. FastComments, eu.fastcomments.com adresinde bir EU bölgesi sunar ve SDK'lar buraya yönlendirmeyi destekler.

Dakikalar içinde geliştirmeye başlayın

Ücretsiz denemeyi başlatın, API anahtarınızı alın ve bugün uygulamanıza canlı tartışmalar ekleyin.