FastComments.com

FastComments JavaScript/TypeScript SDK


Bu, FastComments için resmi JavaScript/TypeScript SDK'sıdır.

Yorumları, kullanıcıları, SSO'yu ve moderasyonu Node.js veya tarayıcı üzerinden yönetin.

Depo

GitHub'da Görüntüle


Kurulum Internal Link


npm

npm install fastcomments-sdk

API Dokümantasyonu Internal Link


Tam API referansı: docs/api/README.md

Tarayıcı vs Sunucu Uyumluluğu Internal Link


Bu SDK, optimal uyumluluğu sağlamak ve çalışma zamanı hatalarını önlemek için çift giriş noktaları kullanır:

  • fastcomments-sdk/browser - Yerel fetch ile tarayıcı güvenli sürüm
  • fastcomments-sdk/server - SSO desteği ile tam Node.js sürümü
  • fastcomments-sdk (varsayılan) - Yalnızca tipler, her yere güvenle içe aktarılabilir

Genel vs Güvenli API'ler Internal Link

SDK üç ana API sınıfı sağlar:

  • DefaultApi - Kimlik doğrulama için API anahtarınızın gerektiği güvenli uç noktalar. Sunucu tarafı işlemler için bunları kullanın.
  • PublicApi - API anahtarı olmadan erişilebilen genel uç noktalar. Bunlar tarayıcılardan/taşınabilir cihazlardan vb. doğrudan çağrılabilir.
  • HiddenApi - İleri düzey kullanım durumları için dahili/yönetici uç noktaları.

Örnek: Public API Kullanımı (tarayıcı için güvenli)

import { PublicApi } from 'fastcomments-sdk/browser';

const publicApi = new PublicApi();

// Bir sayfanın yorumlarını al (API anahtarı gerekli değil)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Örnek: Default API Kullanımı (yalnızca sunucu tarafı)

import { DefaultApi, Configuration } from 'fastcomments-sdk/server';

const config = new Configuration({
  apiKey: 'your-api-key' // Bunu gizli tutun!
});
const defaultApi = new DefaultApi(config);

// Tam yönetici erişimi ile yorumları al
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO (Tekli Oturum Açma) Entegrasyonu Internal Link

FastComments, mevcut kullanıcı kimlik doğrulama sisteminizle entegre etmek için SSO'yu destekler. SSO functionality is only available in the server export since it requires Node.js crypto features.

Simple SSO (Server-Side Only)

Basit SSO sunucu tarafında oluşturulmalı ve istemciye gönderilmelidir:

// Sunucu tarafı kodu (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Yerleşik yardımcıyı kullanarak basit SSO oluştur  
const userData = {
  username: 'john_doe',
  email: 'john@example.com',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg'
};

const sso = FastCommentsSSO.createSimple(userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoToken = sso.createToken();

// ssoToken'ı istemci tarafı kodunuza gönderin
// İstemci tarafı kodu daha sonra bu token'ı tarayıcı SDK'sı ile kullanabilir

Güvenli SSO sunucu tarafında uygulanmalı ve daha iyi güvenlik sağlar:

// Sunucu tarafı kodu (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Yerleşik yardımcıyı kullanarak güvenli SSO oluştur
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

const sso = FastCommentsSSO.createSecure('your-api-key', userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoConfig = sso.prepareToSend();

// Sunucuda API çağrılarıyla kullanın
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Veya tarayıcı kullanımı için ssoConfig'i istemciye gönderin

Using SSO from Browser (with Server-Generated Token)

// İstemci tarafı kodu (tarayıcı)
import { PublicApi } from 'fastcomments-sdk/browser';

// Sunucu uç noktanızdan SSO token'ını alın
const ssoToken = await fetch('/api/sso-token').then(r => r.json());

const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: ssoToken // Use the server-generated SSO token
});

SSO with Comment Creation

// Sunucu tarafı: SSO ve yorum oluştur
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

const sso = FastCommentsSSO.createSecure('your-api-key', userData);
const ssoConfig = sso.prepareToSend();

const response = await publicApi.createCommentPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  broadcastId: 'unique-broadcast-id',
  commentData: {
    comment: 'This is my comment',
    date: Date.now(),
    commenterName: 'John Doe',
    url: 'https://example.com/page',
    urlId: 'page-url-id'
  },
  sso: JSON.stringify(ssoConfig)
});

Yaygın Kullanım Senaryoları Internal Link

Bir Sayfa İçin Yorumları Alma

const comments = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'article-123'
});

Yorum Oluşturma

const newComment = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'article-123',
    comment: 'Great article!',
    commenterName: 'John Doe',
    commenterEmail: 'john@example.com'
  }
});

Bir Yorum İçin Oy Verme

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 = yukarı oy, -1 = aşağı oy
  }
});

Kullanıcı Yönetimi (API Anahtarı Gerekir)

// Kullanıcıları ara (DefaultApi gerektirir)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Canlı Etkinlikler (Gerçek Zamanlı Güncellemeler) Internal Link

Yorumlar, oylar ve diğer etkinlikler için gerçek zamanlı güncellemeler almak üzere canlı etkinliklere abone olun.

Sayfa Düzeyi Etkinlikleri

Belirli bir sayfadaki canlı etkinlikleri dinleyin (yorumlar, oylar, vb.):

import { subscribeToChanges, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const config = {
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
};

// Belirli bir sayfa için canlı etkinliklere abone olun
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (bunu getComments yanıtından alın)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Yeni yorum ile UI'inizi güncelleyin
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Oy sayılarını arayüzünüzde güncelleyin
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Return true if event was handled
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Close the subscription when done
subscription.close();

Kullanıcı Etkinliklerine Abone Olma

Kullanıcıya özel etkinlikleri dinleyin (bildirimler, bahsetmeler, vb.):

import { subscribeToUserFeed, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const userConfig = {
  userIdWS: 'user-session-id', // Bu değeri getComments yanıtından alın
};

// Kullanıcının kişisel akışına abone olun
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Bildirimi arayüzünüzde gösterin
        break;
      case LiveEventType.notification_update:
        console.log('Notification updated:', event.notification);
        break;
      default:
        console.log('Other user event:', event.type);
    }
    
    return true;
  },
  (isConnected: boolean) => {
    console.log('User feed connection:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// İşiniz bittiğinde kapatın
userSubscription.close();

userIdWS'i Alma

The userIdWS parameter is required for live events and can be obtained from API responses:

const response = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-id'
});

// Yanıttan userIdWS'yi çıkarın
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Artık canlı etkinliklere abone olabilirsiniz
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Yayın Kimlikleri Internal Link

Bazı API çağrılarında bir broadcastId geçirmeniz gerektiğini göreceksiniz. Etkinlikleri aldığınızda bu ID size geri gönderilir; bu sayede istemcide değişiklikleri iyimser şekilde uygulamayı planlıyorsanız o etkinliği görmezden geleceğinizi bilirsiniz (muhtemelen en iyi deneyimi sunduğu için bunu yapmak isteyeceksiniz). Burada bir UUID iletin. ID, bir tarayıcı oturumu içinde iki kez oluşmayacak kadar benzersiz olmalıdır.

import { v4 as uuidv4 } from 'uuid';

const response = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'page-id',
    comment: 'My comment',
    broadcastId: uuidv4() // Bu işlem için benzersiz ID
  }
});

Hata Yönetimi Internal Link

try {
  const comments = await sdk.publicApi.getCommentsPublic({
    tenantId: 'your-tenant-id',
    urlId: 'page-id'
  });
} catch (error) {
  if (error.response?.status === 404) {
    console.log('Page not found');
  } else {
    console.error('API Error:', error.message);
  }
}

aggregate Internal Link

Belgeleri (eğer groupBy sağlanmışsa) gruplandırarak ve birden çok işlem uygulayarak toplar. Farklı işlemler (ör. sum, countDistinct, avg, vb.) desteklenir.

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
aggregationRequestAggregationRequestEvet
parentTenantIdstringHayır
includeStatsbooleanHayır

Response

Döndürür: Aggregate200Response

Örnek

aggregate Örneği
Copy Copy
1
2const tenantId: string = 'tenant_78a9';
3const parentTenantId: string = 'parent_tenant_01';
4const includeStats: boolean = true;
5const aggregationRequest: AggregationRequest = {
6 operation: { type: 'COUNT' },
7 groupBy: ['pageUrl'],
8 predicate: { field: 'status', operator: 'EQUALS', value: 'approved' },
9 sort: [{ field: 'count', direction: 'DESC' }],
10 limit: 25
11};
12const result: Aggregate200Response = await aggregate(tenantId, aggregationRequest, parentTenantId, includeStats);
13

getAuditLogs Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
limitnumberHayır
skipnumberHayır
orderSORTDIRHayır
afternumberHayır
beforenumberHayır

Yanıt

Döndürür: GetAuditLogs200Response

Örnek

getAuditLogs Örneği
Copy Copy
1
2const tenantId: string = 'tenant_5f8d7c3a';
3const limit: number = 100;
4const skip: number = 0;
5const order: SORTDIR = 'DESC' as SORTDIR;
6const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // bir hafta önce
7const before: number = Date.now();
8const result: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after, before);
9

blockFromCommentPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
publicBlockFromCommentParamsPublicBlockFromCommentParamsEvet
ssostringHayır

Yanıt

Döndürür: BlockFromCommentPublic200Response

Örnek

blockFromCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_6b3f9a2d';
3const commentId: string = 'cmt_8f4b12a9';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'Repeated promotional links',
6 durationMinutes: 60 * 24 * 30, // 30 gün
7 escalateToModeration: true
8};
9const sso: string = 'sso_token_3fH7kLw';
10
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

unBlockCommentPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
publicBlockFromCommentParamsPublicBlockFromCommentParamsEvet
ssostringHayır

Yanıt

Döndürür: UnBlockCommentPublic200Response

Örnek

unBlockCommentPublic Örneği
Copy Copy
1
2const tenantId: string = "tenant-42-production";
3const commentId: string = "comment_7f3b2a9d";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "flag reviewed and determined not to violate policy",
6 restoredBy: "moderator_jane",
7 restoredAt: new Date().toISOString()
8};
9const sso: string = "sso_token_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
10const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
11

checkedCommentsForBlocked Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdsstringEvet
ssostringHayır

Yanıt

Döndürür: CheckedCommentsForBlocked200Response

Örnek

checkedCommentsForBlocked Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_fa3b2c9e';
4 const commentIds: string = 'cmt_112233,cmt_445566';
5 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0Njc4IiwidGVuYW50IjoidGVuYW50X2ZhM2IifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6 const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, sso);
7 const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
8 console.log(resultWithSSO, resultWithoutSSO);
9})();
10

blockUserFromComment Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
blockFromCommentParamsBlockFromCommentParamsEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Döndürür: BlockFromCommentPublic200Response

Örnek

blockUserFromComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f3b4c";
3const id: string = "comment_9a8b7c6d";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated spam links",
6 durationHours: 168,
7 notifyModerators: true
8};
9const userId: string | undefined = "user_42";
10const anonUserId: string | undefined = undefined;
11const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
12

createCommentPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
broadcastIdstringEvet
commentDataCommentDataEvet
sessionIdstringHayır
ssostringHayır

Yanıt

Döndürür: CreateCommentPublic200Response

Örnek

createCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9a1b2c';
3const urlId: string = 'https://www.news-site.com/article/67890';
4const broadcastId: string = 'broadcast_2026-06-15-01';
5const sessionId: string | undefined = 'sess_abc123xyz';
6const sso: string | undefined = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiam9yZGFuIiwiaWF0IjoxNjI0MDAwMDB9.signature';
7const commentData: CommentData = {
8 content: 'Insightful piece — I appreciated the data-backed points and sources cited.',
9 authorDisplayName: 'Jordan Miles'
10} as CommentData;
11const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
12

deleteComment Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
contextUserIdstringHayır
isLivebooleanHayır

Yanıt

Döndürür: DeleteComment200Response

Örnek

deleteComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_84a9f2';
3const id: string = 'comment_5f3b21';
4const contextUserId: string | undefined = 'user_1122';
5const isLive: boolean | undefined = true;
6
7async function run(): Promise<void> {
8 const result: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
9 console.log(result);
10}
11
12run();
13

deleteCommentPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
editKeystringHayır
ssostringHayır

Yanıt

Döndürür: DeleteCommentPublic200Response

Örnek

deleteCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const commentId: string = 'c0mment-9f8b7a6';
4const broadcastId: string = 'site_homepage_2026-06-15';
5const editKey: string = 'ek_3b7a1f59-4d2c-11eb-8dcd-0242ac130003';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
9

deleteCommentVote Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
voteIdstringEvet
urlIdstringEvet
broadcastIdstringEvet
editKeystringHayır
ssostringHayır

Yanıt

Döndürür: DeleteCommentVote200Response

Örnek

deleteCommentVote Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8f3a2b7c';
3const commentId: string = 'cmt-5a1f3d92';
4const voteId: string = 'vote-3b9c7e1a';
5const urlId: string = 'articles/2026/06/typescript-best-practices';
6const broadcastId: string = 'broadcast-77f4d2';
7const editKey: string = 'edk-9b2f4c';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
9const result: DeleteCommentVote200Response = await deleteCommentVote(tenantId, commentId, voteId, urlId, broadcastId, editKey, sso);
10

flagComment Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Döndürür: FlagComment200Response

Örnek

flagComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_4f21c9a";
3const commentId: string = "cmt_7a12b3e9";
4const userId: string = "user_82bd123";
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

getComment Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetComment200Response

Örnek

getComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_6f1a2b';
3const commentId: string = 'cmt_4d9e8f';
4const includeReplies: boolean | undefined = true; // isteğe bağlı parametre örneği (getComment'a gönderilmez)
5const result: GetComment200Response = await getComment(tenantId, commentId);
6console.log('Fetched comment for tenant:', tenantId, 'comment id:', commentId);
7console.log('API response received:', result);
8

getComments Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
pagenumberHayır
limitnumberHayır
skipnumberHayır
asTreebooleanHayır
skipChildrennumberHayır
limitChildrennumberHayır
maxTreeDepthnumberHayır
urlIdstringHayır
userIdstringHayır
anonUserIdstringHayır
contextUserIdstringHayır
hashTagstringHayır
parentIdstringHayır
directionSortDirectionsHayır
fromDatenumberHayır
toDatenumberHayır

Yanıt

Döndürür: GetComments200Response

Örnek

getComments Örneği
Copy Copy
1
2const tenantId: string = "tenant_9a12b3";
3const response: GetComments200Response = await getComments(tenantId, 1, 20, 0, true, 0, 3, 2, "https://mysite.com/posts/678", undefined, undefined, undefined, undefined, "parent_987", undefined, 1716873600000, 1719552000000);
4

getCommentsPublic Internal Link

req tenantId urlId

Parametreler

NameTypeGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
pagenumberHayır
directionSortDirectionsHayır
ssostringHayır
skipnumberHayır
skipChildrennumberHayır
limitnumberHayır
limitChildrennumberHayır
countChildrenbooleanHayır
fetchPageForCommentIdstringHayır
includeConfigbooleanHayır
countAllbooleanHayır
includei10nbooleanHayır
localestringHayır
modulesstringHayır
isCrawlerbooleanHayır
includeNotificationCountbooleanHayır
asTreebooleanHayır
maxTreeDepthnumberHayır
useFullTranslationIdsbooleanHayır
parentIdstringHayır
searchTextstringHayır
hashTagsArrayHayır
userIdstringHayır
customConfigStrstringHayır
afterCommentIdstringHayır
beforeCommentIdstringHayır

Yanıt

Döndürür: GetCommentsPublic200Response

Örnek

getCommentsPublic Örneği
Copy Copy
1
2const tenantId: string = 'acme-news';
3const urlId: string = '/articles/2026/fastcomments-update';
4const page: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const countChildren: boolean = true;
8const includeConfig: boolean = true;
9const result: GetCommentsPublic200Response = await getCommentsPublic(
10 tenantId,
11 urlId,
12 page,
13 undefined,
14 undefined,
15 skip,
16 undefined,
17 limit,
18 undefined,
19 countChildren,
20 undefined,
21 includeConfig
22);
23

getCommentText Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
editKeystringHayır
ssostringHayır

Yanıt

Döndürür: GetCommentText200Response

Örnek

getCommentText Örneği
Copy Copy
1
2const tenantId: string = 'tenant_42b7e9';
3const commentId: string = 'cmt_9f3a2b';
4const editKey: string = 'edk_3f1b7c9d';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

getCommentVoteUserNames Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
dirnumberEvet
ssostringHayır

Yanıt

Dönen değer: GetCommentVoteUserNames200Response

Örnek

getCommentVoteUserNames Örneği
Copy Copy
1
2const tenantId: string = "tenant_67890";
3const commentId: string = "comment_abc123";
4const dir: number = 1;
5const ssoToken: string = "sso-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
6
7const responseWithoutSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
8const responseWithSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9

lockComment Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
ssostringHayır

Yanıt

Döndürür: LockComment200Response

Örnek

lockComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_42f6c1';
3const commentId: string = 'cmt-9a8b7c';
4const broadcastId: string = 'brd_2026_06_15';
5const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTY1MDAwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6
7const lockedWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
8const lockedWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
9

pinComment Internal Link

Parametreler

AdTürZorunluAçıklama
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
ssostringHayır

Yanıt

Döndürür: PinComment200Response

Örnek

pinComment Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-72";
3const commentId: string = "cmt_8f3a2b4c9d";
4const broadcastId: string = "live_2026-06-15_21z";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.payload.signature";
6
7const responseNoSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId);
8const responseWithSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, ssoToken);
9

saveComment Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
createCommentParamsCreateCommentParamsEvet
isLivebooleanHayır
doSpamCheckbooleanHayır
sendEmailsbooleanHayır
populateNotificationsbooleanHayır

Yanıt

Döndürür: SaveComment200Response

Örnek

saveComment Örneği
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-42";
3const createCommentParams: CreateCommentParams = {
4 threadId: "article-2026-06-0142",
5 content: "Great write-up — I followed the migration steps and everything worked as described.",
6 userId: "u_9c72b",
7 userName: "Ava R.",
8 userAvatarUrl: "https://cdn.example.com/avatars/u_9c72b.png",
9 metadata: { platform: "web", locale: "en-US" }
10};
11const isLive: boolean = true;
12const doSpamCheck: boolean = true;
13const sendEmails: boolean = false;
14const populateNotifications: boolean = true;
15const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
16

saveCommentsBulk Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createCommentParamsArrayEvet
isLivebooleanHayır
doSpamCheckbooleanHayır
sendEmailsbooleanHayır
populateNotificationsbooleanHayır

Yanıt

Döndürür: Array<SaveComment200Response

Örnek

saveCommentsBulk Örneği
Copy Copy
1
2const tenantId: string = "tenant_42a1b7";
3const mentions: CommentUserMentionInfo[] = [{ userId: "user_2b9", displayName: "Alex Chen" }];
4const hashtags: CommentUserHashTagInfo[] = [{ tag: "performance" }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: "Thanks for the detailed article — the alternative approach worked for me.",
8 authorId: "user_8f3c2",
9 authorName: "Maya Patel",
10 authorEmail: "maya.patel@example.com",
11 url: "/articles/optimizing-ts-performance",
12 createdAt: new Date().toISOString(),
13 mentions,
14 hashtags
15 }
16];
17const isLive: boolean = true;
18const doSpamCheck: boolean = false;
19const sendEmails: boolean = true;
20const populateNotifications: boolean = true;
21const result: Array<SaveComment200Response> = await saveCommentsBulk(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
22

setCommentText Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
commentTextUpdateRequestCommentTextUpdateRequestEvet
editKeystringHayır
ssostringHayır

Yanıt

Dönüş: SetCommentText200Response

Örnek

setCommentText Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f9a2b'
3const commentId: string = 'cmt-8421'
4const broadcastId: string = 'brd-2026-06-15'
5const commentTextUpdateRequest: CommentTextUpdateRequest = { text: 'Updated comment text to clarify the schedule.', mentions: [], hashtags: [] }
6const editKey: string = 'editkey_9b12'
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso.signature'
8const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso)
9

unBlockUserFromComment Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
unBlockFromCommentParamsUnBlockFromCommentParamsEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Döndürür: UnBlockCommentPublic200Response

Örnek

unBlockUserFromComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7b9c2a';
3const id: string = 'comment_4f8e1d';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'User submitted appeal and provided additional context',
6 effectiveAt: new Date().toISOString()
7};
8const userId: string = 'user_92a3f6';
9const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId);
10

unFlagComment Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Döndürür: FlagComment200Response

Örnek

unFlagComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2a1f';
3const commentId: string = 'cmt_20250614_01';
4const userId: string = 'user_47d2b9';
5const result: FlagComment200Response = await unFlagComment(tenantId, commentId, userId);
6

unLockComment Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
ssostringHayır

Yanıt

Döndürür: LockComment200Response

Örnek

unLockComment Örneği
Copy Copy
1
2const tenantId: string = "tenant-8f3b2c4a";
3const commentId: string = "cmt_92a7f3e6";
4const broadcastId: string = "brd_1b4c9d20";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
7

unPinComment Internal Link

Parametreler

İsimTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
broadcastIdstringEvet
ssostringHayır

Yanıt

Dönüş: PinComment200Response

Örnek

unPinComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f3b2c1a";
3const commentId: string = "comment_4d2e8a7f";
4const broadcastId: string = "broadcast_live_2026_06_15_18";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.invalid-signature";
6const response: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
7console.log(response);
8

updateComment Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updatableCommentParamsUpdatableCommentParamsEvet
contextUserIdstringHayır
doSpamCheckbooleanHayır
isLivebooleanHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3c1b2a';
3const commentId: string = 'cmt_8d9f2a4b';
4const updatableCommentParams: UpdatableCommentParams = {
5 body: 'Updating this comment to clarify the feature behavior and include a timestamp.',
6 metadata: { category: 'support', editedReason: 'clarify instructions' },
7 visible: true
8};
9const contextUserId: string = 'user_42';
10const doSpamCheck: boolean = true;
11const result: FlagCommentPublic200Response = await updateComment(tenantId, commentId, updatableCommentParams, contextUserId, doSpamCheck);
12

voteComment Internal Link

Parametreler

AdTipZorunluAçıklama
tenantIdstringEvet
commentIdstringEvet
urlIdstringEvet
broadcastIdstringEvet
voteBodyParamsVoteBodyParamsEvet
sessionIdstringHayır
ssostringHayır

Yanıt

Dönüş: VoteComment200Response

Örnek

voteComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2e';
3const commentId: string = '5a1d3f9b-2c4e-4a2b-bf7b-1234567890ab';
4const urlId: string = 'articles/2026/06/15/typescript-api-patterns';
5const broadcastId: string = 'broadcast-20260615-01';
6const voteBodyParams: VoteBodyParams = { vote: 'up' };
7const sessionId: string = 'sess_9d2f3b45';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY5NzE2MDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
9
10const response: VoteComment200Response = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBodyParams,
16 sessionId,
17 sso
18);
19

getCommentsForUser Internal Link

Parametreler

AdTürGerekliAçıklama
userIdstringHayır
directionSortDirectionsHayır
repliesToUserIdstringHayır
pagenumberHayır
includei10nbooleanHayır
localestringHayır
isCrawlerbooleanHayır

Yanıt

Döndürür: GetCommentsForUser200Response

Örnek

getCommentsForUser Örneği
Copy Copy
1
2const userId: string = "550e8400-e29b-41d4-a716-446655440000";
3const page: number = 2;
4const includei10n: boolean = true;
5const locale: string = "en-US";
6const isCrawler: boolean = false;
7
8const comments: GetCommentsForUser200Response = await getCommentsForUser(
9 userId,
10 undefined, // direction atlandı
11 undefined, // repliesToUserId atlandı
12 page,
13 includei10n,
14 locale,
15 isCrawler
16);
17
18console.log(comments);
19

addDomainConfig Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
addDomainConfigParamsAddDomainConfigParamsEvet

Yanıt

Döndürür: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
domainstringEvet

Yanıt

Döndürür: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
domainstringEvet

Yanıt

Döndürür: GetDomainConfig200Response

getDomainConfigs Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet

Yanıt

Döndürür: GetDomainConfigs200Response

patchDomainConfig Internal Link


Parametreler

İsimTürGerekliAçıklama
tenantIdstringEvet
domainToUpdatestringEvet
patchDomainConfigParamsPatchDomainConfigParamsEvet

Yanıt

Döndürür: GetDomainConfig200Response


putDomainConfig Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
domainToUpdatestringEvet
updateDomainConfigParamsUpdateDomainConfigParamsEvet

Yanıt

Döndürür: GetDomainConfig200Response


createEmailTemplate Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createEmailTemplateBodyCreateEmailTemplateBodyEvet

Yanıt

Döndürür: CreateEmailTemplate200Response

Örnek

createEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = "tenant_4f2b1c9e";
3const createEmailTemplateBody: CreateEmailTemplateBody = {
4 name: "New Comment Notification",
5 subject: "Someone replied to your discussion",
6 fromName: "Community Team",
7 fromAddress: "no-reply@community.example.com",
8 htmlBody: "<p>\{{comment.author}} replied: \{{comment.text}}</p>",
9 plaintextBody: "\{{comment.author}} replied: \{{comment.text}}",
10 previewText: "A new reply on a discussion you follow",
11 isDefault: false // isteğe bağlı parametre kullanımını gösteren bayrak
12};
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

deleteEmailTemplate Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = "tenant_9c4f1b2a";
3const id: string = "emailtmpl_4d2b9a5e";
4const requestorNote: string | undefined = undefined; // isteğe bağlı meta veriler (fonksiyon için gerekli değil)
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, id);
6

deleteEmailTemplateRenderError Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
errorIdstringYes

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteEmailTemplateRenderError Örneği
Copy Copy
1
2const tenantId: string = 'tenant-72f3b4';
3const templateId: string = 'email_template-9c3a1';
4let providedErrorId: string | undefined = undefined; // isteğe bağlı bir değer, başka bir yerde ayarlanmış olabilir
5const errorId: string = providedErrorId ?? 'render_err-5d2f7';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
7

getEmailTemplate Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetEmailTemplate200Response

Örnek

getEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c';
3const templateId: string = 'welcome-email-2024';
4const includeDrafts: boolean | undefined = undefined;
5const emailTemplate: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
6

getEmailTemplateDefinitions Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringYes

Yanıt

Döndürür: GetEmailTemplateDefinitions200Response

Örnek

getEmailTemplateDefinitions Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_001';
4 const options: { includeDrafts?: boolean } = { includeDrafts: true }; // isteğe bağlı parametre gösterimi
5 const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId, options);
6 console.log(templates);
7})();
8

getEmailTemplateRenderErrors Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
skipnumberHayır

Yanıt

Döndürür: GetEmailTemplateRenderErrors200Response

Örnek

getEmailTemplateRenderErrors Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const id: string = 'tmpl_7f9a2b4c';
4const skip: number = 20;
5
6const errorsWithSkip: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7const errorsFirstPage: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id);
8

getEmailTemplates Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetEmailTemplates200Response

Örnek

getEmailTemplates Örneği
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-marketing-tenant-001";
4 const templatesDefault: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const templatesPaged: GetEmailTemplates200Response = await getEmailTemplates(tenantId, 25);
6 console.log(templatesDefault, templatesPaged);
7}
8run();
9

renderEmailTemplate Internal Link


Parametreler

AdTürZorunluAçıklama
tenantIdstringEvet
renderEmailTemplateBodyRenderEmailTemplateBodyEvet
localestringHayır

Yanıt

Dönen değer: RenderEmailTemplate200Response

Örnek

renderEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = '7f7e2b90-3a2b-4d9b-9df1-5f0b6b2e8a1c';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'welcome_email',
5 recipient: { email: 'jordan.smith@acme.co', name: 'Jordan Smith' },
6 variables: { siteName: 'Acme Forum', verificationUrl: 'https://acme.forum/verify?code=abc123' }
7};
8const locale: string = 'en-US';
9const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
10

updateEmailTemplate Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateEmailTemplateBodyUpdateEmailTemplateBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-123';
3const id: string = 'template-789';
4const locale: string | undefined = 'en-US';
5const updateEmailTemplateBody: UpdateEmailTemplateBody = {
6 subject: 'Welcome to Acme — Get started',
7 bodyHtml: '<p>Hi \{{firstName}}, welcome to Acme. Start by visiting your dashboard.</p>',
8 fromName: 'Acme Support',
9 fromEmail: 'support@acme.com',
10 enabled: true,
11 ...(locale ? { locale } : {})
12};
13const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
14

getEventLog Internal Link

req tenantId urlId userIdWS

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
urlIdstringEvet
userIdWSstringEvet
startTimenumberEvet
endTimenumberHayır

Yanıt

Döndürür: GetEventLog200Response

Örnek

getEventLog Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2b';
3const urlId: string = 'news/2026/06/fastcomments-release';
4const userIdWS: string = 'ws_user_48291';
5const startTime: number = Date.now() - 86_400_000;
6const endTime: number = Date.now();
7const result: GetEventLog200Response = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
8

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
userIdWSstringEvet
startTimenumberEvet
endTimenumberHayır

Yanıt

Döndürür: GetEventLog200Response

Örnek

getGlobalEventLog Örneği
Copy Copy
1
2const tenantId: string = "tenant_639b7f12";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/important-update-987";
4const userIdWS: string = "user_ws_42b7";
5const startTime: number = new Date("2026-06-14T00:00:00Z").getTime();
6const endTime: number = Date.now();
7
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
isLivebooleanNo
doSpamCheckbooleanNo
skipDupCheckbooleanNo

Yanıt

Döndürür: CreateFeedPost200Response

Örnek

createFeedPost Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f2b1c';
3const createFeedPostParams: CreateFeedPostParams = {
4 content: 'Launching our summer collection today — check it out!',
5 authorId: 'user_879',
6 media: [
7 {
8 type: 'image',
9 assets: [
10 { url: 'https://cdn.myshop.com/uploads/summer-look.jpg', width: 1200, height: 800 } as FeedPostMediaItemAsset
11 ]
12 } as FeedPostMediaItem
13 ],
14 links: [
15 { url: 'https://myshop.com/new-arrival', title: 'Summer Collection' } as FeedPostLink
16 ],
17 allowComments: true
18};
19const broadcastId: string = 'broadcast-2026-06-15-001';
20const isLive: boolean = false;
21const doSpamCheck: boolean = true;
22const skipDupCheck: boolean = false;
23const response: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
24

createFeedPostPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createFeedPostParamsCreateFeedPostParamsEvet
broadcastIdstringHayır
ssostringHayır

Yanıt

Döndürür: CreateFeedPostPublic200Response

Örnek

createFeedPostPublic Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f8b7c";
4 const media: FeedPostMediaItem[] = [{ type: "image", assets: [{ url: "https://cdn.example.com/roadmap.jpg", mimeType: "image/jpeg" }] }];
5 const links: FeedPostLink[] = [{ url: "https://company.example.com/roadmap", title: "Full roadmap" }];
6 const createFeedPostParams: CreateFeedPostParams = {
7 title: "Weekly Product Roadmap Update",
8 body: "This week we shipped enhancements to search relevance and fixed top customer bugs.",
9 authorId: "user_8321",
10 media,
11 links,
12 visibility: "public"
13 };
14 const broadcastId: string = "broadcast_2026_06_15";
15 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload";
16 const response: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
17 console.log(response);
18})();
19

deleteFeedPostPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
postIdstringEvet
broadcastIdstringHayır
ssostringHayır

Yanıt

Döndürür: DeleteFeedPostPublic200Response

Örnek

deleteFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const postId: string = 'post_8f3d2a7c';
4const broadcastId: string = 'broadcast_2026-06-15_01';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6const response: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
7

getFeedPosts Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringEvet
afterIdstringHayır
limitnumberHayır
tagsArrayHayır

Yanıt

Döndürür: GetFeedPosts200Response

Örnek

getFeedPosts Örneği
Copy Copy
1
2const tenantId: string = "tenant_74321";
3const afterId: string = "post_20250610_9b2f3";
4const limit: number = 25;
5const tags: Array<string> = ["product-updates", "announcements"];
6
7const response: GetFeedPosts200Response = await getFeedPosts(tenantId, afterId, limit, tags);
8

getFeedPostsPublic Internal Link

req tenantId afterId

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
afterIdstringHayır
limitnumberHayır
tagsArrayHayır
ssostringHayır
isCrawlerbooleanHayır
includeUserInfobooleanHayır

Yanıt

Döndürür: GetFeedPostsPublic200Response

Örnek

getFeedPostsPublic Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_01';
4 const afterId: string = 'post_20250610_842';
5 const limit: number = 25;
6 const tags: string[] = ['news', 'technology'];
7 const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1Ni';
8 const isCrawler: boolean = false;
9 const includeUserInfo: boolean = true;
10
11 const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(
12 tenantId,
13 afterId,
14 limit,
15 tags,
16 sso,
17 isCrawler,
18 includeUserInfo
19 );
20
21 console.log(response);
22})();
23

getFeedPostsStats Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
postIdsArrayEvet
ssostringHayır

Yanıt

Döndürür: GetFeedPostsStats200Response

Örnek

getFeedPostsStats Örneği
Copy Copy
1
2const tenantId: string = "tenant_98765";
3const postIds: string[] = ["post_a1b2c3", "post_d4e5f6"];
4const ssoToken: string = "sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
5
6const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
7const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, ssoToken);
8

getUserReactsPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
postIdsArrayHayır
ssostringHayır

Yanıt

Döndürür: GetUserReactsPublic200Response

Örnek

getUserReactsPublic Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-4f2b9c';
3const postIds: Array<string> = ['post_7a1f9e', 'post_2b3c88'];
4const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTYwOTQ0MDAwMH0.signature';
5
6const response: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
7

reactFeedPostPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
postIdstringEvet
reactBodyParamsReactBodyParamsEvet
isUndobooleanHayır
broadcastIdstringHayır
ssostringHayır

Yanıt

Döndürür: ReactFeedPostPublic200Response

Örnek

reactFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const postId: string = 'feedpost_78901';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast_2026_06_15_01';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8
9const response: ReactFeedPostPublic200Response = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 isUndo,
14 broadcastId,
15 sso
16);
17

updateFeedPost Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
feedPostFeedPostEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateFeedPost Örneği
Copy Copy
1
2const tenantId: string = "tenant_72f3b4c9";
3const id: string = "post_ba4f6e18-2d3c-4b7a-91f2-8c0e3a6b5d4f";
4
5const feedPost: FeedPost = {
6 title: "June feature rollout",
7 body: "Announcing performance improvements and moderation updates available to all sites.",
8 authorName: "Platform Team",
9 mediaItems: [
10 {
11 type: "image",
12 caption: "Release banner",
13 asset: { url: "https://cdn.fastcomments.com/assets/june-banner.jpg", mimeType: "image/jpeg", width: 1200, height: 600 }
14 }
15 ],
16 links: [{ title: "Release notes", url: "https://docs.fastcomments.com/releases/june-2026" }]
17} as FeedPost;
18
19const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
20

updateFeedPostPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
postIdstringEvet
updateFeedPostParamsUpdateFeedPostParamsEvet
broadcastIdstringHayır
ssostringHayır

Yanıt

Döndürür: CreateFeedPostPublic200Response

Örnek

updateFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const postId: string = 'post_20260615_001';
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: 'Weekly Update: Product Launch',
6 content: 'We shipped the 2.0 release today — highlights and links below.',
7 media: [{ url: 'https://cdn.acme.com/releases/launch.jpg', type: 'image' }],
8 tags: ['release', 'product'],
9 isPublic: true
10};
11const broadcastId: string = 'broadcast_live_42';
12const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
13const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
14

flagCommentPublic Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
isFlaggedbooleanEvet
ssostringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

flagCommentPublic Örnek
Copy Copy
1
2const tenantId: string = "tenant_4f1b2a9c";
3const commentId: string = "comment_8d3e6f12";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

getGifLarge Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
largeInternalURLSanitizedstringEvet

Yanıt

Döndürür: GetGifLarge200Response

Örnek

getGifLarge Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/07d3f6_large.gif";
4const preferWebP: boolean | undefined = true; // isteğe bağlı tercih
5const urlToUse: string = preferWebP ? largeInternalURLSanitized.replace(".gif", ".webp") : largeInternalURLSanitized;
6const response: GetGifLarge200Response = await getGifLarge(tenantId, urlToUse);
7

getGifsSearch Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
searchstringEvet
localestringHayır
ratingstringHayır
pagenumberHayır

Yanıt

Dönüş: GetGifsSearch200Response

Örnek

getGifsSearch Örneği
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const search: string = "cat playing piano";
4const locale: string = "en-US";
5const rating: string = "pg";
6const page: number = 1;
7const result: GetGifsSearch200Response = await getGifsSearch(tenantId, search, locale, rating, page);
8

getGifsTrending Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
localestringHayır
ratingstringHayır
pagenumberHayır

Yanıt

Döndürür: GetGifsTrending200Response

Örnek

getGifsTrending Örneği
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_8b3f2c';
4 const locale: string = 'en-US';
5 const rating: string = 'pg';
6 const page: number = 1;
7 const result: GetGifsTrending200Response = await getGifsTrending(tenantId, locale, rating, page);
8 console.log(result);
9}
10main();
11

addHashTag Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringHayır
createHashTagBodyCreateHashTagBodyHayır

Yanıt

Döndürür: AddHashTag200Response

Örnek

addHashTag Örneği
Copy Copy
1
2const tenantId: string | undefined = "tenant_3c9f7b";
3const createHashTagBody: CreateHashTagBody = {
4 name: "support",
5 title: "Support",
6 description: "Questions about product usage, bugs, and account issues",
7 color: "#0066CC",
8 isActive: true,
9 aliases: ["help", "customer-service"]
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
12

addHashTagsBulk Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringHayır
bulkCreateHashTagsBodyBulkCreateHashTagsBodyHayır

Yanıt

Döndürür: AddHashTagsBulk200Response

Örnek

addHashTagsBulk Örneği
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_987";
3const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
4 tags: [
5 { name: "product-update", description: "Announcements about new product releases", visible: true },
6 { name: "customer-support", description: "Customer support related discussions", visible: false }
7 ],
8 createdBy: "moderator_jane"
9};
10const resultWithTenant: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
11const resultWithoutTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBody);
12

deleteHashTag Internal Link

Parametreler

AdTürGerekliAçıklama
tagstringEvet
tenantIdstringHayır
deleteHashTagRequestDeleteHashTagRequestHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteHashTag Örneği
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_72a1";
4const deleteHashTagRequest: DeleteHashTagRequest = {
5 reason: "consolidate-duplicates",
6 requestedBy: "moderator@dailypress.com",
7 forceDelete: true
8};
9const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteHashTagRequest);
10

getHashTags Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
pagenumberHayır

Yanıt

Dönüş: GetHashTags200Response

Örnek

getHashTags Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f4b2c3a';
3const tagsFirstPage: GetHashTags200Response = await getHashTags(tenantId);
4const tagsSecondPage: GetHashTags200Response = await getHashTags(tenantId, 2);
5console.log(tagsFirstPage, tagsSecondPage);
6

patchHashTag Internal Link

Parametreler

AdTürGerekliAçıklama
tagstringEvet
tenantIdstringHayır
updateHashTagBodyUpdateHashTagBodyHayır

Yanıt

Döndürür: PatchHashTag200Response

Örnek

patchHashTag Örneği
Copy Copy
1
2const tag: string = "feature-request";
3const tenantId: string = "tenant_8f7a3b2c";
4const updateHashTagBody: UpdateHashTagBody = {
5 displayName: "Feature Request",
6 description: "Use this tag for requests to add new features to the product",
7 enabled: true
8};
9const result: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
10

createModerator Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createModeratorBodyCreateModeratorBodyEvet

Yanıt

Döndürür: CreateModerator200Response

Örnek

createModerator Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b21';
3const createModeratorBody: CreateModeratorBody = {
4 moderator: {
5 name: 'Alex Rivera',
6 email: 'alex.rivera@fastcomments.io',
7 role: 'global_moderator',
8 enabled: true,
9 },
10 // isteğe bağlı parametreler gösteriliyor:
11 notifyUser: true,
12 permissions: ['delete_comment', 'edit_comment', 'ban_user'],
13 customConfig: { dashboardTheme: 'dark' } as unknown as CustomConfigParameters
14};
15const result: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
16

deleteModerator Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
sendEmailstringHayır

Yanıt

Dönüş: FlagCommentPublic200Response

Örnek

deleteModerator Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2c9a';
3const id: string = 'mod_9c2d1f7b';
4const sendEmail: string = 'true';
5const response: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6console.log(response);
7

getModerator Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetModerator200Response

Örnek

getModerator Örneği
Copy Copy
1
2const tenantId: string = 'acme-media-58';
3const id: string = 'mod-82f3b9c1';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

getModerators Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetModerators200Response

Örnek

getModerators Örneği
Copy Copy
1
2const tenantId: string = 'tenant_0a1b2c3d';
3const moderators: GetModerators200Response = await getModerators(tenantId);
4const skip: number = 20;
5const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, skip);
6

sendInvite Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
fromNamestringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

sendInvite Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_acme_42";
4 const id: string = "cmt_8f3b21";
5 const fromName: string = "Ava Thompson";
6 const inviteResult: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7 console.log(inviteResult);
8})();
9

updateModerator Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateModeratorBodyUpdateModeratorBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateModerator Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-81';
3const id: string = 'mod_7f3a2b';
4const updateModeratorBody: UpdateModeratorBody = {
5 email: 'j.reyes@acme-corp.com',
6 displayName: 'Jordan Reyes',
7 roles: ['moderator', 'content_reviewer'],
8 active: true,
9 notes: 'Promoted to senior moderator; monitor flagged content weekly'
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

deleteNotificationCount Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_5f3d2e1b';
3const id: string = 'notification_9a4b1c2';
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5

getCachedNotificationCount Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetCachedNotificationCount200Response

Örnek

getCachedNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-23';
3const id: string = 'user_987654';
4const cachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
5
6const maybeId: string | undefined = Math.random() > 0.5 ? 'user_123456' : undefined;
7if (maybeId) {
8 const optionalCachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, maybeId);
9}
10

getNotificationCount Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
userIdstringHayır
urlIdstringHayır
fromCommentIdstringHayır
viewedbooleanHayır
typestringHayır

Yanıt

Dönüş: GetNotificationCount200Response

Örnek

getNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_82a3b9f';
3const userId: string = 'user_43721';
4const urlId: string = 'https://news.example.com/articles/2026/06/15/coverage-123';
5const fromCommentId: string = 'comment_98765';
6const viewed: boolean = false;
7const notificationType: string = 'mention';
8
9const result: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, notificationType);
10

getNotifications Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo
skipnumberNo

Yanıt

Döndürür: GetNotifications200Response

Örnek

getNotifications Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6a';
3const userId: string = 'user_5a4b3c2d';
4const urlId: string = 'post_84f2a1b9';
5const fromCommentId: string = 'cmt_0a1b2c3d';
6const viewed: boolean = false;
7const type: string = 'reply';
8const skip: number = 0;
9
10const notifications: GetNotifications200Response = await getNotifications(
11 tenantId,
12 userId,
13 urlId,
14 fromCommentId,
15 viewed,
16 type,
17 skip
18);
19

updateNotification Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateNotificationBodyUpdateNotificationBodyEvet
userIdstringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateNotification Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const id: string = 'notification_4a1d2e';
4const updateNotificationBody: UpdateNotificationBody = {
5 enabled: true,
6 channels: ['email', 'push'],
7 frequency: 'immediate',
8 templateId: 'tmpl_77aa'
9} as UpdateNotificationBody;
10const userId: string = 'user_2468';
11const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
12

createV1PageReact Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
titlestringHayır

Yanıt

Döndürür: CreateV1PageReact200Response

Örnek

createV1PageReact Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'b12f3c4d-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'https://www.news-site.com/world/2026/election-results';
5 const title: string = 'Election results: key takeaways and analysis';
6 const responseWithTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId, title);
7 const responseWithoutTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId);
8 console.log(responseWithTitle, responseWithoutTitle);
9})();
10

createV2PageReact Internal Link


Parameters

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
idstringEvet
titlestringHayır

Yanıt

Döndürür: CreateV2PageReact200Response

Örnek

createV2PageReact Örneği
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-72";
3const urlId: string = "articles/2026/06/15/product-update";
4const id: string = "page-8f3b2a";
5const title: string = "Product Update: June 15, 2026";
6
7(async function run(): Promise<void> {
8 const response: CreateV2PageReact200Response = await createV2PageReact(tenantId, urlId, id, title);
9 console.log(response);
10})();
11

deleteV1PageReact Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet

Yanıt

Döndürür: DeleteV1PageReact200Response

Örnek

deleteV1PageReact Örneği
Copy Copy
1
2const tenantId: string = process.env.TENANT_ID ?? 'd3b07384-9f6a-4c2b-8c3e-0a1b2c3d4e5f';
3const urlId: string = 'https://acme.com/articles/2026/06/fastcomments-integration';
4const result: DeleteV1PageReact200Response = await deleteV1PageReact(tenantId, urlId);
5

deleteV2PageReact Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringYes

Yanıt

Döndürür: DeleteV2PageReact200Response

Örnek

deleteV2PageReact Örneği
Copy Copy
1
2const tenantId: string = "tenant_79021";
3const urlId: string = "blog/my-first-post";
4const id: string = "reaction_9f8b7c";
5let includeHistory: boolean | undefined = undefined; // isteğe bağlı bayrak, bazı çağrılarda kullanılır
6
7const result: DeleteV2PageReact200Response = await deleteV2PageReact(tenantId, urlId, id);
8console.log(result);
9

getV1PageLikes Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet

Yanıt

Döndürür: GetV1PageLikes200Response

Örnek

getV1PageLikes Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-742';
3const urlId: string = 'sports/2026/06/15/world-cup-preview';
4const pageLikes: GetV1PageLikes200Response = await getV1PageLikes(tenantId, urlId);
5

getV2PageReacts Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
urlIdstringEvet

Yanıt

Döndürür: GetV2PageReacts200Response

Örnek

getV2PageReacts Örneği
Copy Copy
1
2const tenantId: string = "tenant_82f4b3a9";
3const urlId: string = "https://news.site.com/articles/2026/06/15/product-launch";
4const response: GetV2PageReacts200Response = await getV2PageReacts(tenantId, urlId);
5console.log(response);
6

getV2PageReactUsers Internal Link

Parametreler

NameTürGerekliAçıklama
tenantIdstringYes
urlIdstringYes
idstringYes

Dönüş

Döndürür: GetV2PageReactUsers200Response

Örnek

getV2PageReactUsers Örneği
Copy Copy
1
2const tenantId: string = "7421";
3const urlId: string = "sports/london-marathon";
4const id: string = "reactUser-3fa85f64-5717-4562-b3fc-2c963f66afa6";
5const includeDeleted: boolean | undefined = undefined; // isteğe bağlı bayrak (örnek amaçlı)
6
7const result: GetV2PageReactUsers200Response = await getV2PageReactUsers(tenantId, urlId, id);
8

addPage Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createAPIPageDataCreateAPIPageDataEvet

Yanıt

Döndürür: AddPageAPIResponse


deletePage Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: DeletePageAPIResponse

getOfflineUsers Internal Link

Sayfadaki, şu anda çevrimiçi olmayan önceki yorum yapan kullanıcılar. displayName'e göre sıralanır. Bu, /users/online tükendikten sonra "Members" bölümünü göstermek için kullanılır. commenterName üzerinde cursor sayfalaması: sunucu, kısmi {tenantId, urlId, commenterName} indeksinde afterName'den başlayıp ileriye doğru $gt ile yürür, $skip maliyeti yok.

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
urlIdstringEvet
afterNamestringHayır
afterUserIdstringHayır

Yanıt

Döndürür: GetOfflineUsers200Response

Örnek

getOfflineUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_prod_001';
3const urlId: string = 'article-2026-06-15-how-ai-impacts';
4const afterName: string = 'michael.smith';
5const afterUserId: string = 'user_72b9';
6
7const response: GetOfflineUsers200Response = await getOfflineUsers(tenantId, urlId, afterName, afterUserId);
8

getOnlineUsers Internal Link

Bir sayfanın şu anda çevrimiçi izleyicileri: websocket oturumu şu anda sayfaya abone olan kişiler. Returns anonCount + totalCount (oda genelindeki aboneler; saymadığımız anonim izleyiciler dahil).

Parametreler

AdTipGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
afterNamestringHayır
afterUserIdstringHayır

Yanıt

Döndürür: GetOnlineUsers200Response

Örnek

getOnlineUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_14f9c3';
3const urlId: string = 'article_20250615';
4const afterName: string = 'marie.curie';
5const afterUserId: string = 'u_92b7';
6const result: GetOnlineUsers200Response = await getOnlineUsers(tenantId, urlId, afterName, afterUserId);
7

getPageByURLId Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet

Yanıt

Döndürür: GetPageByURLIdAPIResponse


getPages Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet

Yanıt

Döndürür: GetPagesAPIResponse


getPagesPublic Internal Link

Kiracı için sayfaları listeler. FChat masaüstü istemcisi tarafından oda listesini doldurmak için kullanılır. Her sayfa için çözümlenen özel yapılandırmada enableFChat değerinin true olması gerekir. SSO gerektiren sayfalar, istekte bulunan kullanıcının grup erişimine göre filtrelenir.

Parametreler

AdıTürGerekliAçıklama
tenantIdstringEvet
cursorstringHayır
limitnumberHayır
qstringHayır
sortByPagesSortByHayır
hasCommentsbooleanHayır

Yanıt

Döndürür: GetPagesPublic200Response

Örnek

getPagesPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2c';
3const cursor: string = 'eyJwYWdlIjoiMTIwIn0';
4const limit: number = 25;
5const q: string = 'homepage hero';
6const hasComments: boolean = true;
7
8const response: GetPagesPublic200Response = await getPagesPublic(
9 tenantId,
10 cursor,
11 limit,
12 q,
13 undefined,
14 hasComments
15);
16

getUsersInfo Internal Link


Bir kiracı için toplu kullanıcı bilgisi. Belirtilen userIds'e göre User / SSOUser'dan görüntüleme bilgilerini döndürür. Yorum widget'ı tarafından, presence olayı ile yeni görünen kullanıcıları zenginleştirmek için kullanılır. Sayfa bağlamı yok: gizlilik tutarlı şekilde uygulanır (özel profiller maskelenir).

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idsstringEvet

Yanıt

Döndürür: GetUsersInfo200Response

Örnek

getUsersInfo Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-007';
3const userIdsList: string[] = ['user_12a', 'user_34b', 'user_56c'];
4const separator: string | undefined = undefined; // isteğe bağlı; undefined ise varsayılan olarak virgül kullanılır
5const ids: string = userIdsList.join(separator ?? ',');
6const usersInfo: GetUsersInfo200Response = await getUsersInfo(tenantId, ids);
7

patchPage Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateAPIPageDataUpdateAPIPageDataEvet

Yanıt

Döndürür: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deletePendingWebhookEvent Örneği
Copy Copy
1
2const tenantId: string = "tenant_5f8d7a34";
3const id: string = "webhook_evt_987654321";
4const requestNote: string | undefined = undefined;
5const response: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
6

getPendingWebhookEventCount Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringHayır
externalIdstringHayır
eventTypestringHayır
typestringHayır
domainstringHayır
attemptCountGTnumberHayır

Yanıt

Döndürür: GetPendingWebhookEventCount200Response

Örnek

getPendingWebhookEventCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f8b3b';
3const commentId: string = 'cmt_1a2b3c';
4const eventType: string = 'comment.created';
5const domain: string = 'news-site.com';
6const attemptCountGT: number = 2;
7
8const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined, // externalId dahil edilmedi
12 eventType,
13 undefined, // type dahil edilmedi
14 domain,
15 attemptCountGT
16);
17

getPendingWebhookEvents Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
commentIdstringHayır
externalIdstringHayır
eventTypestringHayır
typestringHayır
domainstringHayır
attemptCountGTnumberHayır
skipnumberHayır

Yanıt

Döndürür: GetPendingWebhookEvents200Response

Örnek

getPendingWebhookEvents Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const commentId: string = 'cmt_8a7d1';
4const eventType: string = 'comment.created';
5const domain: string = 'reviews.myshop.com';
6const attemptCountGT: number = 1;
7const skip: number = 0;
8
9const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
10 tenantId,
11 commentId,
12 undefined,
13 eventType,
14 undefined,
15 domain,
16 attemptCountGT,
17 skip
18);
19

createQuestionConfig Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createQuestionConfigBodyCreateQuestionConfigBodyEvet

Yanıt

Döndürür: CreateQuestionConfig200Response

Örnek

createQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f3b1c2a";
3
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 name: "Product feedback",
6 key: "product_quality",
7 description: "Short survey question shown after posting a comment",
8 required: true,
9 renderingType: "singleChoice",
10 customOptions: [
11 { label: "Excellent", value: "5" },
12 { label: "Good", value: "4" },
13 { label: "Fair", value: "3" }
14 ] as QuestionConfigCustomOptionsInner[],
15 notifyModerators: false // isteğe bağlı parametre örneği
16};
17
18const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
19

deleteQuestionConfig Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-47a9';
3const id: string = 'qcfg_20260615_001';
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

getQuestionConfig Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetQuestionConfig200Response

Örnek

getQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-47";
3const questionId: string = "q-4f2b9a";
4const includeDrafts: boolean | undefined = undefined; // isteğe bağlı parametre yer tutucu
5const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
6console.log(result);
7

getQuestionConfigs Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetQuestionConfigs200Response

Örnek

getQuestionConfigs Örneği
Copy Copy
1
2const tenantId: string = "tenant_4c9f2b";
3const responseWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const skip: number = 50;
5const responseWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, skip);
6

updateQuestionConfig Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateQuestionConfigBodyUpdateQuestionConfigBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f3b8a2e-4c6d-4b4f-a1b2-9e8f7d6c5b3a";
3const id: string = "q_7c2e1b4a-5d6f-4a8b-9c3d-2e1f0b9a4c5d";
4const options: QuestionConfigCustomOptionsInner[] = [
5 { value: "1", label: "Very dissatisfied" },
6 { value: "2", label: "Dissatisfied" },
7 { value: "3", label: "Neutral" },
8 { value: "4", label: "Satisfied" },
9 { value: "5", label: "Very satisfied" }
10];
11const updateQuestionConfigBody: UpdateQuestionConfigBody = {
12 label: "How satisfied are you with the article?",
13 enabled: true,
14 required: false, // isteğe bağlı parametre gösterimi
15 options
16};
17const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
18

createQuestionResult Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createQuestionResultBodyCreateQuestionResultBodyEvet

Yanıt

Döndürür: CreateQuestionResult200Response

Örnek

createQuestionResult Örneği
Copy Copy
1
2const tenantId: string = 'fc-tenant-512';
3const meta: MetaItem[] = [{ key: 'source', value: 'article' }];
4const body: CreateQuestionResultBody = {
5 questionId: 'q-94',
6 userId: 'user_332',
7 answers: [{ optionId: 'opt_a', score: 1 }],
8 meta, // sağlanan isteğe bağlı meta verisi
9} as CreateQuestionResultBody;
10const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, body);
11

deleteQuestionResult Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteQuestionResult Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-01";
3const id: string = "qres_9f8b7c3a";
4const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
5const optionalResponse: FlagCommentPublic200Response | undefined = response;
6

getQuestionResult Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetQuestionResult200Response

Örnek

getQuestionResult Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a7c9';
3const questionId: string = 'q_8d4f1b2c3a';
4const options: { includeMeta?: boolean } = { includeMeta: true }; // isteğe bağlı parametre gösterimi
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
6const apiStatus: APIStatus | undefined = (result as unknown as { apiStatus?: APIStatus }).apiStatus;
7const question: QuestionResult | undefined = (result as unknown as { question?: QuestionResult }).question;
8

getQuestionResults Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringHayır
userIdstringHayır
startDatestringHayır
questionIdstringHayır
questionIdsstringHayır
skipnumberHayır

Yanıt

Döndürür: GetQuestionResults200Response

Örnek

getQuestionResults Örneği
Copy Copy
1
2const tenantId: string = 'fc-tenant-7a9c';
3const urlId: string = 'news/article-2026-06-15';
4const userId: string = 'user-8421';
5const startDate: string = '2026-05-01T00:00:00Z';
6const questionId: string = 'q-13';
7const questionIds: string = 'q-13,q-14';
8const skip: number = 20;
9const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
10

updateQuestionResult Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
updateQuestionResultBodyUpdateQuestionResultBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateQuestionResult Örneği
Copy Copy
1
2const tenantId: string = "tenant_prod_84b2";
3const id: string = "question_9f3a";
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 outcome: "accepted",
6 confidence: 0.88,
7 moderatorId: "moderator_17",
8 notes: "Validated by automated review" // isteğe bağlı alan dahil edildi
9};
10const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
11

aggregateQuestionResults Internal Link


Parametreler

İsimTürGerekliAçıklama
tenantIdstringEvet
questionIdstringHayır
questionIdsArrayHayır
urlIdstringHayır
timeBucketAggregateTimeBucketHayır
startDateDateHayır
forceRecalculatebooleanHayır

Yanıt

Döndürür: AggregateQuestionResults200Response

Örnek

aggregateQuestionResults Örneği
Copy Copy
1
2const tenantId: string = 'tenant_6f2b3c';
3const questionIds: Array<string> = ['q-7a1b2c', 'q-8d3e4f'];
4const urlId: string = 'url_9f8e7d';
5const startDate: Date = new Date('2025-01-01T00:00:00Z');
6const result: AggregateQuestionResults200Response = await aggregateQuestionResults(tenantId, undefined, questionIds, urlId, undefined, startDate, true);
7

bulkAggregateQuestionResults Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestEvet
forceRecalculatebooleanHayır

Yanıt

Döndürür: BulkAggregateQuestionResults200Response

Örnek

bulkAggregateQuestionResults Örneği
Copy Copy
1
2const tenantId: string = "tenant_0012";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 {
6 questionId: "quality_score",
7 startTime: "2026-06-01T00:00:00Z",
8 endTime: "2026-06-14T00:00:00Z",
9 timeBucket: "day",
10 dimensions: ["threadId"]
11 }
12 ],
13 includeTotals: true
14};
15const forceRecalculate: boolean = false;
16const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
17

combineCommentsWithQuestionResults Internal Link

Parametreler

AdTürZorunluAçıklama
tenantIdstringEvet
questionIdstringHayır
questionIdsArrayHayır
urlIdstringHayır
startDateDateHayır
forceRecalculatebooleanHayır
minValuenumberHayır
maxValuenumberHayır
limitnumberHayır

Yanıt

Döndürür: CombineCommentsWithQuestionResults200Response

Örnek

combineCommentsWithQuestionResults Örneği
Copy Copy
1
2const tenantId: string = 'tenant_12345';
3const questionId: string = 'q_98765';
4const questionIds: string[] = ['q_98765', 'q_12345'];
5const urlId: string = 'url_abc123';
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8const minValue: number = 0;
9const maxValue: number = 5;
10const limit: number = 50;
11const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
12 tenantId,
13 questionId,
14 questionIds,
15 urlId,
16 startDate,
17 forceRecalculate,
18 minValue,
19 maxValue,
20 limit
21);
22

addSSOUser Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createAPISSOUserDataCreateAPISSOUserDataEvet

Yanıt

Döndürür: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
deleteCommentsbooleanHayır
commentDeleteModestringHayır

Yanıt

Döndürür: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
emailstringEvet

Yanıt

Döndürür: GetSSOUserByEmailAPIResponse


getSSOUserById Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Dönüş: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetSSOUsers200Response


patchSSOUser Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateAPISSOUserDataUpdateAPISSOUserDataEvet
updateCommentsbooleanHayır

Yanıt

Döndürür: PatchSSOUserAPIResponse


putSSOUser Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateAPISSOUserDataUpdateAPISSOUserDataEvet
updateCommentsbooleanHayır

Yanıt

Döndürür: PutSSOUserAPIResponse

Örnek

putSSOUser Örneği
Copy Copy
1
2const tenantId: string = 'acme-enterprises-42';
3const id: string = 'usr-73a1b2';
4const updateAPISSOUserData: UpdateAPISSOUserData = {
5 email: 'marcus.ingram@acme.com',
6 givenName: 'Marcus',
7 familyName: 'Ingram',
8 roles: ['editor', 'project_owner'],
9 enabled: true
10};
11const result: PutSSOUserAPIResponse = await putSSOUser(tenantId, id, updateAPISSOUserData, true);
12

createSubscription Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataEvet

Yanıt

Döndürür: CreateSubscriptionAPIResponse

Örnek

createSubscription Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "user_98765",
5 planId: "pro_monthly",
6 paymentMethod: { type: "card", cardId: "card_abc123" },
7 autoRenew: true,
8 trialDays: 14, // isteğe bağlı parametre örneği
9 metadata: { campaign: "spring_launch" } // isteğe bağlı parametre örneği
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

deleteSubscription Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
userIdstringHayır

Yanıt

Döndürür: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
userIdstringHayır

Yanıt

Döndürür: GetSubscriptionsAPIResponse

Örnek

getSubscriptions Örneği
Copy Copy
1
2const tenantId: string = "contoso-9a1b2c";
3const userId: string = "u-482f6";
4const subscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
5const userSubscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
6

updateSubscription Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataEvet
userIdstringHayır

Yanıt

Döndürür: UpdateSubscriptionAPIResponse

Örnek

updateSubscription Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const subscriptionId: string = 'sub_7641a2b3';
4const updateData: UpdateAPIUserSubscriptionData = {
5 status: 'active',
6 planId: 'pro_annual',
7 autoRenew: true,
8 renewalDate: '2026-04-15T00:00:00Z',
9 metadata: { upgradedBy: 'billing-team' }
10};
11const userId: string = 'user_215';
12const result: UpdateSubscriptionAPIResponse = await updateSubscription(tenantId, subscriptionId, updateData, userId);
13

getTenantDailyUsages Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
yearNumbernumberHayır
monthNumbernumberHayır
dayNumbernumberHayır
skipnumberHayır

Yanıt

Döndürür: GetTenantDailyUsages200Response

Örnek

getTenantDailyUsages Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7a3c2e';
3const dailyUsages: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, 2026, 6, undefined, 0);
4

createTenantPackage Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createTenantPackageBodyCreateTenantPackageBodyEvet

Yanıt

Döndürür: CreateTenantPackage200Response

Örnek

createTenantPackage Örneği
Copy Copy
1
2const tenantId: string = "tenant_7890";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: "Growth Plan",
5 maxSeats: 2500,
6 features: {
7 moderation: true,
8 analytics: true,
9 sso: { enabled: true, provider: "saml" }
10 },
11 billing: { interval: "monthly", priceCents: 19900 },
12 // isteğe bağlı parametre gösterimi: notes gerekli değil ama sağlandı
13 notes: "Onboarding bundle with priority support"
14};
15const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
16

deleteTenantPackage Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const packageId: string = 'pkg-2026-06-15-001';
4const dryRun: boolean | undefined = undefined; // isteğe bağlı bayrak örneği (fonksiyon tarafından gerekli değil)
5const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6

getTenantPackage Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetTenantPackage200Response

Örnek

getTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4b8c2a9f';
3const packageId: string = 'pkg_7d3e1b5c';
4const includeMetadata: boolean | undefined = true;
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

getTenantPackages Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetTenantPackages200Response

Örnek

getTenantPackages Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8421';
3const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, 25);
4const packagesWithoutSkip: GetTenantPackages200Response = await getTenantPackages(tenantId);
5

replaceTenantPackage Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
replaceTenantPackageBodyReplaceTenantPackageBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

replaceTenantPackage Örneği
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-114";
3const id: string = "pkg-enterprise-2026-06";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 name: "EnterpriseModeration",
6 version: "2.4.7",
7 enabled: true,
8 apiStatus: { state: "active", lastUpdated: "2026-06-10T12:00:00Z" },
9 customConfigParameters: { maxCommentLength: 1200, allowImages: true }, // isteğe bağlı ayarlar dahil
10 voteStyle: { style: "updown" }
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

updateTenantPackage Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateTenantPackageBodyUpdateTenantPackageBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const id: string = 'pkg_pro_2026';
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: 'Pro Plan',
6 monthlyPriceUsd: 49,
7 isActive: true,
8 features: ['moderation', 'analytics', 'sso'],
9 trialDays: 14 // isteğe bağlı parametre örneği
10};
11const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12

createTenantUser Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
createTenantUserBodyCreateTenantUserBodyEvet

Yanıt

Döndürür: CreateTenantUser200Response

Örnek

createTenantUser Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f4a2b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@example.com",
5 firstName: "Jane",
6 lastName: "Doe",
7 role: "commenter",
8 approved: true,
9 displayName: "Jane D." // isteğe bağlı: kullanıcı dostu bir ad sağlama
10};
11const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
12console.log(result);
13

deleteTenantUser Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
deleteCommentsstringHayır
commentDeleteModestringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenantUser Örneği
Copy Copy
1
2const tenantId: string = "tenant_8f3a2b1c4d";
3const id: string = "user_62a4f9e0b7";
4const deleteComments: string = "true";
5const commentDeleteMode: string = "permanent";
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
7

getTenantUser Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetTenantUser200Response

Örnek

getTenantUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_ab12c3';
3const id: string = 'user_9f8e7d';
4const response: GetTenantUser200Response = await getTenantUser(tenantId, id);
5console.log(response);
6

getTenantUsers Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
skipnumberHayır

Yanıt

Döndürür: GetTenantUsers200Response

Örnek

getTenantUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7b8f3a2c-9e4d-4f1a';
3const skip: number = 50;
4const usersResponseDefault: GetTenantUsers200Response = await getTenantUsers(tenantId);
5const usersResponsePaged: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
6

replaceTenantUser Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
replaceTenantUserBodyReplaceTenantUserBodyEvet
updateCommentsstringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

replaceTenantUser Örneği
Copy Copy
1
2const tenantId: string = "f3b9a2d1-8b4e-4c6a-9f2b-1d5c4e6a7b8c";
3const id: string = "user_92f7c3b1";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: "auth0|1234567890",
6 email: "jane.doe@company.com",
7 displayName: "Jane Doe",
8 roles: ["moderator"],
9 metadata: { department: "support" }
10};
11const updateComments: string = "reassign-comments-to-new-user";
12const response: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
13

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
redirectURLstringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

sendLoginLink Örneği
Copy Copy
1
2const tenantId: string = "tenant_0a1b2c3d";
3const id: string = "user_984321";
4const redirectURL: string = "https://app.acme-corp.com/welcome";
5const responseWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
6const responseWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
7

updateTenantUser Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
updateTenantUserBodyUpdateTenantUserBodyEvet
updateCommentsstringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenantUser Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const userId: string = 'u_72b9f4';
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: 'jane.doe@acme.com',
6 displayName: 'Jane Doe',
7 roles: ['moderator'],
8 suspended: false
9};
10const updateComments: string = 'Promoted to moderator after review of activity and community feedback';
11const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, userId, updateTenantUserBody, updateComments);
12

createTenant Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createTenantBodyCreateTenantBodyEvet

Yanıt

Döndürür: CreateTenant200Response

Örnek

createTenant Örneği
Copy Copy
1
2const tenantId: string = 'acme-news-01';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme News',
5 domainConfiguration: { primaryDomain: 'news.acme.com', redirectHttps: true } as APIDomainConfiguration,
6 importedSites: [{ siteId: 'site-92', url: 'https://news.acme.com' }] as ImportedSiteType[],
7 billingInfo: { planId: 'business_monthly', contactEmail: 'billing@acme.com' } as BillingInfo
8};
9const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
10

deleteTenant Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
surestringHayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenant Örneği
Copy Copy
1
2const tenantId: string = 'tenant_742b9c';
3const flagId: string = 'flag_1a2b3c';
4const resultWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId);
5const sureConfirmation: string = 'confirmed';
6const resultWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId, sureConfirmation);
7

getTenant Internal Link

Parametreler

AdTürZorunluAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetTenant200Response

Örnek

getTenant Örneği
Copy Copy
1
2const tenantId: string = 'fc_tenant_6b3e2a';
3const id: string = 'site_42f1';
4const tenantResponse: GetTenant200Response = await getTenant(tenantId, id);
5const tenant: APITenant | undefined = tenantResponse.tenant;
6const primaryDomain: APIDomainConfiguration | undefined = tenant?.domainConfiguration?.[0];
7

getTenants Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
metastringHayır
skipnumberHayır

Yanıt

Döndürür: GetTenants200Response

Örnek

getTenants Örneği
Copy Copy
1
2const tenantId: string = "fcom-tenant-8b4f2a1c";
3const meta: string = "include=domains,billing&status=active";
4const skip: number = 20;
5const response: GetTenants200Response = await getTenants(tenantId, meta, skip);
6console.log(response);
7

updateTenant Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateTenantBodyUpdateTenantBodyEvet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenant Örneği
Copy Copy
1
2const tenantId: string = 'tenant_84f12';
3const id: string = 'flag_192b';
4const updateTenantBody: UpdateTenantBody = {
5 name: 'Acme Media',
6 billingInfo: { plan: 'enterprise', seats: 25, nextBillingDate: '2026-07-01' },
7 apiDomainConfiguration: { primaryDomain: 'comments.acme.com', additionalDomains: ['acme.com'] },
8 importedSites: [{ siteUrl: 'https://blog.acme.com', archived: false }], // isteğe bağlı
9 commentSettings: { htmlRenderingMode: 'sanitized', deletionMode: 'soft' } // isteğe bağlı
10} as UpdateTenantBody;
11const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
12

changeTicketState Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
userIdstringEvet
idstringEvet
changeTicketStateBodyChangeTicketStateBodyEvet

Yanıt

Döndürür: ChangeTicketState200Response

Örnek

changeTicketState Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8a7d3f4b';
3const userId: string = 'user_5d1a9b2c';
4const id: string = 'ticket_1024';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'closed',
7 notifyParticipants: true, // isteğe bağlı parametre örneği
8 comment: 'Resolved by support — follow-up not required.'
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

createTicket Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
userIdstringEvet
createTicketBodyCreateTicketBodyEvet

Yanıt

Döndürür: CreateTicket200Response

Örnek

createTicket Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp';
3const userId: string = 'moderator_jane';
4const createTicketBody: CreateTicketBody = {
5 subject: 'Mass spam reports on article 789',
6 description: 'Multiple identical spam comments posted under article 789. Needs moderation and bulk removal.',
7 priority: 'high',
8 contactEmail: 'jane@acme-corp.com',
9 metadata: { articleId: '789', reportedCount: 12 } // isteğe bağlı metadata gösterimi
10};
11const ticket: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

getTicket Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
userIdstringHayır

Yanıt

Döndürür: GetTicket200Response

Örnek

getTicket Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const ticketId: string = 'TCKT-20250615-42';
4const userId: string = 'user_84b2';
5
6const ticketWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8
9console.log(ticketWithUser.id, ticketWithoutUser.id);
10

getTickets Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
userIdstringHayır
statenumberHayır
skipnumberHayır
limitnumberHayır

Yanıt

Döndürür: GetTickets200Response

Örnek

getTickets Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_87b3';
4const state: number = 2;
5const skip: number = 0;
6const limit: number = 50;
7
8const tickets: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
9

getTranslations Internal Link

Parametreler

AdTürGerekliAçıklama
namespacestringEvet
componentstringEvet
localestringHayır
useFullTranslationIdsbooleanHayır

Yanıt

Döndürür: GetTranslations200Response

Örnek

getTranslations Örneği
Copy Copy
1
2const namespaceName: string = 'site-ui';
3const componentName: string = 'comment-widget';
4const locale: string = 'fr-FR';
5const useFullTranslationIds: boolean = true;
6const translationsWithLocale: GetTranslations200Response = await getTranslations(namespaceName, componentName, locale, useFullTranslationIds);
7const translationsDefault: GetTranslations200Response = await getTranslations(namespaceName, componentName);
8

uploadImage Internal Link

Bir resmi yükle ve yeniden boyutlandır

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
fileBlobEvet
sizePresetSizePresetHayır
urlIdstringHayır

Yanıt

Döndürür: UploadImageResponse


getUserBadgeProgressById Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetUserBadgeProgressById200Response

Örnek

getUserBadgeProgressById Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-241';
3const badgeId: string = 'user-78b3d-badge-3';
4const response: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, badgeId);
5const progress: UserBadgeProgress | undefined = (response as unknown as { progress?: UserBadgeProgress }).progress;
6const percentComplete: number | undefined = progress?.percentage;
7console.log('Badge progress percent complete:', percentComplete);
8

getUserBadgeProgressByUserId Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringYes
userIdstringYes

Yanıt

Döndürür: GetUserBadgeProgressById200Response

Örnek

getUserBadgeProgressByUserId Örneği
Copy Copy
1
2const tenantId: string = 'acme-inc-tenant-01';
3const userId: string = 'user_73c9b2';
4const progress: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
5
6async function maybeFetchProgress(tenant: string, user?: string): Promise<GetUserBadgeProgressById200Response | null> {
7 if (!user) return null;
8 return await getUserBadgeProgressByUserId(tenant, user);
9}
10
11const optionalResult: GetUserBadgeProgressById200Response | null = await maybeFetchProgress(tenantId, userId);
12

getUserBadgeProgressList Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
userIdstringHayır
limitnumberHayır
skipnumberHayır

Yanıt

Döndürür: GetUserBadgeProgressList200Response

Örnek

getUserBadgeProgressList Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f3a2b9c';
3const userId: string = 'user_7721d';
4const limit: number = 20;
5const skip: number = 0;
6const result: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
7

createUserBadge Internal Link


Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
createUserBadgeParamsCreateUserBadgeParamsEvet

Yanıt

Döndürür: CreateUserBadge200Response

Örnek

createUserBadge Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f4b2a";
3const createUserBadgeParams: CreateUserBadgeParams = {
4 code: "top_contributor",
5 title: "Top Contributor",
6 description: "Awarded for 100 high-quality comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top_contributor.svg",
8 isActive: true,
9 criteria: { commentsRequired: 100 },
10 customConfig: { displayOnProfile: true } // isteğe bağlı parametre gösterimi
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
13

deleteUserBadge Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: UpdateUserBadge200Response

Örnek

deleteUserBadge Örneği
Copy Copy
1
2const tenantId: string = "tenant_8b3f2c7a";
3const badgeIdOptional: string | undefined = Math.random() > 0.5 ? "badge_4f9a21" : undefined;
4const id: string = badgeIdOptional ?? "badge_backup_01";
5const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
6

getUserBadge Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetUserBadge200Response

Örnek

getUserBadge Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_6b8f2a1c';
4 const id: string = 'badge_9f3d4b2a';
5 const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
6 const badge: UserBadge | undefined = response.userBadge;
7 const badgeName: string | undefined = badge?.name;
8 console.log('Retrieved badge name:', badgeName);
9})();
10

getUserBadges Internal Link

Parametreler

İsimTürGerekliAçıklama
tenantIdstringEvet
userIdstringHayır
badgeIdstringHayır
typenumberHayır
displayedOnCommentsbooleanHayır
limitnumberHayır
skipnumberHayır

Yanıt

Dönen Değer: GetUserBadges200Response

Örnek

getUserBadges Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f9a12';
3const userId: string = 'user_42b7';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 2;
6const displayedOnComments: boolean = true;
7const limit: number = 25;
8const skip: number = 0;
9const badges: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
10

updateUserBadge Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
idstringEvet
updateUserBadgeParamsUpdateUserBadgeParamsEvet

Yanıt

Döndürür: UpdateUserBadge200Response

Örnek

updateUserBadge Örneği
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const id: string = "badge_a1b2c3";
4const updateUserBadgeParams: UpdateUserBadgeParams = {
5 title: "Community Helper",
6 description: "Awarded for providing 50 helpful answers",
7 iconUrl: "https://cdn.fastcomments.com/badges/community-helper.png",
8 isActive: true,
9 expiryDate: undefined
10};
11const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
12

getUserNotificationCount Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringYes
ssostringNo

Yanıt

Döndürür: GetUserNotificationCount200Response

Örnek

getUserNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
4const notificationCountNoSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
5const notificationCountWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6

getUserNotifications Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringHayır
pageSizenumberHayır
afterIdstringHayır
includeContextbooleanHayır
afterCreatedAtnumberHayır
unreadOnlybooleanHayır
dmOnlybooleanHayır
noDmbooleanHayır
includeTranslationsbooleanHayır
includeTenantNotificationsbooleanHayır
ssostringHayır

Yanıt

Dönüş: GetUserNotifications200Response

Örnek

getUserNotifications Örneği
Copy Copy
1
2const tenantId: string = "tenant_8271";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/ai-updates";
4const pageSize: number = 25;
5const afterId: string = "notif_abc123";
6const includeContext: boolean = true;
7const afterCreatedAt: number = Date.now() - 86_400_000;
8const unreadOnly: boolean = true;
9const dmOnly: boolean = false;
10const noDm: boolean = false;
11const includeTranslations: boolean = true;
12const includeTenantNotifications: boolean = true;
13const sso: string = "sso_token_xyz_987";
14
15const notifications: GetUserNotifications200Response = await getUserNotifications(
16 tenantId,
17 urlId,
18 pageSize,
19 afterId,
20 includeContext,
21 afterCreatedAt,
22 unreadOnly,
23 dmOnly,
24 noDm,
25 includeTranslations,
26 includeTenantNotifications,
27 sso
28);
29

resetUserNotificationCount Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
ssostringHayır

Yanıt

Döndürür: ResetUserNotifications200Response

Örnek

resetUserNotificationCount Örneği
Copy Copy
1
2const tenantId: string = "tenant_8a3f2b6c";
3const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyX2QxMjM0IiwiaWF0IjoxNjI1MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
4const resetResponseWithSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
5const resetResponseWithoutSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
6

resetUserNotifications Internal Link

Parametreler

NameTürGerekliAçıklama
tenantIdstringEvet
afterIdstringHayır
afterCreatedAtnumberHayır
unreadOnlybooleanHayır
dmOnlybooleanHayır
noDmbooleanHayır
ssostringHayır

Yanıt

Döndürür: ResetUserNotifications200Response

Örnek

resetUserNotifications Örneği
Copy Copy
1
2const tenantId: string = "tenant_9b1f2";
3const afterId: string = "notification_0001";
4const afterCreatedAt: number = Date.now() - 60 * 60 * 1000; // bir saat önce
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const noDm: boolean = false;
8const sso: string = "sso_session_7f2d";
9const result: ResetUserNotifications200Response = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly,
15 noDm,
16 sso
17);
18

updateUserNotificationCommentSubscriptionStatus Internal Link

Belirli bir yorum için bildirimleri etkinleştirin veya devre dışı bırakın.

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
notificationIdstringEvet
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumEvet
commentIdstringEvet
ssostringHayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

updateUserNotificationCommentSubscriptionStatus Örneği
Copy Copy
1
2const tenantId: string = 'f3a9c8b0-4d2e-4f8a-9c3b-1234567890ab';
3const notificationId: string = '62a1f4d2-8c7b-4e1a-aaa1-abcdef123456';
4const commentId: string = '7e4a2b1c-1234-5678-90ab-cdef12345678';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptedIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
7const response: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

updateUserNotificationPageSubscriptionStatus Internal Link

Bir sayfa için bildirimleri etkinleştirin veya devre dışı bırakın. Kullanıcılar bir sayfaya abone olduğunda, yeni ana yorumlar için bildirimler oluşturulur ve ayrıca

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
urlstringEvet
pageTitlestringEvet
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumEvet
ssostringHayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

updateUserNotificationPageSubscriptionStatus Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2';
3const urlId: string = 'article_987';
4const url: string = 'https://www.news-site.com/articles/2026/pasta-guide';
5const pageTitle: string = 'The Definitive Guide to Cooking Pasta';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso-token-62b9f1';
8const result: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

updateUserNotificationStatus Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
notificationIdstringEvet
newStatusUpdateUserNotificationStatusNewStatusEnumEvet
ssostringHayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

updateUserNotificationStatus Örneği
Copy Copy
1
2const tenantId: string = 'tenant_5f2a8b9c';
3const notificationId: string = 'notif_987654321';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.payload.signature';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

getUserPresenceStatuses Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
urlIdWSstringEvet
userIdsstringEvet

Yanıt

Döndürür: GetUserPresenceStatuses200Response

Örnek

getUserPresenceStatuses Örneği
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlIdWS: string = 'wss://comments.fastsite.com/ws/tenant_42';
4const userIds: string = 'user_9012,user_3478';
5const includePresenceMetadata: boolean | undefined = true; // isteğe bağlı parametre örneği
6const presenceStatuses: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
usernameStartsWithstringHayır
mentionGroupIdsArrayHayır
ssostringHayır
searchSectionSearchUsersSearchSectionEnumHayır

Yanıt

Döndürür: SearchUsers200Response

Örnek

searchUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7890';
3const urlId: string = 'news/2026-06-15-world-cup-final';
4const usernameStartsWith: string = 'mar';
5const mentionGroupIds: string[] = ['staff', 'trusted-commenters'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0NTY3OCJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.Commenters;
8const response: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

getUser Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet

Yanıt

Döndürür: GetUser200Response

Örnek

getUser Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments_corp';
3const id: string = 'user_9f8b7c6d-5e4a-3b2c-1f0e-123456789abc';
4const response: GetUser200Response = await getUser(tenantId, id);
5const userEmail: string | undefined = response.user?.email;
6const displayName: string | undefined = response.user?.displayName
7

createVote Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
commentIdstringEvet
directionCreateVoteDirectionEnumEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Dönüş Değeri: VoteComment200Response

Örnek

createVote Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-001';
3const commentId: string = 'cmt_8f3b2a9d';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const userId: string = 'user_5021';
6const anonUserId: string = 'anon_7a9c';
7
8const voteResponse: VoteComment200Response = await createVote(tenantId, commentId, direction, userId, anonUserId);
9

deleteVote Internal Link

Parametreler

NameTypeRequiredDescription
tenantIdstringEvet
idstringEvet
editKeystringHayır

Yanıt

Döndürür: DeleteCommentVote200Response

Örnek

deleteVote Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_8421';
4 const id: string = 'vote_3f9b7c2a';
5 const editKey: string = 'edit_7Xk9LpQ';
6 const responseWithoutEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id);
7 const responseWithEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
8 console.log(responseWithoutEdit, responseWithEdit);
9})();
10

getVotes Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet

Yanıt

Döndürür: GetVotes200Response

Örnek

getVotes Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f8e91c2';
3const urlId: string = 'https://www.sportsdaily.com/news/2026/06/15/championship-game-recap';
4const votes: GetVotes200Response = await getVotes(tenantId, urlId);
5console.log(votes);
6

getVotesForUser Internal Link

Parametreler

AdTürGerekliAçıklama
tenantIdstringEvet
urlIdstringEvet
userIdstringHayır
anonUserIdstringHayır

Yanıt

Dönüş değeri: GetVotesForUser200Response

Örnek

getVotesForUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9b8f7c6d';
3const urlId: string = 'articles/product-update-2026';
4const userId: string = 'user_c12345';
5const anonUserId: string = 'anon_7f4e2a';
6const votes: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
7

Yardıma mı ihtiyacınız var?

JavaScript/TypeScript SDK hakkında herhangi bir sorunla karşılaşırsanız veya sorularınız olursa lütfen:

Katkıda Bulunma

Katkılar memnuniyetle karşılanır! Katkı yönergeleri için lütfen GitHub deposunu ziyaret edin.