תגובות, ניהול ופיד חברתי דרך API אחד מסוג REST ו-SDK ליותר מ-10 שפות. שלפו, פרסמו ונהלו מהשרת שלכם, ואז הזרימו כל פעילות חדשה לכל קורא בזמן אמת דרך WebSockets.
FastComments היא הרבה יותר מתגובות. בנו דיונים, ניהול ופיד חברתי על אותה חבילת API ו-SDK.
תגובות מקוננות וצ'אט חי. שליפה, פרסום, הצבעה, נעיצה, תגובה וחיפוש, עם SSO ועדכונים בזמן אמת מובנים.
משטח ניהול ייעודי עם יותר מ-40 endpoints. אישור, סימון, חסימה, הרחקה, נעילה ותיעוד, מגובים בסינון ספאם אוטומטי.
בנו פידי פעילות ופידים חברתיים עם פוסטים, מדיה, ריאקציות ומעקבים, ואז דחפו פוסטים חדשים לכל לקוח בזמן אמת.
cURL ו-SDK עם טיפוסים ל-Node, Python, PHP, Ruby, Go, Java, Rust, Swift ו-C++. יותר מ-200 endpoints מכסים תגובות, הצבעות, עמודים, משתמשי SSO, פוסטים בפיד, ניהול והתראות, הכול מאחורי מפתח API יחיד.
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();
פתחו חיבור אחד וקבלו כל תגובה, עריכה, הצבעה ועדכון נוכחות חדשים ברגע שהם קורים. שום אירוע לא הולך לאיבוד: בעת חיבור מחדש ה-event log נשלף שוב כדי לשחזר כל מה שנשלח בזמן שהלקוח היה מנותק. מנויי WebSocket מקוריים זמינים ל-Node, React Native, Java, Swift ו-C++. כל שפה אחרת נשארת בזמן אמת באמצעות סקרים של ה-event log.
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'
חסכו את הבנייה והתחזוקה של ממשק תגובות משלכם. ה-SDK הייעודיים והמתוחזקים שלנו ל-React Native, ל-Android ול-iOS כוללים רכיבי ממשק מקוריים לתגובות מקוננות, לצ'אט חי ולפידים. שלבו view, העבירו config, וסיימתם.
npm: fastcomments-react-native-sdk
רכיבים מקוריים, ללא webview. שלבו את FastCommentsLiveCommenting, את FastCommentsLiveChat או את FastCommentsFeed והעבירו config.
צפו בדמו החיcom.fastcomments:sdk
רכיבי ממשק מקוריים ל-Android. הוסיפו את FastCommentsView ל-layout שלכם לתגובות מקוננות, הצבעות, התראות ופידים. Android 8.0+.
צפו ב-GitHubSwift Package: FastCommentsUI
ספריית SwiftUI מקורית לתגובות מקוננות, לפידים חברתיים ולצ'אט חי. iOS 16+ ו-macOS 14+.
צפו ב-GitHubמפתח API אחד, base URL אחד. כל מה שלוח הבקרה עושה, גם הקוד שלכם יכול לעשות.
לקוחות עם טיפוסים ל-Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ ועוד, כך שאתם בונים בסביבה שלכם ולא בשלנו.
תגובות חדשות מגיעות לכל קורא ברגע הפרסום, ללא רענון וללא סקרים. אם קורא מתחבר מחדש, אירועים שהוחמצו משוחזרים מהלוג.
כניסה אחודה (SSO), ניהול תגובות וסינון ספאם מובנים, כך שהחלקים הקשים מטופלים עוד לפני שכתבתם שורה.
אנחנו מפעילים את האחסון ואת תשתית זמן האמת ברשת גלובלית. אתם קוראים ל-API ומשגרים.
חבילת API ו-SDK אחת שמאחורי שרשורי תגובות, צ'אט ופעילות חיה באפליקציות ווב, נייד ושרת.
הזרימו הודעות לכולם בחדר בזמן אמת, עם ספירת נוכחות ופעילות הקלדה.
הוסיפו מקטעי תגובות מקוננות ובעלי הצבעה למאמרים, מוצרים ופוסטים בכמה קריאות API.
פרסמו לפיד ודחפו פריטים וריאקציות חדשים ללקוחות מחוברים ברגע שהם מגיעים.
אספו שאלות, תשובות, הצבעות ותוצאות סקר, ואז דרגו והציגו אותם בזמן אמת.
התחילו תקופת ניסיון חינם וקחו את מזהה הדייר (tenant ID) ומפתח ה-API מלוח הבקרה.
הוסיפו את ה-SDK לשפה שלכם, או קראו ל-REST API ישירות עם cURL ועם כותרת ה-x-api-key שלכם.
טענו תגובות, פרסמו מהשרת שלכם, והירשמו לשינויים כדי להזרים עדכונים לכל קורא.
FastComments פועלת על פני אזורים מרובים בתשתית משלנו. כתיבות משוכפלות בין אזורים, צמתים עוברים לגיבוי אוטומטית, וקוראים מקבלים שירות מהמיקום הקרוב אליהם ביותר.
כתיבות מתקבלות ביותר מאזור אחד ומשוכפלות ביניהם, כך שאין נקודת כשל יחידה.
תגובות ומדיה מוגשות מרשת ה-CDN וה-DNS הגלובלית שלנו, ומסופקות מהמיקום הקרוב ביותר למשתמשים שלכם. ללא CDN של צד שלישי.
צמתים מיותרים עוברים לגיבוי בכוחות עצמם, כך שהתעבורה ממשיכה לזרום גם בזמן תקלה. מגובה ב-99.99% זמינות.
הפעילו ב-US או ב-EU. אזור ה-EU בכתובת eu.fastcomments.com שומר נתונים בתוך האזור לצורכי תאימות.
אלפי לקוחות מרוצים סומכים עלינו בזכות השירות יוצא הדופן, האמינות והפתרונות החדשניים שלנו. הצטרפו לקהילה הגדלה שלנו וחוו את ההבדל עוד היום!
התחילו עכשיו
לא. הווידג'ט הוא אופציונלי. אתם יכולים לבנות את כל חוויית התגובות שלכם על גבי ה-REST API וה-SDK ולרנדר הכול בעצמכם.
Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ ו-Nim, יחד עם SDK ל-React Native לנייד. כל שפה יכולה גם לקרוא ל-REST API ישירות.
לקוחות פותחים WebSocket ומקבלים תגובות, עריכות, הצבעות ועדכוני נוכחות חדשים כאירועים, כך שאין רענון ואין סקרים. שום אירוע לא הולך לאיבוד: אם לקוח מתנתק, הוא שולף מחדש את ה-event log בעת החיבור מחדש כדי לשחזר כל מה שנשלח בזמן שהיה מנותק.
לא. FastComments מארחת את תשתית זמן האמת. הלקוח שלכם נרשם באמצעות ה-SDK, ואנחנו מספקים את האירועים.
הן מבצעות סקרים ל-endpoint של ה-event log, שמחזיר כל שינוי מאז חותמת זמן. ה-SDK של Node, React Native, Java, Swift ו-C++ כוללים במקום זאת מנוי WebSocket מקורי.
עבור תגובות באופן ספציפי, FastComments מחשבת מראש את העימוד בכל כתיבה לזמני טעינה אופטימליים, כך שאפילו שרשורים גדולים מאוד מתעמדים במהירות.
כן. התחילו תקופת ניסיון חינם עם גישה מלאה ל-API ול-SDK, ללא צורך בכרטיס אשראי. לאחר הניסיון, תוכניות בתשלום גדלות בהתאם לתעבורה שלכם.
התיעוד המלא של ה-REST API וה-SDK נמצא בכתובת docs.fastcomments.com, שם מתועדים כל endpoint, פרמטר ותגובה.
כן. FastComments מספקת אזור EU בכתובת eu.fastcomments.com, וה-SDK תומכים בניתוב אליו.
התחילו תקופת ניסיון חינם, קחו את מפתח ה-API שלכם, והוסיפו דיונים בזמן אמת לאפליקציה שלכם עוד היום.