FastComments.com

FastComments JavaScript/TypeScript SDK


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

FastComments API'si için resmi JavaScript/TypeScript SDK

Depo

GitHub'da Görüntüle


Kurulum Internal Link

npm install fastcomments-sdk

API Dokümantasyonu Internal Link


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

Tarayıcı ve 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

Açık ve 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 (Tek 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, (groupBy sağlanmışsa) gruplayarak ve birden çok işlem uygulayarak toplar. Farklı işlemler (ör. sum, countDistinct, avg vb.) desteklenir.

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
aggregationRequest AggregationRequest Evet
parentTenantId string Hayır
includeStats boolean Hayır

Yanıt

Döndürür: AggregationResponse


getAuditLogs Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
limit number Hayır
skip number Hayır
order SORTDIR Hayır
after number Hayır
before number Hayır

Yanıt

Döndürür: GetAuditLogs200Response

Örnek

getAuditLogs Örneği
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_9b8f6c';
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = 'desc';
7 const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000;
8 const response: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after);
9 console.log(response);
10}
11main();
12

blockFromCommentPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Yes
commentId string Yes
publicBlockFromCommentParams PublicBlockFromCommentParams Yes
sso string No

Yanıt

Döndürür: BlockFromCommentPublic200Response

Örnek

blockFromCommentPublic Örneği
Copy Copy
1
2const tenantId: string = "site_7f9b2e";
3const commentId: string = "comment_2026-03-25_001";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "Repeated harassment and targeted abuse",
6 blockDurationDays: 90,
7 includeHistory: true,
8 notifyModeratorTeam: true
9};
10const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature";
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

unBlockCommentPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
publicBlockFromCommentParams PublicBlockFromCommentParams Evet
sso string Hayır

Yanıt

Döndürür: UnBlockCommentPublic200Response

Örnek

unBlockCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_42e8a1';
3const commentId: string = 'cmt_9b3f2d';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'abusive_language',
6 blockedByModeratorId: 'mod_17',
7 note: 'Targeted harassment; review complete',
8 unblockRequestedAt: new Date().toISOString()
9};
10const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
11const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

checkedCommentsForBlocked Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentIds string Evet
sso string Hayır

Yanıt

Döndürür: CheckedCommentsForBlocked200Response

Örnek

checkedCommentsForBlocked Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2a1e';
3const commentIds: string = 'c_1001,c_1002,c_1003';
4const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.Sf4ke7nQP3mZx9v2';
5
6const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
7const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8

blockUserFromComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
blockFromCommentParams BlockFromCommentParams Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: BlockFromCommentPublic200Response

Örnek

blockUserFromComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const id: string = "comment_67890";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated abusive language",
6 blockDurationHours: 168,
7 blockReplies: true,
8 notifyAuthor: true
9};
10const userId: string = "user_abc123";
11const anonUserId: string = "anon_xyz789";
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
13

createCommentPublic Internal Link


Parametreler

Adı Tür Zorunlu Açıklama
tenantId string Evet
urlId string Evet
broadcastId string Evet
commentData CommentData Evet
sessionId string Hayır
sso string Hayır

Yanıt

Döndürür: CreateCommentPublic200Response

Örnek

createCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_prod_42';
3const urlId: string = 'article-2026-03-25-tech-deep-dive';
4const broadcastId: string = 'live-broadcast-001';
5const sessionId: string = 'sess_9f8e7d6a3b';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
7const commentData: CommentData = {
8 content: 'Great reporting — appreciated the depth on performance tradeoffs.',
9 authorName: 'Jordan M.',
10 language: 'en-US',
11 metadata: { client: 'web' }
12};
13const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
14

deleteComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
contextUserId string Hayır
isLive boolean Hayır

Yanıt

Döndürür: DeleteComment200Response

Örnek

deleteComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7b3f2a';
3const commentId: string = 'cmt_8a1f4d2b';
4const contextUserId: string = 'user_102';
5const isLive: boolean = true;
6const result: DeleteComment200Response = await deleteComment(tenantId, commentId, contextUserId, isLive);
7

deleteCommentPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
broadcastId string Evet
editKey string Hayır
sso string Hayır

Yanıt

Döndürür: DeleteCommentPublic200Response

Örnek

deleteCommentPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_4f2c9b';
3const commentId: string = 'comment-7c3a9f2d';
4const broadcastId: string = 'article-2026-03-20';
5const editKey: string | undefined = 'ek_pub_abc12345';
6const sso: string | undefined = 'sso_eyJhbGciOiJIUzI1Ni';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(
9 tenantId,
10 commentId,
11 broadcastId,
12 editKey,
13 sso
14);
15

deleteCommentVote Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
voteId string Evet
urlId string Evet
broadcastId string Evet
editKey string Hayır
sso string Hayır

Yanıt

Döndürür: DeleteCommentVote200Response

Örnek

deleteCommentVote Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-87e4fd';
3const commentId: string = 'cmt-9a12b3f4';
4const voteId: string = 'vote-4f6d21b9';
5const urlId: string = 'https://www.acme.com/articles/2026/03/25/how-to-test';
6const broadcastId: string = 'broadcast-20260325-01';
7const editKey: string = 'editkey-6b7c8d9e';
8const sso: string = 'sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9
10const response: DeleteCommentVote200Response = await deleteCommentVote(
11 tenantId,
12 commentId,
13 voteId,
14 urlId,
15 broadcastId,
16 editKey,
17 sso
18);
19

flagComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: FlagComment200Response

Örnek

flagComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const id: string = 'comment_7f3a2b9e';
4const userId: string = 'user_jdoe_1001';
5const anonUserId: string = 'anon_3f2b_visitor';
6const result: FlagComment200Response = await flagComment(tenantId, id, userId, anonUserId);
7

getComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetComment200Response

Örnek

getComment Örneği
Copy Copy
1
2const tenantId: string = "acme-publishing-001";
3const commentId: string = "f3b2c1d0-9a8e-4b7c-8123-6d5f0a1e2b3c";
4const result: GetComment200Response = await getComment(tenantId, commentId);
5const wrapper: GetComment200Response & { comment?: APIComment } = result;
6const comment: APIComment | undefined = wrapper.comment;
7const authorBadge: CommentUserBadgeInfo | undefined = comment?.user?.badge;
8const userHashTags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashTags
9

getComments Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
page number Hayır
limit number Hayır
skip number Hayır
asTree boolean Hayır
skipChildren number Hayır
limitChildren number Hayır
maxTreeDepth number Hayır
urlId string Hayır
userId string Hayır
anonUserId string Hayır
contextUserId string Hayır
hashTag string Hayır
parentId string Hayır
direction SortDirections Hayır

Yanıt

Döndürür: GetComments200Response

Örnek

getComments Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // page
6 20, // limit
7 0, // skip
8 true, // asTree
9 1, // skipChildren
10 3, // limitChildren
11 4, // maxTreeDepth
12 'articles/2026/new-product-launch', // urlId
13 'user_7890', // userId
14 'anon_4f3b2', // anonUserId
15 undefined, // contextUserId
16 '#launch', // hashTag
17 undefined // parentId
18);
19

getCommentsPublic Internal Link

req tenantId urlId

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet
page number Hayır
direction SortDirections Hayır
sso string Hayır
skip number Hayır
skipChildren number Hayır
limit number Hayır
limitChildren number Hayır
countChildren boolean Hayır
fetchPageForCommentId string Hayır
includeConfig boolean Hayır
countAll boolean Hayır
includei10n boolean Hayır
locale string Hayır
modules string Hayır
isCrawler boolean Hayır
includeNotificationCount boolean Hayır
asTree boolean Hayır
maxTreeDepth number Hayır
useFullTranslationIds boolean Hayır
parentId string Hayır
searchText string Hayır
hashTags Array Hayır
userId string Hayır
customConfigStr string Hayır
afterCommentId string Hayır
beforeCommentId string Hayır

Yanıt

Döndürür: GetCommentsPublic200Response

Örnek

getCommentsPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_eu-west_01';
3const urlId: string = 'https://www.financialtimes.com/articles/2026/market-update-q1';
4const response: GetCommentsPublic200Response = await getCommentsPublic(
5 tenantId,
6 urlId,
7 2,
8 undefined,
9 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.tokenPayload.signature',
10 undefined,
11 0,
12 50,
13 5,
14 true,
15 undefined,
16 true,
17 false,
18 true,
19 'en-US',
20 'reactions,moderation',
21 false,
22 true,
23 true,
24 3,
25 false,
26 undefined,
27 'performance',
28 ['feature','fastcomments'],
29 'user_9876',
30 undefined,
31 undefined,
32 undefined
33);
34

getCommentText Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
commentId string Evet
editKey string Hayır
sso string Hayır

Yanıt

Döndürür: GetCommentText200Response

Örnek

getCommentText Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const commentId: string = 'cmt_7890b';
4const editKey: string = 'edit_4f2d9b7c';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

getCommentVoteUserNames Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
dir number Evet
sso string Hayır

Yanıt

Döndürür: GetCommentVoteUserNames200Response

Örnek

getCommentVoteUserNames Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f2c1e';
4 const commentId: string = 'cmt_9a7b3d';
5 const dir: number = 1;
6 const resultUpvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
7 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakepayload.signature';
8 const dirDown: number = -1;
9 const resultDownvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dirDown, sso);
10 console.log(resultUpvotes, resultDownvotes);
11})();
12

lockComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
broadcastId string Evet
sso string Hayır

Yanıt

Döndürür: LockComment200Response

Örnek

lockComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_prod_8f3a2b";
3const commentId: string = "cmt_5d7e9a92";
4const broadcastId: string = "broadcast_2026_03_25_1400";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
6const resultWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
7const resultWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
8

pinComment Internal Link

Parametreler

Adı Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
broadcastId string Evet
sso string Hayır

Yanıt

Döndürür: PinComment200Response

Örnek

pinComment Örneği
Copy Copy
1
2const tenantId: string = "tenant_4f2b9a";
3const commentId: string = "cmt_9f8e7d6c";
4const broadcastId: string = "brd_live_concert_2026-03-25";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload_signature";
6
7const result: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, sso);
8

saveComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createCommentParams CreateCommentParams Evet
isLive boolean Hayır
doSpamCheck boolean Hayır
sendEmails boolean Hayır
populateNotifications boolean Hayır

Yanıt

Döndürür: SaveComment200Response

Örnek

saveComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createCommentParams: CreateCommentParams = {
4 content: 'Great article — helped me fix a production issue in minutes.',
5 url: 'https://app.acme.com/blog/performance-tips',
6 author: { name: 'Maya Chen', email: 'maya.chen@acme.com' },
7 metadata: { locale: 'en-US', appVersion: '4.2.1' }
8} as CreateCommentParams;
9const isLive: boolean = true;
10const doSpamCheck: boolean = true;
11const sendEmails: boolean = false;
12const populateNotifications: boolean = true;
13const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
14

saveCommentsBulk Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
createCommentParams Array Evet
isLive boolean Hayır
doSpamCheck boolean Hayır
sendEmails boolean Hayır
populateNotifications boolean Hayır

Yanıt

Döndürür: Array<SaveComment200Response

Örnek

saveCommentsBulk Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-01';
3const mentions1: CommentUserMentionInfo[] = [{ userId: 'user-123', displayName: 'Jane Doe' }];
4const hashtags1: CommentUserHashTagInfo[] = [{ tag: 'typescript' }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: 'Great insights on async/await patterns.',
8 authorName: 'John Smith',
9 authorEmail: 'john.smith@acme.com',
10 externalId: 'comment-001',
11 createdAt: '2026-03-25T10:15:00Z',
12 userMentions: mentions1,
13 userHashTags: hashtags1
14 },
15 {
16 content: 'I prefer using Promise.all for bulk ops.',
17 authorName: 'Emily Turner',
18 authorEmail: 'emily.turner@acme.com',
19 externalId: 'comment-002',
20 createdAt: '2026-03-25T10:20:00Z'
21 }
22];
23const result: SaveComment200Response[] = await saveCommentsBulk(tenantId, createCommentParams, true, true, false, true);
24

setCommentText Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
commentId string Evet
broadcastId string Evet
commentTextUpdateRequest CommentTextUpdateRequest Evet
editKey string Hayır
sso string Hayır

Yanıt

Döndürür: SetCommentText200Response

Örnek

setCommentText Örneği
Copy Copy
1
2const tenantId: string = 'tenant_6721f4';
3const commentId: string = 'cmt_9a3b2d';
4const broadcastId: string = 'live_2026_03_25';
5const editKey: string = 'edit_k_4f7b9';
6const sso: string = 'sso_tok_eyJhbGciOiJIUzI1';
7const commentTextUpdateRequest: CommentTextUpdateRequest = {
8 text: 'Updated to clarify the timeline and link the relevant docs.',
9 mentions: [{ userId: 'user_102', displayName: 'Alex Rivera' }],
10 hashtags: [{ tag: 'product-update' }]
11};
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso);
13

unBlockUserFromComment Internal Link

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
id string Evet
unBlockFromCommentParams UnBlockFromCommentParams Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: UnBlockCommentPublic200Response

Örnek

unBlockUserFromComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_87f3e1';
3const id: string = 'comment_9b2a4f';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'Reviewed by moderation team — reinstated',
6 moderatorId: 'mod_21',
7 unblockedAt: new Date().toISOString()
8};
9const userId: string = 'user_42';
10const anonUserId: string = 'anon_e7f9';
11const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId, anonUserId);
12

unFlagComment Internal Link

Parametreler

Name Type Gerekli Açıklama
tenantId string Evet
id string Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: FlagComment200Response

Örnek

unFlagComment Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const commentId: string = 'cmt_9f8e7d6c';
4const userId: string = 'user_72b4a1c9';
5const anonUserId: string = 'anon_3d2c1b0a';
6const response: FlagComment200Response = await unFlagComment(tenantId, commentId, userId, anonUserId);
7

unLockComment Internal Link

Parametreler

İsim Tip Gerekli Açıklama
tenantId string Evet
commentId string Evet
broadcastId string Evet
sso string Hayır

Yanıt

Döndürür: LockComment200Response

Örnek

unLockComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9d4f2b';
3const commentId: string = 'cmt_8a3e1f';
4const broadcastId: string = 'broadcast_2026_03_25';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
6
7const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
8

unPinComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
broadcastId string Evet
sso string Hayır

Yanıt

Döndürür: PinComment200Response

Örnek

unPinComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

updateComment Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updatableCommentParams UpdatableCommentParams Evet
contextUserId string Hayır
doSpamCheck boolean Hayır
isLive boolean Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateComment Örnek
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_01";
3const id: string = "comment_20260325_4592";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Updated the response to include a link to the RFC and fixed a typo in the second paragraph.",
6 editedByUserId: "user_8721",
7 isVisible: true
8};
9const contextUserId: string = "user_8721";
10const doSpamCheck: boolean = true;
11const isLive: boolean = true;
12const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
13

voteComment Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
commentId string Evet
urlId string Evet
broadcastId string Evet
voteBodyParams VoteBodyParams Evet
sessionId string Hayır
sso string Hayır

Yanıt

Döndürür: VoteComment200Response

Örnek

voteComment Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c';
3const commentId: string = 'cmt_42f3a1';
4const urlId: string = 'articles/ai-trends-2026';
5const broadcastId: string = 'web';
6const voteBodyParams: VoteBodyParams = { vote: 1, reason: 'Insightful and on-topic' };
7const sessionId: string = 'sess_6d2b4c9e';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9const result: VoteComment200Response = await voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso);
10

addDomainConfig Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
addDomainConfigParams AddDomainConfigParams Evet

Yanıt

Döndürür: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
domain string Evet

Yanıt

Döndürür: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
domain string Evet

Yanıt

Döndürür: GetDomainConfig200Response

getDomainConfigs Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet

Yanıt

Döndürür: GetDomainConfigs200Response

patchDomainConfig Internal Link


Parametreler

İsim Tür Gerekli Açıklama
tenantId string Evet
domainToUpdate string Evet
patchDomainConfigParams PatchDomainConfigParams Evet

Yanıt

Döndürür: GetDomainConfig200Response


putDomainConfig Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
domainToUpdate string Evet
updateDomainConfigParams UpdateDomainConfigParams Evet

Yanıt

Döndürür: GetDomainConfig200Response


createEmailTemplate Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createEmailTemplateBody CreateEmailTemplateBody Evet

Yanıt

Döndürür: CreateEmailTemplate200Response

Örnek

createEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = "tenant_7a9f3c2b";
3const customConfig: CustomConfigParameters = { smtpHost: "smtp.fastmail.com", smtpPort: 587, useTLS: true };
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Account Notification",
6 subject: "Your ACME account was updated",
7 fromEmail: "no-reply@acme-corp.com",
8 replyTo: "support@acme-corp.com",
9 html: "<p>Hi {{user.firstName}}, your account settings were changed.</p>",
10 text: "Hi {{user.firstName}}, your account settings were changed.",
11 isActive: true,
12 description: "Used for transactional account update emails",
13 customConfig
14};
15const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
16

deleteEmailTemplate Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f4c9d1e';
3const templateId: string = 'tmpl_welcome_2024-03';
4const notifyAdmin: boolean | undefined = true; // isteğe bağlı parametre örneği
5
6const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
7

deleteEmailTemplateRenderError Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
id string Evet
errorId string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteEmailTemplateRenderError Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3b4c2a';
3const templateEnvironment: string | undefined = 'production'; // isteğe bağlı ortam seçici
4const id: string = `emailTemplates/${templateEnvironment ?? 'staging'}/welcome_v2`;
5const errorId: string = 'err_5a9d2f1c';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
7console.log(result);
8

getEmailTemplate Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetEmailTemplate200Response

Örnek

getEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = "acme-marketing-042";
3const templateId: string = "tpl_welcome_2026";
4const result: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
5const template: CustomEmailTemplate | undefined = result.template;
6const subject: string | undefined = template?.subject;
7const customParams: CustomConfigParameters | undefined = template?.customConfigParameters;
8

getEmailTemplateDefinitions Internal Link

Parametreler

Name Type Required Description
tenantId string Evet

Dönüş

Dönüş: GetEmailTemplateDefinitions200Response

Örnek

getEmailTemplateDefinitions Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_eu_01';
3const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4console.log('Email template definitions loaded for', tenantId, templates);
5

getEmailTemplateRenderErrors Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
id string Evet
skip number Hayır

Yanıt

Döndürür: GetEmailTemplateRenderErrors200Response

Örnek

getEmailTemplateRenderErrors Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-42';
4 const id: string = 'tmpl_3fa85f64-5717-4562-b3fc-2c963f66afa6';
5 const skip: number = 20;
6 const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7 console.log(result);
8})();
9

getEmailTemplates Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
skip number Hayır

Yanıt

Döndürür: GetEmailTemplates200Response

Örnek

getEmailTemplates Örneği
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_5f3a9c2b';
4 const templates: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const skip: number = 20;
6 const pagedTemplates: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
7 console.log(templates, pagedTemplates);
8}
9main();
10

renderEmailTemplate Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
renderEmailTemplateBody RenderEmailTemplateBody Evet
locale string Hayır

Yanıt

Döndürür: RenderEmailTemplate200Response

Örnek

renderEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = 'tenant_b6f3c2';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'comment-notification',
5 recipient: { name: 'Ava Thompson', email: 'ava.thompson@publisher.com' },
6 context: {
7 siteName: 'City Gazette',
8 commentText: 'Thanks for the in-depth coverage — very helpful.',
9 articleTitle: 'Downtown Redevelopment Plan Advances',
10 threadUrl: 'https://citygazette.example/articles/2026/redevelopment#comments'
11 }
12};
13const locale: string = 'en-US';
14const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

updateEmailTemplate Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateEmailTemplateBody UpdateEmailTemplateBody Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateEmailTemplate Örneği
Copy Copy
1
2const tenantId: string = "tenant_76a4b2";
3const id: string = "template_9f3c1e";
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: "Comment Flag Notification",
6 subject: "A comment was flagged on your-site.com",
7 bodyHtml: "<p>Admin,</p><p>User {{commenterName}} flagged a comment: “{{commentText}}”</p>",
8 isEnabled: true,
9 description: "Email sent to moderators when a comment is flagged (optional field included)"
10};
11const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
12

getEventLog Internal Link


req tenantId urlId userIdWS

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet
userIdWS string Evet
startTime number Evet
endTime number Evet

Yanıt

Döndürür: GetEventLog200Response

Örnek

getEventLog Örneği
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // isteğe bağlı üst akış değeri
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet
userIdWS string Evet
startTime number Evet
endTime number Evet

Yanıt

Döndürür: GetEventLog200Response

Örnek

getGlobalEventLog Örneği
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // 7 gün önce
6const endTimeOptional: number | undefined = undefined; // isteğe bağlı zaman aralığı sonu
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createFeedPostParams CreateFeedPostParams Evet
broadcastId string Hayır
isLive boolean Hayır
doSpamCheck boolean Hayır
skipDupCheck boolean Hayır

Yanıt

Döndürür: CreateFeedPost200Response

Örnek

createFeedPost Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f3b9a";
3const createFeedPostParams: CreateFeedPostParams = {
4 title: "Weekly Product Update — March 2026",
5 body: "We've shipped performance improvements and bug fixes across the web client. See the release notes for details.",
6 authorId: "user_86fa2b",
7 allowComments: true,
8 media: [
9 {
10 url: "https://cdn.example.com/images/update-march.png",
11 mimeType: "image/png",
12 caption: "Performance graph",
13 assets: [{ url: "https://cdn.example.com/images/update-march@2x.png", width: 1600, height: 900 }]
14 }
15 ],
16 links: [{ url: "https://www.example.com/release-notes/march-2026", title: "Release notes" }]
17};
18const broadcastId: string = "broadcast_prod_updates_202603";
19const isLive: boolean = false;
20const doSpamCheck: boolean = true;
21const skipDupCheck: boolean = false;
22const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
23

createFeedPostPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createFeedPostParams CreateFeedPostParams Evet
broadcastId string Hayır
sso string Hayır

Yanıt

Döndürür: CreateFeedPostPublic200Response

Örnek

createFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3const asset: FeedPostMediaItemAsset = { url: "https://cdn.fastcomments.com/uploads/team-photo.jpg", mimeType: "image/jpeg", sizeBytes: 324512 };
4const mediaItem: FeedPostMediaItem = { type: "image", assets: [asset], caption: "Team launch day" };
5const link: FeedPostLink = { url: "https://www.example.com/blog/product-update-march-2026", title: "Product update — March 2026" };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: "Product update — March 2026",
8 content: "<p>We shipped performance improvements and two new integrations.</p>",
9 media: [mediaItem],
10 link,
11 visibility: "public",
12 tags: ["product","release","march-2026"],
13 customConfig: { allowComments: true, requireTOS: false }
14};
15const broadcastId: string = "broadcast_2026_03_25_live";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSIsImlhdCI6MTY5MDI0MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
17const result: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
18

deleteFeedPostPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
postId string Evet
broadcastId string Hayır
sso string Hayır

Yanıt

Döndürür: DeleteFeedPostPublic200Response

Örnek

deleteFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = "tenant_5f8a9b3c";
3const postId: string = "post_a1b2c3d4";
4const broadcastId: string = "broadcast_2026-03-25T10:00:00Z";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwiaWF0IjoxNjE5MjM5MjAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6
7const resultWithOptional: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
8const resultRequiredOnly: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId);
9

getFeedPosts Internal Link

req tenantId afterId

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
afterId string Hayır
limit number Hayır
tags Array Hayır

Yanıt

Döndürür: GetFeedPosts200Response

Örnek

getFeedPosts Örneği
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

getFeedPostsPublic Internal Link

req tenantId afterId

Parametreler

İsim Tür Gerekli Açıklama
tenantId string Evet
afterId string Hayır
limit number Hayır
tags Array Hayır
sso string Hayır
isCrawler boolean Hayır
includeUserInfo boolean Hayır

Yanıt

Döndürür: GetFeedPostsPublic200Response

Örnek

getFeedPostsPublic Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const afterId: string = 'fp_20260301_042';
4const limit: number = 25;
5const tags: Array<string> = ['technology', 'announcement'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiamRvZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo);
10

getFeedPostsStats Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
postIds Array Evet
sso string Hayır

Yanıt

Döndürür: GetFeedPostsStats200Response

Örnek

getFeedPostsStats Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9b2f1c4a';
3const postIds: Array<string> = [
4 '8f14e45f-ea82-4c7a-b6b2-1a2b3c4d5e6f',
5 'd0e1f2a3-b4c5-6d7e-8f90-1234567890ab'
6];
7const sso: string = 'sso_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
9const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, sso);
10

getUserReactsPublic Internal Link

Parametreler

Name Type Required Description
tenantId string Yes
postIds Array No
sso string No

Yanıt

Döndürür: GetUserReactsPublic200Response

Örnek

getUserReactsPublic Örneği
Copy Copy
1
2const tenantId: string = "acme-tenant-8a4d2c";
3const postIds: string[] = ["post-645a2f", "post-645a30"];
4const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY2MTYwMDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5const result: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
6

reactFeedPostPublic Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
postId string Evet
reactBodyParams ReactBodyParams Evet
isUndo boolean Hayır
broadcastId string Hayır
sso string Hayır

Yanıt

Döndürür: ReactFeedPostPublic200Response

Örnek

reactFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = 'd290f1ee-6c54-4b01-90e6-d701748f0851';
3const postId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍', source: 'web' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast-2026-03-25-001';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
8const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, sso);
9

updateFeedPost Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
feedPost FeedPost Evet

Yanıt

Dönüş Değeri: FlagCommentPublic200Response

Örnek

updateFeedPost Örneği
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // isteğe bağlı dizi dahil edildi
27 links: [link], // isteğe bağlı bağlantılar dahil edildi
28 isPublished: true // burada kullanılan isteğe bağlı yayınlama bayrağı
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

updateFeedPostPublic Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
postId string Evet
updateFeedPostParams UpdateFeedPostParams Evet
broadcastId string Hayır
sso string Hayır

Yanıt

Döndürür: CreateFeedPostPublic200Response

Örnek

updateFeedPostPublic Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f4b2";
3const postId: string = "post_21a8e";
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: "Quarterly product update",
6 body: "Major performance improvements and bug fixes deployed today. See release notes and schedule.",
7 links: [{ url: "https://status.example.com/release-notes", title: "Release notes" }],
8 media: [
9 {
10 type: "image",
11 assets: [{ url: "https://cdn.example.com/updates/q2.png", mimeType: "image/png", width: 1200, height: 628 }]
12 }
13 ]
14};
15const broadcastId: string = "broadcast_live_202603";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
17const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
18

flagCommentPublic Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Evet
isFlagged boolean Evet
sso string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

flagCommentPublic Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f8b3c";
3const commentId: string = "comment_72a1d4";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1Njc4OSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

addHashTag Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Hayır
createHashTagBody CreateHashTagBody Hayır

Yanıt

Döndürür: AddHashTag200Response

Örnek

addHashTag Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const createHashTagBody: CreateHashTagBody = {
4 name: 'feature-request',
5 label: 'Feature Request',
6 color: '#FF5722',
7 enabled: true
8};
9const response: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
10const responseWithoutTenant: AddHashTag200Response = await addHashTag(undefined, createHashTagBody);
11

addHashTagsBulk Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string No
bulkCreateHashTagsBody BulkCreateHashTagsBody No

Yanıt

Döndürür: AddHashTagsBulk200Response

Örnek

addHashTagsBulk Örneği
Copy Copy
1
2// Kiracı tanımlayıcısı oluştur (isteğe bağlı parametre)
3const tenantId: string = "tenant_9f8c2b7a";
4
5// Bireysel etiket girdilerini hazırla
6const tag1: BulkCreateHashTagsBodyTagsInner = {
7 name: "product-feedback",
8 label: "Product Feedback",
9 color: "#1f8a70",
10 description: "User suggestions and enhancement requests",
11 isActive: true
12};
13
14const tag2: BulkCreateHashTagsBodyTagsInner = {
15 name: "bug-report",
16 label: "Bug Report",
17 color: "#d64545",
18 description: "User-reported defects and issues",
19 isActive: true
20};
21
22// Toplu oluşturma gövdesi (isteğe bağlı parametre)
23const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
24 tags: [tag1, tag2]
25};
26
27// Global eşzamansız fonksiyonu çağır ve tiplenmiş sonucu ata
28const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
29

deleteHashTag Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tag string Evet
tenantId string Hayır
deleteHashTagRequest DeleteHashTagRequest Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteHashTag Örneği
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_12345";
4const deleteRequest: DeleteHashTagRequest = { initiatedBy: "moderator@newsorg.com", purgeAllOccurrences: true };
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteRequest);
6

getHashTags Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
page number Hayır

Yanıt

Döndürür: GetHashTags200Response

Örnek

getHashTags Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const pageNumber: number = 2;
4const responseWithPage: GetHashTags200Response = await getHashTags(tenantId, pageNumber);
5const responseWithoutPage: GetHashTags200Response = await getHashTags(tenantId);
6

patchHashTag Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tag string Evet
tenantId string Hayır
updateHashTagBody UpdateHashTagBody Hayır

Yanıt

Döndürür: PatchHashTag200Response

Örnek

patchHashTag Örneği
Copy Copy
1
2const tag: string = "feature-ux-refresh";
3const tenantId: string = "tenant_4f92c1";
4const updateHashTagBody: UpdateHashTagBody = {
5 label: "UX Refresh",
6 description: "Track comments related to the 2026 UX redesign",
7 isActive: true,
8 metadata: { owner: "product-design", rolloutPhase: "phase-2" }
9};
10const response: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
11

createModerator Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createModeratorBody CreateModeratorBody Evet

Yanıt

Döndürür: CreateModerator200Response

Örnek

createModerator Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7d9f2b4a';
3const customConfig: CustomConfigParameters = { timezone: 'UTC', moderationQueueEnabled: true };
4const createModeratorBody: CreateModeratorBody = {
5 email: 'jane.martin@publisher.com',
6 displayName: 'Jane Martin',
7 roles: ['moderator'],
8 sendWelcomeEmail: true,
9 customConfig
10};
11const response: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

deleteModerator Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
sendEmail string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteModerator Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2d4a6c';
3const moderatorId: string = 'moderator_84a1b9c2';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, moderatorId, sendEmail);
6

getModerator Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetModerator200Response

Örnek

getModerator Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-123';
3const id: string = 'mod-987654321';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

getModerators Internal Link

Parametreler

Ad Type Gerekli Açıklama
tenantId string Evet
skip number Hayır

Yanıt

Döndürür: GetModerators200Response

Örnek

getModerators Örneği
Copy Copy
1
2const tenantId: string = 'tenant-12345-prod';
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, 50);
5

sendInvite Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
fromName string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

sendInvite Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme-42';
3const id: string = 'comment_8f3b21a7';
4const fromName: string = 'Elena Morales';
5const replyToEmail: string | undefined = undefined;
6
7const result: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName, replyToEmail);
8

updateModerator Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateModeratorBody UpdateModeratorBody Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateModerator Örneği
Copy Copy
1
2const tenantId: string = "acme-enterprises-42";
3const id: string = "moderator_517";
4const updateModeratorBody: UpdateModeratorBody = {
5 displayName: "Sofia Martinez",
6 email: "sofia.martinez@acme.com",
7 permissions: ["approve_comments", "flag_spam", "suspend_users"],
8 active: true,
9 avatarUrl: "https://cdn.acme.com/avatars/sofia.jpg" // isteğe bağlı alan örneği
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

deleteNotificationCount Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteNotificationCount Örneği
Copy Copy
1
2const tenantSuffix: string | undefined = undefined;
3const tenantId: string = tenantSuffix ? `tenant-${tenantSuffix}` : 'tenant-9142a7';
4const id: string = '3f9b2a44-1c2e-4d3b-9f6a-8e7c6d5b2a1f';
5const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
6console.log(result);
7

getCachedNotificationCount Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetCachedNotificationCount200Response

Örnek

getCachedNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // isteğe bağlı parametre bayrağı (örnek olarak gösterildi)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

getNotificationCount Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
userId string Hayır
urlId string Hayır
fromCommentId string Hayır
viewed boolean Hayır
type string Hayır

Yanıt

Döndürür: GetNotificationCount200Response

Örnek

getNotificationCount Örneği
Copy Copy
1
2const tenantId: string = 'tenant_abc123';
3const userId: string = 'user_987654321';
4const urlId: string = 'https://example.com/news/2026/new-features';
5const viewed: boolean = false;
6const type: string = 'reply';
7const notificationCountResponse: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, undefined, viewed, type);
8

getNotifications Internal Link

Parametreler

İsim Tür Gerekli Açıklama
tenantId string Evet
userId string Hayır
urlId string Hayır
fromCommentId string Hayır
viewed boolean Hayır
type string Hayır
skip number Hayır

Yanıt

Döndürür: GetNotifications200Response

Örnek

getNotifications Örneği
Copy Copy
1
2const tenantId: string = "tenant_84b3f2";
3const userId: string = "user_1279";
4const urlId: string = "https://www.example.com/articles/2026/03/25/new-feature";
5const fromCommentId: string = "cmt_5421";
6const viewed: boolean = false;
7const type: string = "mention";
8const skip: number = 0;
9const notifications: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
10

updateNotification Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateNotificationBody UpdateNotificationBody Evet
userId string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateNotification Örneği
Copy Copy
1
2const tenantId: string = 'tenant_prod_8f4b2c';
3const id: string = 'notification_61a2e9';
4const userId: string = 'moderator_107';
5const updateNotificationBody: UpdateNotificationBody = {
6 name: 'Flagged Comment Notification',
7 enabled: true,
8 channels: ['email', 'inbox'],
9 templateId: 'tmpl_mod_alerts_01',
10 severity: 'high'
11};
12const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
13

addPage Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createAPIPageData CreateAPIPageData Evet

Yanıt

Döndürür: AddPageAPIResponse


deletePage Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: DeletePageAPIResponse

getPageByURLId Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet

Yanıt

Döndürür: GetPageByURLIdAPIResponse


getPages Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet

Yanıt

Döndürür: GetPagesAPIResponse


patchPage Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateAPIPageData UpdateAPIPageData Evet

Yanıt

Döndürür: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deletePendingWebhookEvent Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42f7c9b1';
4 const id: string = 'pending_webhook_ev_8f3b9a2d';
5 const reason?: string = undefined; // isteğe bağlı parametre örneği (fonksiyon tarafından gerekli değildir)
6 const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
7 console.log(result);
8})();
9

getPendingWebhookEventCount Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
commentId string Hayır
externalId string Hayır
eventType string Hayır
type string Hayır
domain string Hayır
attemptCountGT number Hayır

Yanıt

Döndürür: GetPendingWebhookEventCount200Response

Örnek

getPendingWebhookEventCount Örneği
Copy Copy
1
2const tenantId: string = "tenant_8d3b7a2f";
3const commentId: string | undefined = "comment_79a2b";
4const eventType: string | undefined = "comment.created";
5const domain: string | undefined = "forum.acme-corp.com";
6const attemptCountGT: number | undefined = 1;
7const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
8 tenantId,
9 commentId,
10 undefined,
11 eventType,
12 undefined,
13 domain,
14 attemptCountGT
15);
16

getPendingWebhookEvents Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
commentId string Hayır
externalId string Hayır
eventType string Hayır
type string Hayır
domain string Hayır
attemptCountGT number Hayır
skip number Hayır

Yanıt

Döndürür: GetPendingWebhookEvents200Response

Örnek

getPendingWebhookEvents Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9b3f7c';
3const commentId: string | undefined = undefined;
4const externalId: string | undefined = 'external-572a';
5const eventType: string | undefined = 'comment.updated';
6const type: string | undefined = 'outbound';
7const domain: string | undefined = 'reviews.example.com';
8const attemptCountGT: number | undefined = 1;
9const skip: number | undefined = 20;
10
11const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

createQuestionConfig Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
createQuestionConfigBody CreateQuestionConfigBody Evet

Yanıt

Döndürür: CreateQuestionConfig200Response

Örnek

createQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f8b2c";
3const option: QuestionConfigCustomOptionsInner = { id: "opt_yes", label: "Yes, helpful", value: "yes" };
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 title: "Article usefulness",
6 prompt: "Was this article helpful?",
7 type: "singleChoice",
8 required: false, // isteğe bağlı parametre gösterildi
9 options: [option],
10 saveBehavior: "immediate"
11};
12const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
13

deleteQuestionConfig Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = "acme-enterprises-01";
3const idOptional: string | undefined = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4const id: string = idOptional ?? "11111111-1111-1111-1111-111111111111";
5const response: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
6

getQuestionConfig Internal Link

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetQuestionConfig200Response

Örnek

getQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-92';
3const id: string = 'question-2026-07-42';
4const response: GetQuestionConfig200Response = await getQuestionConfig(tenantId, id);
5
6function summarize(cfg: GetQuestionConfig200Response, includeDetails?: boolean): string {
7 return includeDetails ? 'Question config (detailed)' : 'Question config (summary)';
8}
9
10const summary: string = summarize(response);
11

getQuestionConfigs Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
skip number Hayır

Yanıt

Döndürür: GetQuestionConfigs200Response

Örnek

getQuestionConfigs Örneği
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

updateQuestionConfig Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateQuestionConfigBody UpdateQuestionConfigBody Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateQuestionConfig Örneği
Copy Copy
1
2const tenantId: string = 'tenant_42e8b';
3const id: string = 'question_9f4a2';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = {
5 questionText: 'How helpful was this article?',
6 description: 'Shown to users below the question (optional)',
7 required: true,
8 renderingType: 'Likert' as QuestionRenderingType,
9 customOptions: [
10 { label: 'Very helpful', value: '5' } as QuestionConfigCustomOptionsInner,
11 { label: 'Somewhat helpful', value: '3' } as QuestionConfigCustomOptionsInner,
12 { label: 'Not helpful', value: '1' } as QuestionConfigCustomOptionsInner
13 ],
14 whenSave: 'notify' as QuestionWhenSave
15};
16const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
17

createQuestionResult Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
createQuestionResultBody CreateQuestionResultBody Evet

Yanıt

Döndürür: CreateQuestionResult200Response

Örnek

createQuestionResult Örneği
Copy Copy
1
2const tenantId: string = "tenant-72b1f4";
3const meta: MetaItem[] = [{ key: "platform", value: "web" }];
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "question-83472",
6 commenterId: "user-5521",
7 answers: [{ subQuestionId: "sq-1", value: "Yes" }],
8 meta, // isteğe bağlı meta verisi
9 note: "Follow-up requested" // gösterilen isteğe bağlı parametre
10};
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

deleteQuestionResult Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Yes
id string Yes

Yanıt

Dönüş Değeri: FlagCommentPublic200Response

Örnek

deleteQuestionResult Örneği
Copy Copy
1
2const tenantId: string = "org-82479";
3const questionId: string = "q-6a3d2e1f";
4const includeArchived?: boolean = false; // alternatif hedef seçimini gösteren isteğe bağlı parametre
5const targetId: string = includeArchived ? "q-archived-112233" : questionId;
6const result: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, targetId);
7

getQuestionResult Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetQuestionResult200Response

Örnek

getQuestionResult Örneği
Copy Copy
1
2const post: { title: string; questionId?: string } = { title: 'Product feedback' };
3const tenantId: string = 'acme-corp-tenant-01';
4const id: string = post.questionId ?? 'q-8f3a7b2c4d9e';
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6

getQuestionResults Internal Link

Parametreler

Name Tür Gerekli Açıklama
tenantId string Evet
urlId string Hayır
userId string Hayır
startDate string Hayır
questionId string Hayır
questionIds string Hayır
skip number Hayır

Yanıt

Döndürür: GetQuestionResults200Response

Örnek

getQuestionResults Örneği
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const urlId: string = "articles/product-launch-2026";
4const userId: string = "user_2048";
5const startDate: string = "2026-03-01T00:00:00Z";
6const questionId: string | undefined = undefined;
7const questionIds: string | undefined = "q_101,q_102";
8const skip: number | undefined = 0;
9
10const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
11

updateQuestionResult Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateQuestionResultBody UpdateQuestionResultBody Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateQuestionResult Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f8b3c';
3const id: string = 'questionResult_4621';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 questionId: 'q_1024',
6 result: 'flagged',
7 score: 0.92,
8 notes: 'Automated moderation flagged for review',
9 meta: [{ key: 'source', value: 'ai-moderator' }] as MetaItem[], // isteğe bağlı meta veri
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

aggregateQuestionResults Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
questionId string Hayır
questionIds Array Hayır
urlId string Hayır
timeBucket AggregateTimeBucket Hayır
startDate Date Hayır
forceRecalculate boolean Hayır

Yanıt

Döndürür: AggregateQuestionResults200Response

Örnek

aggregateQuestionResults Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_98765';
3const questionIds: Array<string> = ['q-102', 'q-103'];
4const urlId: string = 'url_55b3';
5const timeBucket: AggregateTimeBucket = { unit: 'day', size: 7 };
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined, // questionId atlandı, bunun yerine questionIds kullanılıyor
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

bulkAggregateQuestionResults Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Evet
forceRecalculate boolean Hayır

Yanıt

Döndürür: BulkAggregateQuestionResults200Response

Örnek

bulkAggregateQuestionResults Örneği
Copy Copy
1
2const tenantId: string = "tenant_live_7c9d";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 { questionId: "q_feedback_rating", includeSubQuestions: false, filters: { locale: "en-US" } }
6 ],
7 timeBuckets: [
8 { granularity: "day", startUtc: "2026-03-01T00:00:00Z", endUtc: "2026-03-15T00:00:00Z" }
9 ]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

combineCommentsWithQuestionResults Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
questionId string Hayır
questionIds Array Hayır
urlId string Hayır
startDate Date Hayır
forceRecalculate boolean Hayır
minValue number Hayır
maxValue number Hayır
limit number Hayır

Yanıt

Döndürür: CombineCommentsWithQuestionResults200Response

Örnek

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

addSSOUser Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createAPISSOUserData CreateAPISSOUserData Evet

Yanıt

Döndürür: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
deleteComments boolean Hayır
commentDeleteMode string Hayır

Yanıt

Döndürür: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
email string Evet

Yanıt

Döndürür: GetSSOUserByEmailAPIResponse


getSSOUserById Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Dönüş: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
skip number Hayır

Yanıt

Döndürür: GetSSOUsers200Response


patchSSOUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateAPISSOUserData UpdateAPISSOUserData Evet
updateComments boolean Hayır

Yanıt

Döndürür: PatchSSOUserAPIResponse


putSSOUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateAPISSOUserData UpdateAPISSOUserData Evet
updateComments boolean Hayır

Yanıt

Döndürür: PutSSOUserAPIResponse


createSubscription Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Evet

Yanıt

Döndürür: CreateSubscriptionAPIResponse

Örnek

createSubscription Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "u_987654",
5 planId: "pro_monthly",
6 startDate: new Date().toISOString(),
7 trialDays: 14, // isteğe bağlı parametre örneği
8 metadata: { source: "marketing-email" } // isteğe bağlı parametre örneği
9};
10const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
11const subscription: APIUserSubscription = result.subscription;
12

deleteSubscription Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
userId string Hayır

Yanıt

Döndürür: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
userId string Hayır

Yanıt

Döndürür: GetSubscriptionsAPIResponse

Örnek

getSubscriptions Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const userId: string = 'user_76a3b9f2';
4const subscriptionsForUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
5const subscriptionsForTenant: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
6

updateSubscription Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateAPIUserSubscriptionData UpdateAPIUserSubscriptionData Evet
userId string Hayı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

Ad Tür Gerekli Açıklama
tenantId string Evet
yearNumber number Hayır
monthNumber number Hayır
dayNumber number Hayır
skip number Hayır

Yanıt

Döndürür: GetTenantDailyUsages200Response

Örnek

getTenantDailyUsages Örneği
Copy Copy
1
2const tenantId: string = 'tenant_5f4a3b2c-1d6e-4f9a-b9d8-123456789abc';
3const yearNumber: number = 2026;
4const monthNumber: number = 3;
5const dayNumber: number = 24;
6const skip: number = 0;
7
8const result: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, dayNumber, skip);
9

createTenantPackage Internal Link

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
createTenantPackageBody CreateTenantPackageBody Evet

Yanıt

Döndürür: CreateTenantPackage200Response

Örnek

createTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: 'Standard Moderation',
5 description: 'Suitable for small-to-medium sites: basic moderation, spam rules, and analytics',
6 maxCommentsPerMinute: 50,
7 allowAnonymousComments: false, // isteğe bağlı parametre sağlandı
8 // isteğe bağlı alanlar dahil edilmedi: örn., gelişmiş moderasyon kuralları, özel CSS
9 customConfigParameters: {
10 enableProfanityFilter: true,
11 imageContentProfanityLevel: 'medium' // örnek değer; CustomConfigParameters yapısını kullanır
12 }
13};
14const response: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
15console.log(response);
16

deleteTenantPackage Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
id string Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_987';
3const packageId: string = 'pkg_pro_2026_01';
4type DeleteOptions = { force?: boolean; notify?: boolean };
5const options: DeleteOptions = { force: true }; // optional parameters demonstrated
6const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
7

getTenantPackage Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetTenantPackage200Response

Örnek

getTenantPackage Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c8';
3const packageId: string = 'pkg_standard_2026';
4const requestOptions: { includeConfig?: boolean } = { includeConfig: true };
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

getTenantPackages Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
skip number Hayır

Yanıt

Döndürür: GetTenantPackages200Response

Örnek

getTenantPackages Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f8e3b4c";
3const skip: number = 20;
4const packagesDefault: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

replaceTenantPackage Internal Link


Parameters

Name Type Required Description
tenantId string Evet
id string Evet
replaceTenantPackageBody ReplaceTenantPackageBody Evet

Response

Döndürür: FlagCommentPublic200Response

Example

replaceTenantPackage Örneği
Copy Copy
1
2const tenantId: string = "tenant-9f3c2a";
3const id: string = "pkg_4f8b21";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 packageName: "Premium Moderation Pack",
6 enabled: true,
7 apiStatus: { mode: "active" } as APIStatus,
8 customConfigParameters: { maxFlagsBeforeReview: 5 } as CustomConfigParameters,
9 voteStyle: "thumbs" as VoteStyle,
10 tosConfig: { requireAcceptance: true } as TOSConfig
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

updateTenantPackage Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateTenantPackageBody UpdateTenantPackageBody Evet

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenantPackage Örneği
Copy Copy
1
2const tenantId: string = "tenant_3b7f9d-prod";
3const id: string = "pkg_enterprise_2026";
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: "Enterprise Plus",
6 isActive: true,
7 // isteğe bağlı alanlar kasıtlı olarak atlanmıştır (ör. description, limits)
8} as UpdateTenantPackageBody;
9const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
10

createTenantUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createTenantUserBody CreateTenantUserBody Evet

Yanıt

Döndürür: CreateTenantUser200Response

Örnek

createTenantUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_6f4b2c';
3const createTenantUserBody: CreateTenantUserBody = {
4 email: 'sara.kim@example.com',
5 displayName: 'Sara Kim',
6 role: 'moderator',
7 notifyOnMentions: true
8};
9const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
10

deleteTenantUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
deleteComments string Hayır
commentDeleteMode string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenantUser Örneği
Copy Copy
1
2const tenantId: string = '4f3a9b2e-1c6a-4f7b-9e2a-0b8d6f1c2a3e';
3const userId: string = '9d2f7b3a-5c4e-48a2-b1f0-6c7d8e9f0a12';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'permanent';
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, userId, deleteComments, commentDeleteMode);
7

getTenantUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetTenantUser200Response

Örnek

getTenantUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_fc5a9b2c';
3const userId: string = 'user_0a12b3';
4const result: GetTenantUser200Response = await getTenantUser(tenantId, userId);
5const user: User | undefined = (result as any).user; // yük (payload) erişimi
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

getTenantUsers Internal Link

Parametreler

Name Type Required Description
tenantId string Yes
skip number No

Yanıt

Döndürür: GetTenantUsers200Response

Örnek

getTenantUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

replaceTenantUser Internal Link


Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
replaceTenantUserBody ReplaceTenantUserBody Evet
updateComments string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

replaceTenantUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9d8f4b2c';
3const id: string = 'user_f47ac10b';
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: 'ext-5234',
6 email: 'jane.doe@acme.com',
7 displayName: 'Jane Doe',
8 roles: ['moderator'],
9 metadata: { department: 'product', region: 'us-east-1' }
10};
11const updateComments: string = 'propagate-display-name-to-comments';
12
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
redirectURL string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

sendLoginLink Örneği
Copy Copy
1
2const tenantId: string = "tenant_12a9f3b7";
3const id: string = "user_84b2c7d1";
4const redirectURL: string = "https://app.mycompany.com/welcome?ref=login_email";
5const resultWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
6const resultWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
7

updateTenantUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
updateTenantUserBody UpdateTenantUserBody Evet
updateComments string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenantUser Örneği
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9d";
3const id: string = "user_52c9f1ab";
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: "jane.doe@example.com",
6 displayName: "Jane Doe",
7 roles: ["moderator"],
8 isActive: true,
9 metadata: { signupSource: "sso", locale: "en-US" }
10};
11const updateComments: string = "Promoted to moderator and updated display name";
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

createTenant Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
createTenantBody CreateTenantBody Evet

Yanıt

Döndürür: CreateTenant200Response

Örnek

createTenant Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const createTenantBody: CreateTenantBody = {
4 name: "Acme Corporation",
5 domain: "comments.acme.com",
6 adminContact: { name: "Jane Doe", email: "jane.doe@acme.com" },
7 billingInfo: { planId: "pro-monthly", billingContactEmail: "billing@acme.com" },
8 importedSite: { siteId: "site-123", siteName: "Acme Blog" } // isteğe bağlı içe aktarılan site
9};
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

deleteTenant Internal Link

Parametreler

Ad Tip Gerekli Açıklama
tenantId string Evet
id string Evet
sure string Hayır

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

deleteTenant Örneği
Copy Copy
1
2const tenantId: string = "tenant_7f3d2c";
3const id: string = "flag_8392b1a7";
4const sure: string = "confirmed";
5
6const responseWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id);
7const responseWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
8

getTenant Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetTenant200Response

Örnek

getTenant Örneği
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // isteğe bağlı geçersiz kılma, mevcutsa
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

getTenants Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
meta string Hayır
skip number Hayır

Yanıt

Döndürür: GetTenants200Response

Örnek

getTenants Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8421e7';
3const meta: string = 'include=domains,billing,customConfig';
4const skip: number = 20;
5
6const tenantsBasic: GetTenants200Response = await getTenants(tenantId);
7const tenantsWithOptions: GetTenants200Response = await getTenants(tenantId, meta, skip);
8

updateTenant Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Yes
id string Yes
updateTenantBody UpdateTenantBody Yes

Yanıt

Döndürür: FlagCommentPublic200Response

Örnek

updateTenant Örneği
Copy Copy
1
2const tenantId: string = "tenant_4821";
3const id: string = "flag_7b9e";
4const billingInfo: BillingInfo | undefined = undefined; // isteğe bağlı, mevcut faturalamayı korumak için dışarı bırakın
5const updateTenantBody: UpdateTenantBody = {
6 name: "Acme News Comments",
7 defaultDomain: "comments.acme.com",
8 ...(billingInfo ? { billingInfo } : {})
9};
10const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
11

changeTicketState Internal Link

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
userId string Evet
id string Evet
changeTicketStateBody ChangeTicketStateBody Evet

Yanıt

Döndürür: ChangeTicketState200Response

Örnek

changeTicketState Örneği
Copy Copy
1
2const tenantId: string = 'tenant_82f9b3';
3const userId: string = 'user_9472';
4const id: string = 'ticket_550e8400-e29b-41d4-a716-446655440000';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'resolved',
7 comment: 'Confirmed fix deployed to production; closing ticket.',
8 notifySubscribers: true
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

createTicket Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
userId string Evet
createTicketBody CreateTicketBody Evet

Response

Döndürür: CreateTicket200Response

Örnek

createTicket Örneği
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const userId: string = "user_72b9f4";
4const createTicketBody: CreateTicketBody = {
5 subject: "Subscription renewal failed for card on file",
6 description: "Customer's card was declined by the payment processor during automatic renewal. Transaction ID: txn_9a8b7c. Please review gateway logs and retry.",
7 priority: "high", // isteğe bağlı alan örneği
8 contactEmail: "billing@acme-corp.com", // isteğe bağlı iletişim bilgisi
9 relatedUrl: "https://acme-corp.com/account/billing"
10};
11const ticketResponse: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

getTicket Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
userId string Hayır

Yanıt

Döndürür: GetTicket200Response

Örnek

getTicket Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const ticketId: string = 'tkt-20260325-42';
4const userId: string = 'user-8452';
5
6const ticketResponseWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketResponseWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8

getTickets Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
userId string Hayır
state number Hayır
skip number Hayır
limit number Hayır

Yanıt

Döndürür: GetTickets200Response

Örnek

getTickets Örneği
Copy Copy
1
2const tenantId: string = "tenant_92f3b4c1";
3const userId: string = "user_742a9f3e";
4const state: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const ticketsFull: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
8const ticketsMinimal: GetTickets200Response = await getTickets("tenant_92f3b4c1");
9

uploadImage Internal Link

Bir resmi yükle ve yeniden boyutlandır

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
file Blob Evet
sizePreset SizePreset Hayır
urlId string Hayır

Yanıt

Döndürür: UploadImageResponse


getUserBadgeProgressById Internal Link

Parametreler

Ad Tip Gerekli Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetUserBadgeProgressById200Response

Örnek

getUserBadgeProgressById Örneği
Copy Copy
1
2const optionalTenantSuffix: string | undefined = undefined;
3const tenantId: string = `5f8d0d55-1234-4ab1-9e2a-3f2b5c6d7e8f${optionalTenantSuffix ?? ''}`;
4const id: string = '3a2b1c4d-5678-4ef0-9abc-def123456789';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, id);
6

getUserBadgeProgressByUserId Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
userId string Evet

Yanıt

Döndürür: GetUserBadgeProgressById200Response

Örnek

getUserBadgeProgressByUserId Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // isteğe bağlı kaynak (undefined olabilir)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

getUserBadgeProgressList Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
userId string Hayır
limit number Hayır
skip number Hayır

Yanıt

Döndürür: GetUserBadgeProgressList200Response

Örnek

getUserBadgeProgressList Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f8c2b9d';
4 const userId: string = 'user_9a7e215c';
5 const limit: number = 25;
6 const skip: number = 0;
7 const resultMinimal: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId);
8 const resultFull: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 console.log(resultMinimal, resultFull);
10})();
11

createUserBadge Internal Link

Parametreler

Name Type Required Description
tenantId string Yes
createUserBadgeParams CreateUserBadgeParams Yes

Yanıt

Döndürür: CreateUserBadge200Response

Örnek

createUserBadge Örneği
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const createUserBadgeParams: CreateUserBadgeParams = {
4 name: 'Top Contributor',
5 slug: 'top-contributor',
6 imageUrl: 'https://assets.fastcomments.com/badges/top-contributor.png',
7 description: 'Awarded for 100 helpful comments',
8 active: true,
9 criteria: { commentsCount: 100 }, // isteğe bağlı kriterler
10 displayOrder: 10,
11 metadata: { featured: true } // isteğe bağlı meta veriler
12};
13const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
14console.log(result);
15

deleteUserBadge Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
id string Evet

Yanıt

Döndürür: UpdateUserBadge200Response

Örnek

deleteUserBadge Örneği
Copy Copy
1
2type DeleteOptions = { notifyModerators?: boolean };
3
4const tenantId: string = 'tenant_8a3f21';
5const id: string = 'badge_71f2b';
6const options: DeleteOptions = { notifyModerators: true };
7
8const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
9

getUserBadge Internal Link

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetUserBadge200Response

Örnek

getUserBadge Örneği
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

getUserBadges Internal Link

Parametreler

Adı Tip Zorunlu Açıklama
tenantId string Evet
userId string Hayır
badgeId string Hayır
type number Hayır
displayedOnComments boolean Hayır
limit number Hayır
skip number Hayır

Yanıt

Döndürür: GetUserBadges200Response

Örnek

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

updateUserBadge Internal Link

Parametreler

Ad Tip Gerekli Açıklama
tenantId string Evet
id string Evet
updateUserBadgeParams UpdateUserBadgeParams Evet

Yanıt

Döndürür: UpdateUserBadge200Response

Örnek

updateUserBadge Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_987';
4 const id: string = 'badge_top_contributor_42';
5 const updateUserBadgeParams: UpdateUserBadgeParams = {
6 title: 'Top Contributor',
7 description: 'Awarded for reaching 100 high-quality comments',
8 color: '#FFD700',
9 iconUrl: 'https://cdn.acme.com/badges/top-contributor.svg',
10 active: true,
11 notifyUsers: true
12 } as UpdateUserBadgeParams;
13 const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
14 console.log(result);
15})();
16

getUserNotificationCount Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
sso string Hayır

Yanıt

Döndürür: GetUserNotificationCount200Response

Örnek

getUserNotificationCount Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = '9f1e2d3c-4b5a-6d7e-8f90-123456789abc';
4 const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MjMifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
5 const resultWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6 const resultWithoutSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
7 console.log(resultWithSSO, resultWithoutSSO);
8})();
9

getUserNotifications Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
pageSize number Hayır
afterId string Hayır
includeContext boolean Hayır
afterCreatedAt number Hayır
unreadOnly boolean Hayır
dmOnly boolean Hayır
noDm boolean Hayır
includeTranslations boolean Hayır
sso string Hayır

Yanıt

Döndürür: GetUserNotifications200Response

Örnek

getUserNotifications Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3b1c';
3const pageSize: number = 25;
4const afterId: string = 'notif_b2f9e4';
5const includeContext: boolean = true;
6const afterCreatedAt: number = Date.now() - 24 * 60 * 60 * 1000;
7const unreadOnly: boolean = true;
8const dmOnly: boolean = false;
9const noDm: boolean = false;
10const includeTranslations: boolean = true;
11const sso: string = 'sso_tok_user_9f8d7c';
12const response: GetUserNotifications200Response = await getUserNotifications(
13 tenantId,
14 pageSize,
15 afterId,
16 includeContext,
17 afterCreatedAt,
18 unreadOnly,
19 dmOnly,
20 noDm,
21 includeTranslations,
22 sso
23);
24

resetUserNotificationCount Internal Link

Parametreler

Adı Tür Gerekli Açıklama
tenantId string Evet
sso string Hayır

Yanıt

Döndürür: ResetUserNotifications200Response

Örnek

resetUserNotificationCount Örneği
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f3b2c4a";
4 const ssoToken: string | undefined = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9._sample_payload_.signature";
5 const responseWithSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
6 const responseWithoutSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
7 console.log(responseWithSSO, responseWithoutSSO);
8})();
9

resetUserNotifications Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
afterId string Hayır
afterCreatedAt number Hayır
unreadOnly boolean Hayır
dmOnly boolean Hayır
noDm boolean Hayır
sso string Hayır

Yanıt

Döndürür: ResetUserNotifications200Response

Örnek

resetUserNotifications Örneği
Copy Copy
1
2const tenantId: string = "tenant_prod_4a9f12";
3const afterId: string = "notification_87213";
4const afterCreatedAt: number = Math.floor(Date.now() / 1000) - 3600;
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.payload";
8const result: ResetUserNotifications200Response = await resetUserNotifications(tenantId, afterId, afterCreatedAt, unreadOnly, dmOnly, undefined, sso);
9

updateUserNotificationCommentSubscriptionStatus Internal Link

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

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
notificationId string Evet
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum Evet
commentId string Evet
sso string Hayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

updateUserNotificationCommentSubscriptionStatus Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const notificationId: string = 'notif-2026-03-25-01';
4const commentId: string = 'cmt-8f3a2b';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso-payload.signature';
7const result: 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 root yorumlar için bildirimler oluşturulur ve ayrıca

Parametreler

Ad Tür Zorunlu Açıklama
tenantId string Evet
urlId string Evet
url string Evet
pageTitle string Evet
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum Evet
sso string Hayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

updateUserNotificationPageSubscriptionStatus Örneği
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const urlId: string = 'blog-launch-2026';
4const url: string = 'https://acme.example.com/blog/launch-march-2026';
5const pageTitle: string = 'Acme Product Launch — March 2026';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
8const response: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

updateUserNotificationStatus Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
notificationId string Evet
newStatus UpdateUserNotificationStatusNewStatusEnum Evet
sso string Hayır

Yanıt

Döndürür: UpdateUserNotificationStatus200Response

Örnek

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

getUserPresenceStatuses Internal Link

Parametreler

Name Type Zorunlu Açıklama
tenantId string Evet
urlIdWS string Evet
userIds string Evet

Yanıt

Döndürür: GetUserPresenceStatuses200Response

Örnek

getUserPresenceStatuses Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // isteğe bağlı kaynak
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
urlId string Evet
usernameStartsWith string Hayır
mentionGroupIds Array Hayır
sso string Hayır
searchSection SearchUsersSearchSectionEnum Hayır

Yanıt

Döndürür: SearchUsers200Response

Örnek

searchUsers Örneği
Copy Copy
1
2const tenantId: string = 'tenant_8392';
3const urlId: string = 'articles/2026/03/25/fastcomments-release';
4const usernameStartsWith: string = 'jo';
5const mentionGroupIds: Array<string> = ['editors', 'senior-writers'];
6const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.ALL;
8const result: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

getUser Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
id string Evet

Yanıt

Döndürür: GetUser200Response

Örnek

getUser Örneği
Copy Copy
1
2const tenantId: string = 'tenant_7b3f42';
3const id: string = 'user_9c4d2a';
4const userResponse: GetUser200Response = await getUser(tenantId, id);
5console.log(userResponse);
6

createVote Internal Link

Parametreler

Name Type Required Description
tenantId string Evet
commentId string Evet
direction CreateVoteDirectionEnum Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: VoteComment200Response

Örnek

createVote Örneği
Copy Copy
1
2const tenantId: string = 'tenant_9f8b6a';
3const commentId: string = 'comment_3b7d2e';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_4c2a1f';
6
7const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
8

deleteVote Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
id string Evet
editKey string Hayır

Yanıt

Döndürür: DeleteCommentVote200Response

Örnek

deleteVote Örneği
Copy Copy
1
2const tenantId: string = "tenant_7c3f2b4a";
3const voteId: string = "vote_4f8d9a11";
4const editKey: string = "edit_2b9f8c";
5const resultWithoutKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId);
6const resultWithKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId, editKey);
7

getVotes Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet

Yanıt

Döndürür: GetVotes200Response

Örnek

getVotes Örneği
Copy Copy
1
2const tenantId: string = 'acme-corp-8f3b';
3const refCampaign: string | undefined = 'newsletter-march2026'; // isteğe bağlı sorgu parametresi
4const urlId: string = `https://www.example.com/articles/2026/03/25/fastcomments-integration${refCampaign ? `?ref=${refCampaign}` : ''}`;
5
6const votes: GetVotes200Response = await getVotes(tenantId, urlId);
7

getVotesForUser Internal Link

Parametreler

Ad Tür Gerekli Açıklama
tenantId string Evet
urlId string Evet
userId string Hayır
anonUserId string Hayır

Yanıt

Döndürür: GetVotesForUser200Response

Örnek

getVotesForUser Örneği
Copy Copy
1
2(async (): Promise<void> => {
3 const tenantId: string = "local-news-ny";
4 const urlId: string = "articles/2026-03-25/ev-infrastructure-update";
5 const userId: string = "user_78b6f3d9";
6 const anonUserId: string = "anon_9c3f7a1b";
7 const result: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
8 console.log(result);
9})();
10

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.