FastComments.com

FastComments JavaScript/TypeScript SDK


To oficjalne SDK JavaScript/TypeScript dla FastComments.

Oficjalne SDK JavaScript/TypeScript dla API FastComments

Repozytorium

Zobacz na GitHubie


Instalacja Internal Link

npm install fastcomments-sdk

Dokumentacja API Internal Link


Pełna dokumentacja API: docs/api/README.md

Kompatybilność przeglądarki i serwera Internal Link


Ten SDK korzysta z podwójnych punktów wejścia aby zapewnić optymalną kompatybilność i zapobiec błędom czasu wykonywania:

  • fastcomments-sdk/browser - Wersja bezpieczna dla przeglądarki z natywnym fetch
  • fastcomments-sdk/server - Pełna wersja Node.js z obsługą SSO
  • fastcomments-sdk (domyślnie) - Tylko typy, bezpieczne do importowania w dowolnym miejscu

API publiczne vs zabezpieczone Internal Link

SDK udostępnia trzy główne klasy API:

  • DefaultApi - Zabezpieczone endpointy, które wymagają klucza API do uwierzytelnienia. Używaj ich do operacji po stronie serwera.
  • PublicApi - Publiczne endpointy, do których można uzyskać dostęp bez klucza API. Można je wywoływać bezpośrednio z przeglądarek/urządzeń mobilnych itp.
  • HiddenApi - Wewnętrzne/adminowe endpointy do zaawansowanych zastosowań.

Example: Using Public API (browser-safe)

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

const publicApi = new PublicApi();

// Pobierz komentarze dla strony (nie wymaga klucza API)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Example: Using Default API (server-side only)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Trzymaj to w tajemnicy!
});
const defaultApi = new DefaultApi(config);

// Pobierz komentarze z pełnym dostępem administratora
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Integracja SSO (Single Sign-On) Internal Link

FastComments obsługuje SSO w celu integracji z istniejącym systemem uwierzytelniania użytkowników. Funkcjonalność SSO jest dostępna tylko w eksporcie serwera ponieważ wymaga funkcji kryptograficznych Node.js.

Proste SSO (tylko po stronie serwera)

Proste SSO powinno być generowane po stronie serwera i wysyłane do klienta:

// Kod po stronie serwera (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Utwórz proste SSO przy użyciu wbudowanego pomocnika  
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();

// Wyślij ssoToken do kodu po stronie klienta
// Kod po stronie klienta może następnie użyć tego tokena z SDK przeglądarki

Bezpieczne SSO (po stronie serwera, zalecane)

Bezpieczne SSO powinno być zaimplementowane po stronie serwera i zapewnia lepsze bezpieczeństwo:

// Kod po stronie serwera (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Utwórz bezpieczne SSO przy użyciu wbudowanego pomocnika
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();

// Użyj z wywołaniami API na serwerze
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Lub wyślij ssoConfig do klienta do użycia w przeglądarce

Użycie SSO z przeglądarki (z tokenem wygenerowanym przez serwer)

// Kod po stronie klienta (przeglądarka)
import { PublicApi } from 'fastcomments-sdk/browser';

// Pobierz token SSO z endpointu swojego serwera
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 z tworzeniem komentarza

// Po stronie serwera: utwórz SSO i komentarz
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)
});

Typowe przypadki użycia Internal Link

Pobieranie komentarzy dla strony

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

Tworzenie komentarza

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

Głosowanie na komentarz

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 oznacza głos za, -1 oznacza głos przeciw
  }
});

Zarządzanie użytkownikami (wymaga klucza API)

// Wyszukiwanie użytkowników (wymaga DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Wydarzenia na żywo (aktualizacje w czasie rzeczywistym) Internal Link

Subskrybuj zdarzenia na żywo, aby otrzymywać aktualizacje w czasie rzeczywistym dotyczące komentarzy, głosów i innych aktywności.

Zdarzenia na poziomie strony

Nasłuchuj zdarzeń na żywo dla konkretnej strony (komentarze, głosy itp.):

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

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

// Subskrybuj zdarzenia na żywo dla strony
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (pobierz to z odpowiedzi getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);

    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Zaktualizuj interfejs użytkownika o nowy komentarz
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Zaktualizuj licznik głosów w interfejsie użytkownika
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }

    return true; // Zwróć true, jeśli zdarzenie zostało obsłużone
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Zamknij subskrypcję po zakończeniu
subscription.close();

Subskrybuj zdarzenia użytkownika

Nasłuchuj zdarzeń specyficznych dla użytkownika (powiadomienia, wzmianki itp.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Pobierz to z odpowiedzi getComments
};

// Subskrybuj osobisty kanał użytkownika
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);

    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Pokaż powiadomienie w interfejsie użytkownika
        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');
  }
);

// Zamknij po zakończeniu
userSubscription.close();

Uzyskiwanie userIdWS

Parametr userIdWS jest wymagany do zdarzeń na żywo i można go uzyskać z odpowiedzi API:

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

// Wyodrębnij userIdWS z odpowiedzi
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Teraz możesz subskrybować zdarzenia na żywo
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

ID transmisji Internal Link

Zobaczysz, że w niektórych wywołaniach API należy przekazać broadcastId. Gdy otrzymasz zdarzenia, otrzymasz ten identyfikator z powrotem, dzięki czemu będziesz wiedzieć, że możesz zignorować zdarzenie, jeśli planujesz optimistycznie zastosować zmiany po stronie klienta (co prawdopodobnie będziesz chciał zrobić, ponieważ zapewnia najlepsze doświadczenie). Przekaż tutaj UUID. Identyfikator powinien być wystarczająco unikalny, aby nie pojawił się dwa razy w sesji przeglądarki.

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() // Unikalny identyfikator dla tej operacji
  }
});

Obsługa błędów 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);
  }
}

Agreguj Internal Link


Agreguje dokumenty, grupując je (jeśli podano groupBy) i stosując wiele operacji. Obsługiwane są różne operacje (np. sum, countDistinct, avg itd.).

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
aggregationRequest AggregationRequest Tak
parentTenantId string Nie
includeStats boolean Nie

Odpowiedź

Zwraca: AggregationResponse


Pobierz dzienniki audytu Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
limit number Nie
skip number Nie
order SORTDIR Nie
after number Nie
before number Nie

Odpowiedź

Zwraca: GetAuditLogs200Response

Zablokuj z komentarza (publiczne) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
publicBlockFromCommentParams PublicBlockFromCommentParams Tak
sso string Nie

Odpowiedź

Zwraca: BlockFromCommentPublic200Response


Odblokuj komentarz (publiczne) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
publicBlockFromCommentParams PublicBlockFromCommentParams Tak
sso string Nie

Odpowiedź

Zwraca: UnBlockCommentPublic200Response


Sprawdź zablokowane komentarze Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentIds string Tak
sso string Nie

Odpowiedź

Zwraca: CheckedCommentsForBlocked200Response


Zablokuj użytkownika z komentarza Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
blockFromCommentParams BlockFromCommentParams Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: BlockFromCommentPublic200Response


Utwórz komentarz (publiczny) Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak
broadcastId string Tak
commentData CommentData Tak
sessionId string Nie
sso string Nie

Odpowiedź

Zwraca: CreateCommentPublic200Response


Usuń komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
contextUserId string Nie
isLive boolean Nie

Odpowiedź

Zwraca: DeleteComment200Response


Usuń komentarz (publiczny) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
editKey string Nie
sso string Nie

Odpowiedź

Zwraca: DeleteCommentPublic200Response

Usuń głos przy komentarzu Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
voteId string Tak
urlId string Tak
broadcastId string Tak
editKey string Nie
sso string Nie

Odpowiedź

Zwraca: DeleteCommentVote200Response


Zgłoś komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: FlagComment200Response


Pobierz komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetComment200Response

Pobierz komentarze Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
page number Nie
limit number Nie
skip number Nie
asTree boolean Nie
skipChildren number Nie
limitChildren number Nie
maxTreeDepth number Nie
urlId string Nie
userId string Nie
anonUserId string Nie
contextUserId string Nie
hashTag string Nie
parentId string Nie
direction SortDirections Nie

Odpowiedź

Zwraca: GetComments200Response


Pobierz komentarze (publiczne) Internal Link

req tenantId urlId

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak
page number Nie
direction SortDirections Nie
sso string Nie
skip number Nie
skipChildren number Nie
limit number Nie
limitChildren number Nie
countChildren boolean Nie
fetchPageForCommentId string Nie
includeConfig boolean Nie
countAll boolean Nie
includei10n boolean Nie
locale string Nie
modules string Nie
isCrawler boolean Nie
includeNotificationCount boolean Nie
asTree boolean Nie
maxTreeDepth number Nie
useFullTranslationIds boolean Nie
parentId string Nie
searchText string Nie
hashTags Array Nie
userId string Nie
customConfigStr string Nie
afterCommentId string Nie
beforeCommentId string Nie

Odpowiedź

Zwraca: GetCommentsPublic200Response

Pobierz tekst komentarza Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
editKey string Nie
sso string Nie

Odpowiedź

Zwraca: GetCommentText200Response


Pobierz nazwy użytkowników głosujących przy komentarzu Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
dir number Tak
sso string Nie

Odpowiedź

Zwraca: GetCommentVoteUserNames200Response


Zablokuj komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
sso string Nie

Odpowiedź

Zwraca: LockComment200Response


Przypnij komentarz Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
sso string Nie

Odpowiedź

Zwraca: PinComment200Response


Zapisz komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createCommentParams CreateCommentParams Tak
isLive boolean Nie
doSpamCheck boolean Nie
sendEmails boolean Nie
populateNotifications boolean Nie

Odpowiedź

Zwraca: SaveComment200Response


Zapisz komentarze hurtowo Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createCommentParams Array Tak
isLive boolean Nie
doSpamCheck boolean Nie
sendEmails boolean Nie
populateNotifications boolean Nie

Odpowiedź

Zwraca: Array<SaveComment200Response

Ustaw tekst komentarza Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
commentTextUpdateRequest CommentTextUpdateRequest Tak
editKey string Nie
sso string Nie

Odpowiedź

Zwraca: SetCommentText200Response

Odblokuj użytkownika z komentarza Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
unBlockFromCommentParams UnBlockFromCommentParams Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: UnBlockCommentPublic200Response


Cofnij zgłoszenie komentarza Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: FlagComment200Response


Odblokuj komentarz Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
sso string Nie

Odpowiedź

Zwraca: LockComment200Response


Odepnij komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
broadcastId string Tak
sso string Nie

Odpowiedź

Zwraca: PinComment200Response


Zaktualizuj komentarz Internal Link


Parametry

Name Type Wymagane Opis
tenantId string Tak
id string Tak
body PickAPICommentUpdatableCommentFields Tak
contextUserId string Nie
doSpamCheck boolean Nie
isLive boolean Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response


Oddaj głos na komentarz Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
urlId string Tak
broadcastId string Tak
voteBodyParams VoteBodyParams Tak
sessionId string Nie
sso string Nie

Odpowiedź

Zwraca: VoteComment200Response


Dodaj konfigurację domeny Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
addDomainConfigParams AddDomainConfigParams Tak

Odpowiedź

Zwraca: AddDomainConfig200Response


Usuń konfigurację domeny Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
domain string Tak

Odpowiedź

Zwraca: DeleteDomainConfig200Response


Pobierz konfigurację domeny Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
domain string Tak

Odpowiedź

Zwraca: GetDomainConfig200Response


Pobierz konfiguracje domeny Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak

Odpowiedź

Zwraca: GetDomainConfigs200Response


Częściowo zaktualizuj konfigurację domeny Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
domainToUpdate string Tak
patchDomainConfigParams PatchDomainConfigParams Tak

Odpowiedź

Zwraca: GetDomainConfig200Response


Zastąp konfigurację domeny Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
domainToUpdate string Tak
updateDomainConfigParams UpdateDomainConfigParams Tak

Odpowiedź

Zwraca: GetDomainConfig200Response


Utwórz szablon e-mail Internal Link


Parametry

Name Type Required Description
tenantId string Tak
createEmailTemplateBody CreateEmailTemplateBody Tak

Odpowiedź

Zwraca: CreateEmailTemplate200Response

Przykład

Przykład createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_7a9f2b3d";
3
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Comment Notification",
6 subject: "New comment on your article: ",
7 htmlBody: "<p> left a comment:</p><blockquote></blockquote>",
8 enabled: true,
9 defaultLocale: "en-US",
10 metadata: { createdBy: "admin@example.com", purpose: "notify_comment" } // opcjonalne dodatkowe dane
11};
12
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

Usuń szablon e-mail Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_4b2f6a-4b2f6a2d";
3const templateId: string = "email_template_9f8b7c3e";
4const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
5const status: APIStatus | undefined = result?.status
6

Usuń błąd renderowania szablonu e-mail Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
errorId string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

deleteEmailTemplateRenderError Przykład
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9c";
3const id: string = "template_4a1c9f7e";
4const errorId: string = "err_20260112_abc123";
5const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
6

Pobierz szablon e-mail Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetEmailTemplate200Response

Przykład

Przykład getEmailTemplate
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-enterprises-123';
4 const id: string = 'welcome-email-template-v2';
5 const locale: string | undefined = 'en-US'; // przykład opcjonalnego parametru
6 const template: GetEmailTemplate200Response = await getEmailTemplate(tenantId, id);
7 console.log(template, locale);
8})();
9

Pobierz definicje szablonów e-mail Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak

Odpowiedź

Zwraca: GetEmailTemplateDefinitions200Response

Przykład

Przykład getEmailTemplateDefinitions
Copy Copy
1
2const tenantId: string = 'acme-enterprises-78f2';
3const emailTemplates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4

Pobierz błędy renderowania szablonów e-mail Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
skip number Nie

Odpowiedź

Zwraca: GetEmailTemplateRenderErrors200Response

Przykład

Przykład getEmailTemplateRenderErrors
Copy Copy
1
2const tenantId: string = "tenant_7b3f2a9c";
3const id: string = "tmpl_4f1b2c9e";
4const skip: number = 25;
5const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
6

Pobierz szablony e-mail Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetEmailTemplates200Response

Przykład

Przykład getEmailTemplates
Copy Copy
1
2const tenantId: string = 'tenant_8f4d2b7c';
3const responseWithoutSkip: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
4const skip: number = 20;
5const responseWithSkip: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
6

Renderuj szablon e-mail Internal Link

Parametry

Name Type Required Description
tenantId string Tak
renderEmailTemplateBody RenderEmailTemplateBody Tak
locale string Nie

Odpowiedź

Zwraca: RenderEmailTemplate200Response

Przykład

Przykład renderEmailTemplate
Copy Copy
1
2const tenantId: string = 'acme-corp-7f3';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'new-comment-notification',
5 recipientEmail: 'jane.doe@acme.com',
6 variables: {
7 commenterName: 'Samir Patel',
8 commentText: 'I found this article really helpful — thanks for sharing!',
9 threadUrl: 'https://acme.com/blog/123#comments'
10 },
11 includeUnsubscribeLink: true
12};
13const locale: string = 'en-US';
14const response: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

Aktualizuj szablon e-mail Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
id string Tak
updateEmailTemplateBody UpdateEmailTemplateBody Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateEmailTemplate
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const id: string = 'email_tpl_42b7a9';
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: 'Comment Flag Notification',
6 subject: 'A comment was flagged on acme.com',
7 html: '<p>A comment by was flagged. Review at </p>',
8 replyTo: 'noreply@acme.com', // pole opcjonalne (przykład)
9 enabled: true,
10 customConfig: { priority: 'high' } // opcjonalne parametry niestandardowe
11};
12const response: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
13

Pobierz dziennik zdarzeń Internal Link


req tenantId urlId userIdWS

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak
userIdWS string Tak
startTime number Tak
endTime number Tak

Odpowiedź

Zwraca: GetEventLog200Response


Pobierz globalny dziennik zdarzeń Internal Link

req tenantId urlId userIdWS

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak
userIdWS string Tak
startTime number Tak
endTime number Tak

Odpowiedź

Zwraca: GetEventLog200Response

Utwórz wpis w kanale Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createFeedPostParams CreateFeedPostParams Tak
broadcastId string Nie
isLive boolean Nie
doSpamCheck boolean Nie
skipDupCheck boolean Nie

Odpowiedź

Zwraca: CreateFeedPost200Response


Utwórz wpis w kanale (publiczny) Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
createFeedPostParams CreateFeedPostParams Tak
broadcastId string Nie
sso string Nie

Odpowiedź

Zwraca: CreateFeedPostPublic200Response


Usuń wpis w kanale (publiczny) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
postId string Tak
broadcastId string Nie
sso string Nie

Odpowiedź

Zwraca: DeleteFeedPostPublic200Response


Pobierz wpisy w kanale Internal Link

req tenantId afterId

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
afterId string Nie
limit number Nie
tags Array Nie

Odpowiedź

Zwraca: GetFeedPosts200Response

Pobierz wpisy w kanale (publiczne) Internal Link

req tenantId afterId

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
afterId string Nie
limit number Nie
tags Array Nie
sso string Nie
isCrawler boolean Nie
includeUserInfo boolean Nie

Odpowiedź

Zwraca: GetFeedPostsPublic200Response


Pobierz statystyki wpisów w kanale Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
postIds Array Tak
sso string Nie

Odpowiedź

Zwraca: GetFeedPostsStats200Response


Pobierz reakcje użytkownika (publiczne) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
postIds Array Nie
sso string Nie

Odpowiedź

Zwraca: GetUserReactsPublic200Response

Zareaguj na wpis w kanale (publiczne) Internal Link

Parametry

Name Type Required Description
tenantId string Tak
postId string Tak
reactBodyParams ReactBodyParams Tak
isUndo boolean Nie
broadcastId string Nie
sso string Nie

Odpowiedź

Zwraca: ReactFeedPostPublic200Response


Aktualizuj wpis w kanale Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
feedPost FeedPost Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response


Aktualizuj wpis w kanale (publiczny) Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
postId string Tak
updateFeedPostParams UpdateFeedPostParams Tak
broadcastId string Nie
sso string Nie

Odpowiedź

Zwraca: CreateFeedPostPublic200Response


Zgłoś komentarz (publiczne) Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
commentId string Tak
isFlagged boolean Tak
sso string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response


Dodaj hashtag Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Nie
createHashTagBody CreateHashTagBody Nie

Odpowiedź

Zwraca: AddHashTag200Response

Przykład

Przykład addHashTag
Copy Copy
1
2const tenantId: string = 'tenant_7b2f6c2b';
3const createBody: CreateHashTagBody = {
4 tag: 'feature-request',
5 label: 'Feature Request',
6 description: 'Requests for new functionality in the web client',
7 isActive: true,
8 visibility: 'public',
9 allowedDomains: ['example.com', 'internal.example.com']
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createBody);
12const resultWithoutTenant: AddHashTag200Response = await addHashTag(undefined, {
13 tag: 'bug',
14 label: 'Bug',
15 description: 'Use for reproducible bugs reported by users',
16 isActive: true,
17 visibility: 'public'
18});
19

Dodaj hashtagi hurtowo Internal Link

Parametry

Name Type Required Description
tenantId string Nie
bulkCreateHashTagsBody BulkCreateHashTagsBody Nie

Odpowiedź

Zwraca: AddHashTagsBulk200Response

Przykład

Przykład addHashTagsBulk
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_3f2b9a';
4 const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
5 tags: [
6 { name: 'performance', description: 'Comments about site performance', visibleToModeratorsOnly: false },
7 { name: 'feature-request', description: 'Requests for new features', visibleToModeratorsOnly: true }
8 ]
9 };
10 const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
11 const resultWithNoTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBody);
12 console.log(result, resultWithNoTenant);
13})();
14

Usuń hashtag Internal Link

Parametry

Name Type Required Description
tag string Tak
tenantId string Nie
deleteHashTagRequest DeleteHashTagRequest Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład użycia deleteHashTag
Copy Copy
1
2const tag: string = 'breaking-news';
3const tenantId: string = 'tenant_42';
4const deleteReq: DeleteHashTagRequest = { removedBy: 'moderator_jane', reason: 'off-topic for this community', deleteAssociatedComments: true } as DeleteHashTagRequest;
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteReq);
6

Pobierz hashtagi Internal Link

Parametry

Name Type Required Description
tenantId string Tak
page number Nie

Odpowiedź

Zwraca: GetHashTags200Response

Przykład

Przykład getHashTags
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-7a9f";
4 const tagsPage1: GetHashTags200Response = await getHashTags(tenantId);
5 const tagsPage2: GetHashTags200Response = await getHashTags(tenantId, 2);
6 console.log(tagsPage1, tagsPage2);
7})();
8

Częściowo zaktualizuj hashtag Internal Link

Parametry

Nazwa Typ Wymagane Opis
tag string Tak
tenantId string Nie
updateHashTagBody UpdateHashTagBody Nie

Odpowiedź

Zwraca: PatchHashTag200Response

Przykład

Przykład patchHashTag
Copy Copy
1
2const tag: string = 'release-2026';
3const tenantId: string = 'tenant_42';
4const updateHashTagBody: UpdateHashTagBody = {
5 displayName: 'Release 2026',
6 description: 'Discussions and notes for the 2026 product release',
7 isActive: true
8};
9const result: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
10

Utwórz moderatora Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
createModeratorBody CreateModeratorBody Tak

Odpowiedź

Zwraca: CreateModerator200Response

Przykład

Przykład createModerator
Copy Copy
1
2const tenantId: string = "tenant_prod_us-east_01";
3const createModeratorBody: CreateModeratorBody = {
4 email: "maria.lopez+mod@fastcompany.com",
5 username: "mlopez_mod",
6 displayName: "Maria Lopez",
7 roles: ["content_moderator"],
8 notifyOnReports: true,
9 metadata: { region: "us-east", team: "community" }
10};
11const result: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

Usuń moderatora Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
sendEmail string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteModerator
Copy Copy
1
2const tenantId: string = 'acme-tenant-987';
3const moderatorId: string = 'mod-78b2c9a4-3f1e-4d6a';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, moderatorId, sendEmail);
6

Pobierz moderatora Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetModerator200Response

Przykład

Przykład getModerator
Copy Copy
1
2const tenantId: string = "tenant_eu_4f8d2b9e";
3const maybeModeratorId: string | undefined = "mod_91c3b7a2"; // optional source (could be undefined)
4const moderator: GetModerator200Response = await getModerator(tenantId, maybeModeratorId!);
5

Pobierz moderatorów Internal Link

Parametry

Name Type Required Description
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetModerators200Response

Przykład

Przykład użycia getModerators
Copy Copy
1
2const tenantId: string = "tenant_corp_7f9b2a";
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const skip: number = 50;
5const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, skip);
6

Wyślij zaproszenie Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
fromName string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład użycia sendInvite
Copy Copy
1
2const tenantId: string = 'acme-tenant-004';
3const id: string = 'comment_9b7f3a2c';
4const fromName: string = 'María Hernández';
5const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
6

Zaktualizuj moderatora Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak
updateModeratorBody UpdateModeratorBody Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateModerator
Copy Copy
1
2const tenantId: string = '4f8a9c2e-3b6d-4d9e-8c2f-1a2b3c4d5e6f';
3const id: string = 'mod_92a7c4';
4const updateModeratorBodyMinimal: UpdateModeratorBody = { displayName: 'Sophia Patel' };
5const updateModeratorBodyWithOptional: UpdateModeratorBody = {
6 displayName: 'Sophia Patel',
7 email: 'sophia.patel@newsroom.example',
8 permissions: ['remove_comments', 'ban_user'],
9 notifyOnFlag: true // opcjonalny parametr — demonstracja
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBodyWithOptional);
12

Usuń licznik powiadomień Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_7f3a1b2c4d9e';
3const notificationId: string = 'notif_8c9d0a1b2f3e4b7';
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, notificationId);
5

Pobierz pamiętany licznik powiadomień Internal Link

Parametry

Nazwa Type Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetCachedNotificationCount200Response

Przykład

getCachedNotificationCount Przykład
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const baseNotificationId: string = 'notif-000123';
4const idSuffix: string | undefined = undefined; // przykład opcjonalnego parametru
5const notificationId: string = idSuffix ? `${baseNotificationId}-${idSuffix}` : baseNotificationId;
6const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, notificationId);
7console.log(result);
8

Pobierz liczbę powiadomień Internal Link

Parametry

Name Type Required Description
tenantId string Tak
userId string Nie
urlId string Nie
fromCommentId string Nie
viewed boolean Nie
type string Nie

Odpowiedź

Zwraca: GetNotificationCount200Response

Przykład

Przykład użycia getNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_8a9b7c';
3const userId: string = 'user_42b3c';
4const urlId: string = 'https://blog.example.com/posts/introducing-new-editor';
5const fromCommentId: string | undefined = undefined;
6const viewed: boolean = false;
7const type: string = 'mention';
8const result: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, type);
9

Pobierz powiadomienia Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
userId string Nie
urlId string Nie
fromCommentId string Nie
viewed boolean Nie
type string Nie
skip number Nie

Odpowiedź

Zwraca: GetNotifications200Response

Przykład

Przykład getNotifications
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_8f3b1a2c';
4 const userId: string = 'user_42';
5 const urlId: string = 'https://news.example.com/articles/2026/01/11/comment-thread';
6 const fromCommentId: string = 'cmt_9a7b';
7 const viewed: boolean = false;
8 const type: string = 'mention';
9 const skip: number = 0;
10 const response: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
11 console.log(response);
12})();
13

Zaktualizuj powiadomienie Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateNotificationBody UpdateNotificationBody Tak
userId string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateNotification
Copy Copy
1
2const tenantId: string = "tenant_86a7b3";
3const id: string = "notif_20260112_01";
4const userId: string = "moderator_42";
5const updateNotificationBody: UpdateNotificationBody = {
6 name: "Flagged comment alert",
7 enabled: true,
8 channels: ["email"],
9 recipients: ["mod-team@news-site.com"],
10 threshold: 1
11};
12
13(async () => {
14 const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
15 console.log(result);
16})();
17

Dodaj stronę Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createAPIPageData CreateAPIPageData Tak

Odpowiedź

Zwraca: AddPageAPIResponse


Usuń stronę Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: DeletePageAPIResponse


Pobierz stronę po URLId Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak

Odpowiedź

Zwraca: GetPageByURLIdAPIResponse


Pobierz strony Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak

Odpowiedź

Zwraca: GetPagesAPIResponse


Częściowo zaktualizuj stronę Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateAPIPageData UpdateAPIPageData Tak

Odpowiedź

Zwraca: PatchPageAPIResponse


Usuń oczekujące zdarzenie webhook Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = 'tenant_7f4e2b';
3const pendingEventId: string = '9f7b6a8c-3b2a-4c0d-a8e5-1234567890ab';
4const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, pendingEventId);
5console.log(result);
6

Pobierz licznik oczekujących zdarzeń webhook Internal Link

Parametry

Name Type Required Description
tenantId string Tak
commentId string Nie
externalId string Nie
eventType string Nie
type string Nie
domain string Nie
attemptCountGT number Nie

Odpowiedź

Zwraca: GetPendingWebhookEventCount200Response

Przykład

Przykład getPendingWebhookEventCount
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9c3b2b';
4 const commentId: string = 'cmt_f4a1b2';
5 const externalId: string = 'ext-789';
6 const eventType: string = 'comment.created';
7 const type: string = 'delivery';
8 const domain: string = 'app.example.com';
9 const attemptCountGT: number = 2;
10
11 const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT
19 );
20
21 console.log(result);
22})();
23

Pobierz oczekujące zdarzenia webhook Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
commentId string Nie
externalId string Nie
eventType string Nie
type string Nie
domain string Nie
attemptCountGT number Nie
skip number Nie

Odpowiedź

Zwraca: GetPendingWebhookEvents200Response

Przykład

Przykład getPendingWebhookEvents
Copy Copy
1
2const tenantId: string = "tenant_78b2f1";
3const commentId: string = "cmt_0042";
4const eventType: string = "comment.created";
5const domain: string = "blog.example.com";
6const attemptCountGT: number = 1;
7const skip: number = 0;
8
9const pending: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
10 tenantId,
11 commentId,
12 undefined, // externalId
13 eventType,
14 undefined, // type
15 domain,
16 attemptCountGT,
17 skip
18);
19

Utwórz konfigurację pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createQuestionConfigBody CreateQuestionConfigBody Tak

Odpowiedź

Zwraca: CreateQuestionConfig200Response

Przykład

Przykład createQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_live_7f8b3c2a";
3const customOptions: QuestionConfigCustomOptionsInner[] = [
4 { value: "under18", label: "Under 18" },
5 { value: "18-24", label: "18-24" },
6 { value: "25-34", label: "25-34", defaultSelected: true }
7];
8const createQuestionConfigBody: CreateQuestionConfigBody = {
9 key: "age_range",
10 label: "What is your age range?",
11 required: false, // opcjonalne: pokazuje pominięcie vs uwzględnienie pól opcjonalnych
12 renderingType: QuestionRenderingType.Dropdown,
13 options: customOptions,
14 whenSave: QuestionWhenSave.Always
15};
16const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
17

Usuń konfigurację pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteQuestionConfig
Copy Copy
1
2async function deleteIfPresent(tenantId: string, id?: string): Promise<FlagCommentPublic200Response | null> {
3 if (!id) return null;
4 const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5 return result;
6}
7const tenantId: string = 'tenant_acme_001';
8const optionalConfigId: string | undefined = 'qcfg_20260112_01';
9(async (): Promise<void> => {
10 const deleted: FlagCommentPublic200Response | null = await deleteIfPresent(tenantId, optionalConfigId);
11 void deleted;
12})();
13

Pobierz konfigurację pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetQuestionConfig200Response

Przykład

Przykład getQuestionConfig
Copy Copy
1
2const tenantId: string = 'acme-corp-47';
3const questionId: string = 'q-2026-01-12-01';
4const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
5function summarizeConfig(cfg: GetQuestionConfig200Response, includeMetadata?: boolean): QuestionConfig | undefined {
6 // includeMetadata jest opcjonalny; implementacja pominięta dla zwięzłości
7 return undefined;
8}
9const summarizedWithMeta: QuestionConfig | undefined = summarizeConfig(result, true);
10const summarizedDefault: QuestionConfig | undefined = summarizeConfig(result);
11

Pobierz konfiguracje pytań Internal Link


Parametry

Name Type Required Description
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetQuestionConfigs200Response

Przykład

Przykład getQuestionConfigs
Copy Copy
1
2const tenantId: string = 'tenant-42a7b9';
3const firstPage: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const secondPage: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 50);
5

Zaktualizuj konfigurację pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Yes
id string Yes
updateQuestionConfigBody UpdateQuestionConfigBody Yes

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateQuestionConfig
Copy Copy
1
2const tenantId: string = 'tenant-82b3a';
3const id: string = 'qst-20260112';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = { label: 'Age verification', required: true, renderingType: 'singleChoice', customOptions: [{ value: '18-24', label: '18–24' }] } as UpdateQuestionConfigBody;
5const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
6

Utwórz wynik pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createQuestionResultBody CreateQuestionResultBody Tak

Odpowiedź

Zwraca: CreateQuestionResult200Response

Przykład

Przykład createQuestionResult
Copy Copy
1
2const tenantId: string = "fc_tenant_7a3c_us-east-1";
3const metaItem: MetaItem = { key: "referrer", value: "/blog/how-to-comment" };
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "q_42",
6 commenterId: "user_1984",
7 answer: "yes",
8 score: 4,
9 meta: [metaItem] // dodatkowe metadane (opcjonalne)
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

Usuń wynik pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

deleteQuestionResult Przykład
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const questionResultId: string = '6f1a2b3c-4d5e-6789-abcd-ef0123456789';
4const deletedResult: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, questionResultId);
5console.log(deletedResult);
6

Pobierz wynik pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetQuestionResult200Response

Przykład

Przykład getQuestionResult
Copy Copy
1
2const tenantId: string = "3fa85f64-5717-4562-b3fc-2c963f66afa6";
3const questionId: string = "question_72f1b9c3a4";
4const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
5console.log(result);
6

Pobierz wyniki pytań Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Nie
userId string Nie
startDate string Nie
questionId string Nie
questionIds string Nie
skip number Nie

Odpowiedź

Zwraca: GetQuestionResults200Response

Przykład

Przykład getQuestionResults
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlId: string = 'news/2025/fastcomments-release';
4const userId: string = 'user_8b7f3c';
5const startDate: string = '2025-01-01T00:00:00Z';
6const questionIds: string = 'q123,q124';
7const skip: number = 20;
8const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, undefined, questionIds, skip);
9

Zaktualizuj wynik pytania Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateQuestionResultBody UpdateQuestionResultBody Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_84f2b9';
3const id: string = 'question_3a7c1d';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 result: { verdict: 'helpful', confidence: 0.92 },
6 reviewer: { id: 'mod_102', name: 'Aisha Rahman' },
7 notifyUser: true // parametr opcjonalny
8};
9const response: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
10

Agreguj wyniki pytań Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
questionId string Nie
questionIds Array Nie
urlId string Nie
timeBucket AggregateTimeBucket Nie
startDate Date Nie
forceRecalculate boolean Nie

Odpowiedź

Zwraca: AggregateQuestionResults200Response


Hurtowo agreguj wyniki pytań Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Tak
forceRecalculate boolean Nie

Odpowiedź

Zwraca: BulkAggregateQuestionResults200Response

Połącz komentarze z wynikami pytań Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
questionId string Nie
questionIds Array Nie
urlId string Nie
startDate Date Nie
forceRecalculate boolean Nie
minValue number Nie
maxValue number Nie
limit number Nie

Odpowiedź

Zwraca: CombineCommentsWithQuestionResults200Response


Dodaj użytkownika SSO Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createAPISSOUserData CreateAPISSOUserData Tak

Odpowiedź

Zwraca: AddSSOUserAPIResponse


Usuń użytkownika SSO Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
deleteComments boolean Nie
commentDeleteMode string Nie

Odpowiedź

Zwraca: DeleteSSOUserAPIResponse

Pobierz użytkownika SSO po e-mailu Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
email string Tak

Odpowiedź

Zwraca: GetSSOUserByEmailAPIResponse


Pobierz użytkownika SSO po ID Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetSSOUserByIdAPIResponse


Pobierz użytkowników SSO Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetSSOUsers200Response


Częściowo zaktualizuj użytkownika SSO Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateAPISSOUserData UpdateAPISSOUserData Tak
updateComments boolean Nie

Odpowiedź

Zwraca: PatchSSOUserAPIResponse


Zastąp użytkownika SSO Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateAPISSOUserData UpdateAPISSOUserData Tak
updateComments boolean Nie

Odpowiedź

Zwraca: PutSSOUserAPIResponse


Utwórz subskrypcję Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Tak

Odpowiedź

Zwraca: CreateSubscriptionAPIResponse

Usuń subskrypcję Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
userId string Nie

Odpowiedź

Zwraca: DeleteSubscriptionAPIResponse


Pobierz subskrypcje Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
userId string Nie

Odpowiedź

Zwraca: GetSubscriptionsAPIResponse


Pobierz dzienne użycie najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
yearNumber number Nie
monthNumber number Nie
dayNumber number Nie
skip number Nie

Odpowiedź

Zwraca: GetTenantDailyUsages200Response

Przykład

Przykład getTenantDailyUsages
Copy Copy
1
2const tenantId: string = "tenant_89f3c2-prod";
3const yearNumber: number = 2026;
4const monthNumber: number = 1;
5const skip: number = 0;
6const usages: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, undefined, skip);
7

Utwórz pakiet najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createTenantPackageBody CreateTenantPackageBody Tak

Odpowiedź

Zwraca: CreateTenantPackage200Response

Przykład

Przykład createTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_7f3b1a9c";
3const tenantPackage: TenantPackage = { id: "pkg_001", name: "Premium Plan", seats: 100 };
4const customConfig: CustomConfigParameters = { enableImages: true, maxImageSizeMb: 10 };
5const createTenantPackageBody: CreateTenantPackageBody = {
6 packageName: "Premium Plus",
7 tenantPackage,
8 customConfig,
9 notes: "Enable advanced moderation and image uploads" // parametr opcjonalny — przykład
10};
11const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
12

Usuń pakiet najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteTenantPackage
Copy Copy
1
2const tenantId: string = 'fc-tenant-8a9c2b';
3const packageId: string = 'pkg-47f3c9';
4const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
5

Pobierz pakiet najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetTenantPackage200Response

Przykład

Przykład getTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_westus_01';
3const packageId: string = 'pkg_premium_annual_2026';
4interface FetchOptions { includeArchived?: boolean }
5const options: FetchOptions = { includeArchived: false };
6const result: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
7

Pobierz pakiety najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetTenantPackages200Response

Przykład

Przykład getTenantPackages
Copy Copy
1
2const tenantId: string = 'tenant_4f3a9c2d';
3const skip: number = 25;
4const packagesResponse: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const pagedPackagesResponse: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

Zastąp pakiet najemcy Internal Link

Parametry

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

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład replaceTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant-9b72f2';
3const packageId: string = 'pkg-prod-v2';
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 name: 'Premium Moderation Bundle',
6 enabled: true,
7 maxModerators: 4,
8 // Pola opcjonalne, takie jak "notes" lub "trialExpiry", zostały tutaj celowo pominięte
9} as ReplaceTenantPackageBody;
10const result: FlagCommentPublic200Response = await replaceTenantPackage(
11 tenantId,
12 packageId,
13 replaceTenantPackageBody
14);
15

Zaktualizuj pakiet najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateTenantPackageBody UpdateTenantPackageBody Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_8a4f1c9b';
3const packageId: string = 'pkg_premium_v2';
4const customConfig: CustomConfigParameters = { enableRichText: true, maxImagesPerComment: 5 };
5const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: 'Premium Moderation Package',
7 enabled: true,
8 description: 'Adds advanced spam rules, image moderation and priority support',
9 customConfigParameters: customConfig
10};
11const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, packageId, updateTenantPackageBody);
12

Utwórz użytkownika najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createTenantUserBody CreateTenantUserBody Tak

Odpowiedź

Zwraca: CreateTenantUser200Response

Przykład

Przykład createTenantUser
Copy Copy
1
2const tenantId: string = "tenant_9a8c7e4b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "julia.smith@acme-corp.com",
5 displayName: "Julia Smith",
6 role: "moderator",
7 password: "Str0ngP@ssword!23",
8 sendInviteEmail: true, // przykład opcjonalnego parametru
9 locale: "en-US",
10 metadata: { department: "Customer Success" }
11};
12const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
13

Usuń użytkownika najemcy Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
deleteComments string Nie
commentDeleteMode string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2a9c';
3const id: string = 'user_4e5f6a7b';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'hard';
6
7const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8

Pobierz użytkownika najemcy Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetTenantUser200Response

Przykład

Przykład getTenantUser
Copy Copy
1
2const tenantId: string = "tenant_9f7d4b2a-1c3e";
3const id: string = "user_6a12b3c4d5";
4const includeProfile: boolean | undefined = true; // przykład opcjonalnego parametru
5const response: GetTenantUser200Response = await getTenantUser(tenantId, id);
6console.log("Tenant user fetched", response);
7

Pobierz użytkowników najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
skip number Nie

Odpowiedź

Zwraca: GetTenantUsers200Response

Przykład

Przykład użycia getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2c1a';
3const skip: number = 50;
4const firstPage: GetTenantUsers200Response = await getTenantUsers(tenantId);
5const nextPage: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
6

Zastąp użytkownika najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
replaceTenantUserBody ReplaceTenantUserBody Tak
updateComments string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład replaceTenantUser
Copy Copy
1
2const tenantId: string = "tenant_5f8b9a";
3const id: string = "user_92bf21";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 email: "jane.doe@acme-corp.com",
6 displayName: "Jane Doe",
7 externalId: "acme|12345",
8 roles: ["commenter", "moderator"],
9 isActive: true,
10 metadata: { team: "product", location: "NYC" }
11};
12const updateComments: string = "Update historical comments to reflect new display name";
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
redirectURL string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład sendLoginLink
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const id: string = 'user_9f3b2a';
4const redirectURL: string = 'https://app.example.com/onboard?source=login-email';
5const result: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
6

Zaktualizuj użytkownika najemcy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateTenantUserBody UpdateTenantUserBody Tak
updateComments string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const id: string = 'user_7a9d1c';
4const updateComments: string = 'Promoted to moderator and updated contact email';
5const updateTenantUserBody: UpdateTenantUserBody = {
6 email: 'jane.doe+mod@example.com',
7 displayName: 'Jane D.',
8 roles: ['moderator'],
9 isBanned: false,
10 metadata: { department: 'community' }
11};
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

Utwórz najemcę Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createTenantBody CreateTenantBody Tak

Odpowiedź

Zwraca: CreateTenant200Response

Przykład

Przykład createTenant
Copy Copy
1
2const tenantId: string = "acme-corporation";
3const billing: BillingInfo = { planId: "pro", billingContactEmail: "finance@acme-corp.com", currency: "USD" };
4const domainConfig: APIDomainConfiguration = { primaryDomain: "comments.acme-corp.com", allowedDomains: ["acme-corp.com", "www.acme-corp.com"], enforceHttps: true };
5const importedSites: ImportedSiteType[] = [{ siteId: "site-001", url: "https://blog.acme-corp.com", name: "Acme Blog" }]; // opcjonalne
6const createBody: CreateTenantBody = { tenantName: "Acme Corporation", adminEmail: "admin@acme-corp.com", billingInfo: billing, domainConfiguration: domainConfig, importedSites, enableModeration: true };
7const response: CreateTenant200Response = await createTenant(tenantId, createBody);
8

Usuń najemcę Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
id string Tak
sure string Nie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteTenant
Copy Copy
1
2const tenantId: string = "tenant_7b3f1a9e";
3const id: string = "flag_9c4d2b1a";
4const sure: string = "yes_confirm_delete";
5
6const result: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
7console.log(result);
8

Pobierz najemcę Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetTenant200Response

Przykład

Przykład getTenant
Copy Copy
1
2const tenantId: string = "tenant_acme_corp";
3const id: string = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4interface GetOptions { includeDeleted?: boolean; locale?: string; }
5const options: GetOptions = { locale: "en-US" };
6const result: GetTenant200Response = await getTenant(tenantId, id);
7

Pobierz najemców Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
meta string Nie
skip number Nie

Odpowiedź

Zwraca: GetTenants200Response

Przykład

Przykład getTenants
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9f2d1b7c';
4 const meta: string = 'include=domains,billing,customConfig';
5 const skip: number = 20;
6 const response: GetTenants200Response = await getTenants(tenantId, meta, skip);
7 console.log(response);
8})();
9

Zaktualizuj najemcę Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak
updateTenantBody UpdateTenantBody Tak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateTenant
Copy Copy
1
2const tenantId: string = "tenant_01H4ZQ7KABCD";
3const id: string = "site_9f8e7d6c";
4const apiDomainConfiguration: APIDomainConfiguration = {
5 primaryDomain: "comments.acme.com",
6 allowSubdomains: true
7};
8const billingInfo: BillingInfo = {
9 planName: "Business",
10 billingContactEmail: "billing@acme.com",
11 seats: 25
12};
13const updateTenantBody: UpdateTenantBody = {
14 displayName: "Acme Corporation Comments",
15 apiDomainConfiguration,
16 billingInfo, // parametr opcjonalny (przykład)
17 enableModeration: true
18};
19const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
20

Prześlij obraz Internal Link

Prześlij i zmień rozmiar obrazu

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
file Blob Tak
sizePreset SizePreset Nie
urlId string Nie

Odpowiedź

Zwraca: UploadImageResponse


Pobierz postęp odznaki użytkownika po ID Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetUserBadgeProgressById200Response


Pobierz postęp odznaki użytkownika po ID użytkownika Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
userId string Tak

Odpowiedź

Zwraca: GetUserBadgeProgressById200Response


Pobierz listę postępów odznak użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
userId string Nie
limit number Nie
skip number Nie

Odpowiedź

Zwraca: GetUserBadgeProgressList200Response


Utwórz odznakę użytkownika Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
createUserBadgeParams CreateUserBadgeParams Tak

Odpowiedź

Zwraca: CreateUserBadge200Response


Usuń odznakę użytkownika Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: UpdateUserBadge200Response


Pobierz odznakę użytkownika Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetUserBadge200Response


Pobierz odznaki użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
userId string Nie
badgeId string Nie
type number Nie
displayedOnComments boolean Nie
limit number Nie
skip number Nie

Odpowiedź

Zwraca: GetUserBadges200Response


Zaktualizuj odznakę użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
updateUserBadgeParams UpdateUserBadgeParams Tak

Odpowiedź

Zwraca: UpdateUserBadge200Response


Pobierz licznik powiadomień użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
sso string Nie

Odpowiedź

Zwraca: GetUserNotificationCount200Response

Pobierz powiadomienia użytkownika Internal Link

Parametry

Name Type Wymagane Opis
tenantId string Tak
pageSize number Nie
afterId string Nie
includeContext boolean Nie
afterCreatedAt number Nie
unreadOnly boolean Nie
dmOnly boolean Nie
noDm boolean Nie
includeTranslations boolean Nie
sso string Nie

Odpowiedź

Zwraca: GetUserNotifications200Response


Zresetuj licznik powiadomień użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
sso string Nie

Odpowiedź

Zwraca: ResetUserNotifications200Response


Zresetuj powiadomienia użytkownika Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
afterId string Nie
afterCreatedAt number Nie
unreadOnly boolean Nie
dmOnly boolean Nie
noDm boolean Nie
sso string Nie

Odpowiedź

Zwraca: ResetUserNotifications200Response


Zaktualizuj status subskrypcji komentarzy powiadomień użytkownika Internal Link


Włącz lub wyłącz powiadomienia dla konkretnego komentarza.

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
notificationId string Tak
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum Tak
commentId string Tak
sso string Nie

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response


Zaktualizuj status subskrypcji strony powiadomień użytkownika Internal Link

Włącz lub wyłącz powiadomienia dla strony. Gdy użytkownicy subskrybują stronę, tworzone są powiadomienia dla nowych komentarzy głównych, a także

Parametry

Name Type Required Description
tenantId string Tak
urlId string Tak
url string Tak
pageTitle string Tak
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum Tak
sso string Nie

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response

Zaktualizuj status powiadomienia użytkownika Internal Link


Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
notificationId string Tak
newStatus UpdateUserNotificationStatusNewStatusEnum Tak
sso string Nie

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response


Pobierz statusy obecności użytkowników Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlIdWS string Tak
userIds string Tak

Odpowiedź

Zwraca: GetUserPresenceStatuses200Response

Wyszukaj użytkowników Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak
usernameStartsWith string Tak
mentionGroupIds Array Nie
sso string Nie

Odpowiedź

Zwraca: SearchUsers200Response


Pobierz użytkownika Internal Link

Parametry

Name Type Required Description
tenantId string Tak
id string Tak

Odpowiedź

Zwraca: GetUser200Response

Przykład

getUser Przykład
Copy Copy
1
2const tenantId: string = "acme-publishing-42";
3const userIdOptional: string | undefined = "user_9d7b4c"; // może być niezdefiniowane w niektórych przepływach (opcjonalne)
4const id: string = userIdOptional ?? "user_default_0001";
5const result: GetUser200Response = await getUser(tenantId, id);
6console.log(result);
7

Utwórz głos Internal Link

Parametry

Name Type Required Description
tenantId string Tak
commentId string Tak
direction CreateVoteDirectionEnum Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: VoteComment200Response

Przykład

Przykład createVote
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-812';
4 const commentId: string = '5e8f8b7a-3d4b-4f1b-9a2e-1c9f2d6a7b8c';
5 const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.UP;
6 const anonUserId: string = 'anon-84b9c2d';
7 const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
8 console.log(voteResult);
9})();
10

Usuń głos Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
id string Tak
editKey string Nie

Odpowiedź

Zwraca: DeleteCommentVote200Response

Przykład

Przykład deleteVote
Copy Copy
1
2const tenantId: string = 'tenant_7f3b21c9';
3const id: string = 'vote_4a2d9f1b';
4const editKey: string = 'edit_92b7c6a1';
5
6const resultWithoutEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id);
7const resultWithEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
8

Pobierz głosy Internal Link

Parametry

Nazwa Typ Wymagane Opis
tenantId string Tak
urlId string Tak

Odpowiedź

Zwraca: GetVotes200Response

Przykład

Przykład użycia getVotes
Copy Copy
1
2const tenantId: string = 'tenant_9f8b3c_prod';
3const urlId: string = '/news/2026/typescript-ecosystem-update';
4const votes: GetVotes200Response = await getVotes(tenantId, urlId);
5// Jeśli istniałby opcjonalny parametr, np. includeHidden, można by go użyć w ten sposób:
6// const votesWithHidden: GetVotes200Response = await getVotes(tenantId, urlId, { includeHidden: true });
7

Pobierz głosy dla użytkownika Internal Link

Parametry

Name Type Required Description
tenantId string Tak
urlId string Tak
userId string Nie
anonUserId string Nie

Odpowiedź

Zwraca: GetVotesForUser200Response

Przykład

Przykład getVotesForUser
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const urlId: string = 'news/2026/01/12/product-launch';
4const userId: string = 'user_9c3f2b';
5const anonUserId: string = 'anon_d4e7a1';
6
7const votesForUser: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId);
8const votesForAnon: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
9

Potrzebujesz pomocy?

Jeżeli napotkasz jakiekolwiek problemy lub masz pytania dotyczące SDK JavaScript/TypeScript, prosimy:

Współtworzenie

Wkłady są mile widziane! Odwiedź repozytorium na GitHubie po wytyczne dotyczące współpracy.