FastComments.com

FastComments JavaScript/TypeScript SDK

Dies ist das offizielle JavaScript/TypeScript-SDK für FastComments.

Verwalten Sie Kommentare, Benutzer, SSO und Moderation von Node.js oder dem Browser aus.

Repository

Auf GitHub ansehen


KI‑Coding‑Agenten Internal Link

skills.sh

Geben Sie Ihrem Coding‑Agent den FastComments‑Kontext, den er benötigt – Widgets, Konfiguration, Secure SSO, die REST‑API und die SDKs:

npx skills add fastcomments/skills

Funktioniert mit Claude Code, Codex, Cursor, Copilot, Gemini und jedem anderen Agenten, den das skills CLI unterstützt.

Installation Internal Link

npm

npm install fastcomments-sdk

API‑Dokumentation Internal Link


Vollständige API-Referenz: docs/api/README.md

Browser‑ vs Server‑Kompatibilität Internal Link


Dieses SDK verwendet zwei Einstiegspunkte, um optimale Kompatibilität sicherzustellen und Laufzeitfehler zu vermeiden:

  • fastcomments-sdk/browser - Browser-sichere Version mit nativer fetch-Unterstützung
  • fastcomments-sdk/server - Vollständige Node.js-Version mit SSO-Unterstützung
  • fastcomments-sdk (Standard) - Nur Typen, sicher überall zu importieren

Öffentliche vs gesicherte APIs Internal Link

Das SDK stellt diese API-Klassen bereit:

  • DefaultApi - Gesicherte Endpunkte, die Ihren API-Schlüssel zur Authentifizierung benötigen. Verwenden Sie diese für serverseitige Vorgänge.
  • PublicApi - Öffentliche Endpunkte, die ohne API-Schlüssel zugänglich sind. Diese können direkt von Browsern/Mobilgeräten/etc. aufgerufen werden.
  • ModerationApi - Moderator-Dashboard-Endpunkte (Kommentar-Moderation, Sperren, Abzeichen, Vertrauensfaktor, Suche). Authentifiziert durch die Sitzung des Moderators; übergeben Sie den sso-Abfrageparameter für SSO-authentifizierte Moderatoren.
  • HiddenApi - Interne/Admin-Endpunkte für erweiterte Anwendungsfälle.

Beispiel: Verwendung der Public API (browser-sicher)

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

const publicApi = new PublicApi();

// Kommentare für eine Seite abrufen (kein API-Schlüssel erforderlich)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Beispiel: Verwendung der Default API (nur serverseitig)

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

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

// Kommentare mit vollem Administratorzugriff abrufen
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Beispiel: Verwendung der Moderation API

import { createFastCommentsSDK } from 'fastcomments-sdk/server';

const sdk = createFastCommentsSDK({ /* basePath usw. */ });

// Durch Moderator authentifizierte Aufrufe (Session-Cookie oder `sso` für einen SSO-Moderator übergeben).
const comments = await sdk.moderationApi.getApiComments({
  tenantId: 'your-tenant-id'
});

await sdk.moderationApi.postSetCommentSpamStatus({
  commentId: 'comment-id',
  spam: true
});

SSO (Single Sign‑On)‑Integration Internal Link

FastComments unterstützt SSO, um sich in Ihr bestehendes Benutzerauthentifizierungssystem zu integrieren. Die SSO-Funktionalität ist nur im Server-Export verfügbar, da sie Node.js-Crypto-Funktionen benötigt.

Einfache SSO (nur serverseitig)

Einfache SSO sollte serverseitig erzeugt und an den Client gesendet werden:

// Server-seitiger Code (Node.js/Backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Erstelle einfache SSO mit dem eingebauten Helfer  
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();

// Sende ssoToken an Ihren Client-Code
// Der Client-Code kann dieses Token dann mit dem Browser-SDK verwenden

Sichere SSO (serverseitig, empfohlen)

Sichere SSO sollte serverseitig implementiert werden und bietet bessere Sicherheit:

// Server-seitiger Code (Node.js/Backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Erstelle sichere SSO mit dem eingebauten Helfer
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();

// Mit API-Aufrufen auf dem Server verwenden
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Oder sende ssoConfig an den Client zur Browser-Verwendung

Verwendung von SSO im Browser (mit servergeneriertem Token)

// Client-seitiger Code (Browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Hole SSO-Token von Ihrem Server-Endpunkt
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 mit Kommentar-Erstellung

// Server-seitig: SSO und Kommentar erstellen
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)
});

Häufige Anwendungsfälle Internal Link

Kommentare für eine Seite abrufen

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

Einen Kommentar erstellen

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

Für einen Kommentar abstimmen

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 für Upvote, -1 für Downvote
  }
});

Benutzerverwaltung (erfordert API-Schlüssel)

// Benutzer suchen (erfordert DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Live‑Events (Echtzeit‑Updates) Internal Link

Abonnieren Sie Live-Ereignisse, um Echtzeit-Updates für Kommentare, Abstimmungen und andere Aktivitäten zu erhalten.

Ereignisse auf Seitenebene

Abonnieren Sie Live-Ereignisse für eine bestimmte Seite (Kommentare, Abstimmungen usw.):

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

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

// Subscribe to live events for a page
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (get this from getComments response)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Aktualisieren Sie Ihre UI mit dem neuen Kommentar
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Aktualisieren Sie die Abstimmungszahlen in Ihrer UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Geben Sie true zurück, wenn das Ereignis verarbeitet wurde
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

Benutzerbezogene Ereignisse abonnieren

Abonnieren Sie benutzerspezifische Ereignisse (Benachrichtigungen, Erwähnungen usw.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Get this from getComments response
};

// Subscribe to user's personal feed
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Benachrichtigung in Ihrer UI anzeigen
        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');
  }
);

// Close when done
userSubscription.close();

Abrufen von userIdWS

Der userIdWS Parameter wird für Live-Ereignisse benötigt und kann aus API-Antworten abgerufen werden:

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

// Extract userIdWS from the response
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Now you can subscribe to live events
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Broadcast‑IDs Internal Link

Sie werden sehen, dass Sie in einigen API-Aufrufen eine broadcastId übergeben sollen. Wenn Sie Ereignisse erhalten, bekommen Sie diese ID zurück, sodass Sie das Ereignis ignorieren können, falls Sie Änderungen auf dem Client optimistisch anwenden möchten (was Sie wahrscheinlich tun sollten, da es die beste Erfahrung bietet). Geben Sie hier eine UUID an. Die ID sollte so eindeutig sein, dass sie in einer Browsersitzung nicht zweimal vorkommt.

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() // Eindeutige ID für diese Operation
  }
});

Fehlerbehandlung 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);
  }
}

createAgentTenant Internal Link

Erstellt ein neues Testkonto für einen KI‑Agenten ohne menschliche Anmeldung. Es wird kein API‑Schlüssel benötigt, um dies aufzurufen.

Die Antwort enthält die Mandanten‑ID, einen API‑Schlüssel, der sofort gegen die REST‑API und den MCP‑Server funktioniert, sowie eine Claim‑URL. Geben Sie die Claim‑URL an die Person, für die Sie arbeiten: Wenn sie diese öffnet, während sie bei FastComments angemeldet ist, wird das Konto mit ihr verknüpft. Nicht beanspruchte Konten und deren Schlüssel werden 72 Stunden nach Erstellung gelöscht. Bis zur Beanspruchung hat das Konto die üblichen Testlimits.

Parameter

NameTypErforderlichBeschreibung
createAgentTenantBodyCreateAgentTenantBodyJa

Antwort

Rückgabe: CreateAgentTenantResponse

Beispiel

createAgentTenant Beispiel
Copy Copy
1
2const tenantBody: CreateAgentTenantBody = {
3 name: "Acme Corp",
4 domain: "acme.example.com",
5 contactEmail: "admin@acme.example.com", // optional
6 planId: 3 // optional
7};
8
9const result: CreateAgentTenantResponse = await createAgentTenant(tenantBody);
10

aggregate Internal Link

Aggregiert Dokumente durch Gruppierung (falls groupBy angegeben ist) und Anwendung mehrerer Operationen.
Verschiedene Operationen (z. B. sum, countDistinct, avg usw.) werden unterstützt.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
aggregationRequestAggregationRequestYes
parentTenantIdstringNo
includeStatsbooleanNo

Response

Rückgabe: AggregateResponse

Beispiel

Aggregationsbeispiel
Copy Copy
1
2const tenantId: string = "tenant-12345";
3
4const aggregationRequest: AggregationRequest = {
5 predicates: [
6 {
7 field: "status",
8 operator: "eq",
9 value: { type: "string", value: "approved" }
10 }
11 ],
12 operations: [
13 { type: "count", field: "commentId" }
14 ],
15 sort: { field: "createdAt", direction: "desc" }
16};
17
18const parentTenantId: string = "parent-001";
19const includeStats: boolean = true;
20
21const result: AggregateResponse = await aggregate(
22 tenantId,
23 aggregationRequest,
24 parentTenantId,
25 includeStats
26);
27

getAuditLogs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
limitnumberNein
skipnumberNein
orderSORTDIRNein
afternumberNein
beforenumberNein
usernamestringNein
ipstringNein
crudTypestringNein
resourceNamestringNein
targetIdstringNein
targetstringNein
includeManagedTenantsbooleanNein

Antwort

Rückgabe: GetAuditLogsResponse

Beispiel

getAuditLogs Beispiel
Copy Copy
1
2async function fetchAuditLogs(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = { direction: "DESC" };
7 const after: number = Date.now() - 86400000; // vor 1 Tag
8 const before: number = Date.now();
9 const username: string = "alice.smith";
10 const ip: string = "198.51.100.23";
11 const crudType: string = "CREATE";
12 const resourceName: string = "thread";
13 const targetId: string = "thread_45678";
14 const target: string = "forum_12";
15 const includeManagedTenants: boolean = false;
16
17 const logs: GetAuditLogsResponse = await getAuditLogs(
18 tenantId,
19 limit,
20 skip,
21 order,
22 after,
23 before,
24 username,
25 ip,
26 crudType,
27 resourceName,
28 targetId,
29 target,
30 includeManagedTenants
31 );
32
33 console.log(logs);
34}
35
36fetchAuditLogs();
37

blockFromCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Rückgabe: BlockSuccess

Beispiel

blockFromCommentPublic Beispiel
Copy Copy
1
2async function demoBlock() {
3 const tenantId: string = "tenant_9f8b7c";
4 const commentId: string = "comment_3e2d1a";
5 const blockParams: PublicBlockFromCommentParams = {
6 reason: "harassment",
7 expiresInHours: 48
8 };
9 const ssoToken: string = "sso_5g6h7i";
10
11 const resultWithSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams, ssoToken);
12 const resultWithoutSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams);
13}
14

unBlockCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Rückgabe: UnblockSuccess

Beispiel

unBlockCommentPublic Beispiel
Copy Copy
1
2const tenantId: string = "c9f1e2a4-5b6d-4f8a-9c2e-123456789abc";
3const commentId: string = "d3b2c1a9-8f7e-4d6b-9a0b-987654321def";
4
5const unblockParams: PublicBlockFromCommentParams = {
6 reason: "User request resolved",
7 moderatorId: "mod-456"
8};
9
10const ssoToken: string = "sso-token-789xyz";
11
12const unblockResult: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams, ssoToken);
13const unblockResultNoSso: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams);
14

checkedCommentsForBlocked Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdsstringJa
ssostringNein

Antwort

Rückgabe: CheckBlockedCommentsResponse

Beispiel

checkedCommentsForBlocked Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentIds: string = "cmt_9876,cmt_5432";
5 const ssoToken: string = "sso_user_abc123";
6
7 const responseWithSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8 const responseWithoutSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds);
9})();
10

blockUserFromComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Rückgabe: BlockSuccess

Beispiel

blockUserFromComment Beispiel
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant-123e4567-e89b-12d3-a456-426614174000";
4 const commentId: string = "cmt-9876543210";
5 const blockParams: BlockFromCommentParams = {
6 reason: "spam",
7 durationHours: 24
8 };
9 const userId: string = "user-abc123";
10 const anonUserId: string = "anon-xyz789";
11 const result: BlockSuccess = await blockUserFromComment(tenantId, commentId, blockParams, userId, anonUserId);
12 console.log(result);
13}
14demo();
15

createCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNein
ssostringNein

Antwort

Rückgabe: SaveCommentsResponseWithPresence

Beispiel

createCommentPublic Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant-456";
4 const urlId: string = "url-789";
5 const broadcastId: string = "broadcast-101112";
6 const commentData: CommentData = { text: "This is a comment", userId: "user-123" };
7 const sessionId: string = "session-131415";
8 const sso: string = "sso-token-xyz";
9 const result: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
10 const resultNoOpt: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData);
11}
12

deleteComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
contextUserIdstringNein
isLivebooleanNein

Antwort

Rückgabe: DeleteCommentResult

Beispiel

deleteComment Beispiel
Copy Copy
1
2async function removeComment(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_9876";
5 const contextUserId: string = "user_42";
6 const result: DeleteCommentResult = await deleteComment(tenantId, commentId, contextUserId, true);
7 console.log(result);
8}
9removeComment();
10

deleteCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
editKeystringNein
ssostringNein

Antwort

Rückgabe: PublicAPIDeleteCommentResponse

Beispiel

deleteCommentPublic Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const editKey: string = "edit_abc123";
7 const sso: string = "sso_token_xyz";
8
9 const resultWithoutOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId);
10 const resultWithOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
11})();
12

deleteCommentVote Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNein
ssostringNein

Antwort

Rückgabe: VoteDeleteResponse

Beispiel

deleteCommentVote Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const voteId: string = "vote_555";
5const urlId: string = "url_abcde";
6const broadcastId: string = "brd_2023";
7const editKey: string = "edit_abc123"; // optional
8const ssoToken: string = "sso_token_xyz"; // optional
9
10// Aufruf nur mit den erforderlichen Parametern und einem optionalen Parameter
11const deleteResult: VoteDeleteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18);
19
20// Aufruf mit beiden optionalen Parametern
21const deleteResultWithSSO: VoteDeleteResponse = await deleteCommentVote(
22 tenantId,
23 commentId,
24 voteId,
25 urlId,
26 broadcastId,
27 editKey,
28 ssoToken
29);
30

flagComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Rückgabe: FlagCommentResponse

Beispiel

flagComment Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const userId: string = "user-42";
6 const anonUserId: string = "anon-abc123";
7
8 const response: FlagCommentResponse = await flagComment(tenantId, commentId, userId, anonUserId);
9 console.log(response);
10})();
11

getComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIGetCommentResponse

Beispiel

getComment Beispiel
Copy Copy
1
2async function fetchComment(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 const response: APIGetCommentResponse = await getComment(tenantId, commentId);
7 const comment: APIComment | undefined = response.comment;
8
9 // Demonstration optionaler Felder
10 const badgeInfo: CommentUserBadgeInfo | undefined = comment?.user?.badge;
11 const hashtags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashtags;
12 const mentions: CommentUserMentionInfo[] | undefined = comment?.user?.mentions;
13 const meta: APICommentBaseMeta | undefined = comment?.meta;
14
15 console.log(comment?.id, badgeInfo?.type);
16}
17
18fetchComment();
19

getComments Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein
limitnumberNein
skipnumberNein
asTreebooleanNein
skipChildrennumberNein
limitChildrennumberNein
maxTreeDepthnumberNein
urlIdstringNein
userIdstringNein
anonUserIdstringNein
contextUserIdstringNein
hashTagstringNein
parentIdstringNein
directionSortDirectionsNein
fromDatenumberNein
toDatenumberNein

Antwort

Rückgabe: APIGetCommentsResponse

Beispiel

getComments Beispiel
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const page: number = 1;
5 const limit: number = 50;
6 const asTree: boolean = false;
7 const direction: SortDirections = "asc";
8 const fromDate: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30 days ago
9 const toDate: number = Date.now();
10
11 const commentsResponse: APIGetCommentsResponse = await getComments(
12 tenantId,
13 page,
14 limit,
15 undefined,
16 asTree,
17 undefined,
18 undefined,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 undefined,
24 undefined,
25 undefined,
26 direction,
27 fromDate,
28 toDate
29 );
30
31 console.log(commentsResponse);
32}
33

getCommentsPublic Internal Link

req tenantId urlId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringYes
pagenumberNo
directionSortDirectionsNo
ssostringNo
skipnumberNo
skipChildrennumberNo
limitnumberNo
limitChildrennumberNo
countChildrenbooleanNo
fetchPageForCommentIdstringNo
includeConfigbooleanNo
countAllbooleanNo
includei10nbooleanNo
localestringNo
modulesstringNo
isCrawlerbooleanNo
includeNotificationCountbooleanNo
asTreebooleanNo
maxTreeDepthnumberNo
useFullTranslationIdsbooleanNo
parentIdstringNo
searchTextstringNo
hashTagsArrayNo
userIdstringNo
customConfigStrstringNo
afterCommentIdstringNo
beforeCommentIdstringNo

Antwort

Rückgabe: GetCommentsResponseWithPresencePublicComment

Beispiel

getCommentsPublic Beispiel
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "tenant-42",
4 urlId: string = "post-2023-09-15",
5 page: number = 1,
6 direction: SortDirections = "desc",
7 limit: number = 30,
8 includeConfig: boolean = true,
9 locale: string = "en-US",
10 isCrawler: boolean = false,
11 asTree: boolean = true,
12 maxTreeDepth: number = 2,
13 searchText: string = "fastcomments",
14 hashTags: string[] = ["fastcomments","typescript"],
15 userId: string = "user-123";
16
17 const result: GetCommentsResponseWithPresencePublicComment = await getCommentsPublic(
18 tenantId,
19 urlId,
20 page,
21 direction,
22 undefined,
23 undefined,
24 undefined,
25 limit,
26 undefined,
27 undefined,
28 undefined,
29 includeConfig,
30 undefined,
31 undefined,
32 locale,
33 undefined,
34 isCrawler,
35 undefined,
36 asTree,
37 maxTreeDepth,
38 undefined,
39 undefined,
40 searchText,
41 hashTags,
42 userId
43 );
44}
45

getCommentText Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

Antwort

Rückgabe: PublicAPIGetCommentTextResponse

Beispiel

getCommentText Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const commentId: string = "comment-987654321";
4const editKey: string = "edit-key-abc123";
5const sso: string = "sso-token-xyz789";
6
7const commentWithEdit: PublicAPIGetCommentTextResponse = await getCommentText(
8 tenantId,
9 commentId,
10 editKey,
11 sso
12);
13
14const commentBasic: PublicAPIGetCommentTextResponse = await getCommentText(
15 tenantId,
16 commentId
17);
18

getCommentVoteUserNames Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
dirnumberJa
ssostringNein

Antwort

Rückgabe: GetCommentVoteUserNamesSuccessResponse

Beispiel

getCommentVoteUserNames Beispiel
Copy Copy
1
2async function example() {
3 const tenantId: string = 'tenant-9876';
4 const commentId: string = 'comment-abc123';
5 const dir: number = 1;
6 const ssoToken: string = 'sso-xyz789';
7
8 const resultWithSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9 const resultWithoutSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir);
10}
11

lockComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

lockComment Beispiel
Copy Copy
1
2async function demoLockComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const ssoToken: string = "sso_user_abc";
7
8 const resultWithSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId);
10}
11
12demoLockComment();
13

pinComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Rückgabe: ChangeCommentPinStatusResponse

Beispiel

pinComment Beispiel
Copy Copy
1
2async function demoPinComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6
7 const resultWithoutSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId);
8 const ssoToken: string = "sso_abcde12345";
9 const resultWithSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId, ssoToken);
10}
11
12demoPinComment();
13

saveComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Antwort

Rückgabe: APISaveCommentResponse

Beispiel

saveComment Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const commentParams: CreateCommentParams = {
5 content: "This is a comment with a mention and a hashtag.",
6 userId: "user_987",
7 mentions: [
8 { userId: "user_123", start: 27, end: 34 }
9 ] as CommentUserMentionInfo[],
10 hashtags: [
11 { tag: "feedback", start: 45, end: 53 }
12 ] as CommentUserHashTagInfo[],
13 poll: {
14 question: "Do you like this feature?",
15 options: ["Yes", "No"]
16 } as CommentPollInput,
17};
18
19const response: APISaveCommentResponse = await saveComment(
20 tenantId,
21 commentParams,
22 true, // istLive
23 true, // Spamprüfung durchführen
24 false, // E-Mails senden
25 true // Benachrichtigungen füllen
26);
27

saveCommentsBulk Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
createCommentParamsArrayYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Antwort

Rückgabe: Array<SaveCommentsBulkResponse

Beispiel

saveCommentsBulk Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mention1: CommentUserMentionInfo = {
5 userId: "user_002",
6 start: 10,
7 end: 20,
8};
9
10const hashtag1: CommentUserHashTagInfo = {
11 tag: "news",
12 start: 30,
13 end: 35,
14};
15
16const poll1: CommentPollInput = {
17 question: "Did you find this helpful?",
18 options: ["Yes", "No"],
19};
20
21const commentA: CreateCommentParams = {
22 content: "This is a great article!",
23 userId: "user_001",
24 mentions: [mention1],
25 hashtags: [hashtag1],
26 poll: poll1,
27};
28
29const commentB: CreateCommentParams = {
30 content: "I have a question about the topic.",
31 userId: "user_003",
32};
33
34const createCommentParams: CreateCommentParams[] = [commentA, commentB];
35
36const isLive: boolean = true;
37const doSpamCheck: boolean = false;
38const sendEmails: boolean = true;
39const populateNotifications: boolean = false;
40
41const results: SaveCommentsBulkResponse[] = await saveCommentsBulk(
42 tenantId,
43 createCommentParams,
44 isLive,
45 doSpamCheck,
46 sendEmails,
47 populateNotifications
48);
49

setCommentText Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNein
ssostringNein

Antwort

Rückgabe: PublicAPISetCommentTextResponse

Beispiel

setCommentText Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6 const commentTextUpdateRequest: CommentTextUpdateRequest = {
7 text: "Revised comment text with additional details."
8 };
9 const editKey: string = "edit_abc123";
10 const sso: string = "sso_token_456def";
11
12 const response: PublicAPISetCommentTextResponse = await setCommentText(
13 tenantId,
14 commentId,
15 broadcastId,
16 commentTextUpdateRequest,
17 editKey,
18 sso
19 );
20})();
21

unBlockUserFromComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Rückgabe: UnblockSuccess

Beispiel

unBlockUserFromComment Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const commentId: string = "comment-4a3b2c1d";
5 const params: UnBlockFromCommentParams = {
6 reason: "User appealed the block",
7 adminNote: "Reviewed and unblocked"
8 };
9 const userId: string = "user-5e6f7g8h";
10 const anonUserId: string = "anon-1a2b3c4d";
11 const result: UnblockSuccess = await unBlockUserFromComment(
12 tenantId,
13 commentId,
14 params,
15 userId,
16 anonUserId
17 );
18 console.log(result);
19})();
20

unFlagComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Antwort

Rückgabe: FlagCommentResponse

Beispiel

unFlagComment Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt-20230915-001";
5 const userId: string = "user-42";
6
7 const unflaggedByUser: FlagCommentResponse = await unFlagComment(tenantId, commentId, userId);
8 const unflaggedByAnon: FlagCommentResponse = await unFlagComment(tenantId, commentId, undefined, "anon-xyz");
9
10 console.log(unflaggedByUser, unflaggedByAnon);
11}
12

unLockComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

unLockComment Beispiel
Copy Copy
1
2async function demoUnlock() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5 const broadcastId: string = "brd_987654321";
6 const ssoToken: string = "sso_abcdef123456";
7
8 const resultWithoutSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId);
9 const resultWithSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId, ssoToken);
10}
11

unPinComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Rückgabe: ChangeCommentPinStatusResponse

Beispiel

unPinComment Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const broadcastId: string = "broadcast-2023-09-15";
6 const ssoToken: string = "sso-abc123";
7
8 const result: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId);
10})();
11

updateComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNein
doSpamCheckbooleanNein
isLivebooleanNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateComment Beispiel
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "comment-9876543210";
4const updateParams: UpdatableCommentParams = {
5 content: "Edited comment content",
6 isApproved: true
7};
8
9const contextUserId: string = "user-11223344";
10const doSpamCheck: boolean = true;
11const isLive: boolean = false;
12
13const response: APIEmptyResponse = await updateComment(
14 tenantId,
15 commentId,
16 updateParams,
17 contextUserId,
18 doSpamCheck,
19 isLive
20);
21

voteComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
urlIdstringJa
broadcastIdstringJa
voteBodyParamsVoteBodyParamsJa
sessionIdstringNein
ssostringNein

Antwort

Rückgabe: VoteResponse

Beispiel

voteComment Beispiel
Copy Copy
1
2async function runVote() {
3 const tenantId: string = 'tenant_001';
4 const commentId: string = 'cmt_987654';
5 const urlId: string = 'url_12345';
6 const broadcastId: string = 'brd_56789';
7 const voteBody: VoteBodyParams = { direction: 'up' };
8 const sessionId: string = 'sess_abc123';
9 const sso: string = 'sso_token_xyz';
10 const response: VoteResponse = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBody,
16 sessionId,
17 sso
18 );
19 console.log(response);
20}
21runVote();
22

getCommentsForUser Internal Link

Parameter

NameTypErforderlichBeschreibung
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagenumberNo
includei10nbooleanNo
localestringNo
isCrawlerbooleanNo

Antwort

Rückgabe: GetCommentsForUserResponse

Beispiel

getCommentsForUser Beispiel
Copy Copy
1
2const userId: string = '550e8400-e29b-41d4-a716-446655440000';
3const direction: SortDirections = SortDirections.Descending;
4const page: number = 3;
5const includei10n: boolean = true;
6const locale: string = 'fr-FR';
7const isCrawler: boolean = false;
8
9const commentsResponse: GetCommentsForUserResponse = await getCommentsForUser(
10 userId,
11 direction,
12 undefined,
13 page,
14 includei10n,
15 locale,
16 isCrawler
17);
18

addDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Antwort

Rückgabe: AddDomainConfigResponse

Beispiel

addDomainConfig Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // description ist optional und hier weggelassen
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

deleteDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
domainstringYes

Antwort

Rückgabe: DeleteDomainConfigResponse

Beispiel

deleteDomainConfig Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = 'acme-corp';
4 const domain: string = 'blog.acme.com';
5 const response: DeleteDomainConfigResponse = await deleteDomainConfig(tenantId, domain);
6 console.log(response);
7}
8runExample();
9

getDomainConfig Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainstringJa

Antwort

Rückgabe: GetDomainConfigResponse

Beispiel

getDomainConfig Beispiel
Copy Copy
1
2async function main() {
3 const tenantId: string = "acme-corp-123";
4 const domain: string = "blog.acme.com";
5 const config: GetDomainConfigResponse = await getDomainConfig(tenantId, domain);
6 console.log(config);
7}
8main();
9

getDomainConfigs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Returns: GetDomainConfigsResponse

Beispiel

Beispiel für getDomainConfigs
Copy Copy
1
2async function fetchDomainConfigs(): Promise<void> {
3 const tenantId: string = "acme-corp-567";
4 const configs: GetDomainConfigsResponse = await getDomainConfigs(tenantId);
5 console.log(configs);
6}
7

patchDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Antwort

Rückgabe: PatchDomainConfigResponse

Beispiel

patchDomainConfig Beispiel
Copy Copy
1
2async function updateDomainConfig() {
3 const tenantId: string = "tenant_98765";
4 const domainToUpdate: string = "forum.mycompany.com";
5 const patchParams: PatchDomainConfigParams = {
6 enableComments: true,
7 moderationLevel: "strict",
8 allowAnonymous: false, // optionaler Parameter demonstriert
9 };
10 const response: PatchDomainConfigResponse = await patchDomainConfig(tenantId, domainToUpdate, patchParams);
11 console.log(response);
12}
13
14updateDomainConfig();
15

putDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

Antwort

Rückgabe: PutDomainConfigResponse

Beispiel

putDomainConfig Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = 'tenant-9f8c7b1a';
4 const domainToUpdate: string = 'comments.mywebsite.org';
5 const updateDomainConfigParams: UpdateDomainConfigParams = {
6 enableModeration: true,
7 // optionales Feld weggelassen, z.B., maxCommentLength?: number
8 };
9 const result: PutDomainConfigResponse = await putDomainConfig(
10 tenantId,
11 domainToUpdate,
12 updateDomainConfigParams,
13 );
14 console.log(result);
15}
16runExample();
17

createEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Antwort

Rückgabe: CreateEmailTemplateResponse

Beispiel

createEmailTemplate Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const templateBody: CreateEmailTemplateBody = {
5 name: "Weekly Summary",
6 subject: "Your weekly activity report",
7 // optionales Feld
8 replyTo: "no-reply@myapp.com",
9 htmlContent: "<p>Hello \{{userName}}, here is your summary...</p>"
10};
11
12const response: CreateEmailTemplateResponse = await createEmailTemplate(tenantId, templateBody);
13
14console.log(response.template.id);
15

deleteEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteEmailTemplate Beispiel
Copy Copy
1
2interface APIStatus {
3 code: number;
4 message: string;
5}
6
7interface APIEmptyResponse {
8 status?: APIStatus;
9}
10
11(async () => {
12 const tenantId: string = "tenant_12345";
13 const templateId: string = "template_987";
14
15 const result: APIEmptyResponse = await deleteEmailTemplate(tenantId, templateId);
16})();
17

deleteEmailTemplateRenderError Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
errorIdstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteEmailTemplateRenderError Beispiel
Copy Copy
1
2async function removeRenderError() {
3 const tenantId: string = "acme-corp-tenant";
4 const templateId: string = "welcome-email-template";
5 const errorId: string = "render-err-20230915";
6
7 const result: APIEmptyResponse = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
8}
9

getEmailTemplate Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Antwort

Rückgabe: GetEmailTemplateResponse

Beispiel

getEmailTemplate Beispiel
Copy Copy
1
2async function fetchTemplate() {
3 const tenantId: string = "acme-corp-123";
4 const templateId: string = "welcome-email-456";
5 const response: GetEmailTemplateResponse = await getEmailTemplate(tenantId, templateId);
6 const status: APIStatus | undefined = response.status;
7 const customTemplate: CustomEmailTemplate | undefined = response.template;
8}
9

getEmailTemplateDefinitions Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Rückgabe: GetEmailTemplateDefinitionsResponse

Beispiel

getEmailTemplateDefinitions Beispiel
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-456";
4 const result: GetEmailTemplateDefinitionsResponse = await getEmailTemplateDefinitions(tenantId);
5 const status: APIStatus = result.status;
6 const definitions: EmailTemplateDefinition[] = result.definitions ?? [];
7 console.log(`Status: ${status.code}, Templates: ${definitions.length}`);
8}
9

getEmailTemplateRenderErrors Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
skipnumberNein

Antwort

Rückgabe: GetEmailTemplateRenderErrorsResponse

Beispiel

getEmailTemplateRenderErrors Beispiel
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_9876";
5
6 const resultWithSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId, 10);
7 const resultWithoutSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId);
8
9 console.log(resultWithSkip, resultWithoutSkip);
10}
11demo();
12

getEmailTemplates Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetEmailTemplatesResponse

Beispiel

getEmailTemplates Beispiel
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-123";
4 const skip: number = 20;
5 const templatesWithSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId, skip);
6 const templatesWithoutSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId);
7}
8

renderEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNein

Antwort

Rückgabe: RenderEmailTemplateResponse

Beispiel

renderEmailTemplate Beispiel
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3
4const templateBody: RenderEmailTemplateBody = {
5 templateId: "welcome-email",
6 variables: {
7 userName: "Jane Doe",
8 signupDate: "2024-04-01"
9 }
10};
11
12const locale: string = "en-US";
13
14(async () => {
15 const rendered: RenderEmailTemplateResponse = await renderEmailTemplate(
16 tenantId,
17 templateBody,
18 locale
19 );
20 console.log(rendered);
21})();
22

updateEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateEmailTemplate Beispiel
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_67890";
5
6 const updateBody: UpdateEmailTemplateBody = {
7 subject: "New Comment Notification",
8 // htmlContent ist optional und wurde weggelassen
9 status: { code: 200, message: "Active" } // APIStatus
10 };
11
12 const response: APIEmptyResponse = await updateEmailTemplate(tenantId, templateId, updateBody);
13 console.log(response);
14}
15

getEventLog Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNein

Antwort

Rückgabe: GetEventLogResponse

Beispiel

getEventLog Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "url_9876";
4const userIdWS: string = "user_abcde";
5const startTime: number = Date.now() - 86_400_000; // vor 24 Stunden
6const endTime: number = Date.now();
7
8const fullLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9const partialLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime);
10

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNein

Antwort

Rückgabe: GetEventLogResponse

Beispiel

getGlobalEventLog Beispiel
Copy Copy
1
2async function fetchEventLogs() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const userIdWS: string = "user_ws_abcde";
6 const startTime: number = Date.now() - 24 * 60 * 60 * 1000; // vor 24 Stunden
7 const endTime: number = Date.now();
8
9 const logWithEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
10 const logWithoutEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime);
11}
12

createFeedPost Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
isLivebooleanNein
doSpamCheckbooleanNein
skipDupCheckbooleanNein

Antwort

Rückgabe: CreateFeedPostsResponse

Beispiel

createFeedPost Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const broadcastId: string = "b1c2d3e4-5678-90ab-cdef-1234567890cd";
5 const isLive: boolean = true;
6 const doSpamCheck: boolean = false;
7 const skipDupCheck: boolean = true;
8
9 const mediaAsset: FeedPostMediaItemAsset = {
10 url: "https://cdn.example.com/photos/sunrise.jpg",
11 type: "image/jpeg"
12 };
13 const mediaItem: FeedPostMediaItem = {
14 asset: mediaAsset,
15 caption: "Sunrise over the mountains"
16 };
17 const linkItem: FeedPostLink = {
18 url: "https://blog.example.com/tech-trends-2024",
19 title: "Top Tech Trends for 2024"
20 };
21 const postParams: CreateFeedPostParams = {
22 text: "Excited to share the latest tech trends!",
23 media: [mediaItem],
24 link: linkItem
25 };
26
27 const response: CreateFeedPostsResponse = await createFeedPost(
28 tenantId,
29 postParams,
30 broadcastId,
31 isLive,
32 doSpamCheck,
33 skipDupCheck
34 );
35 console.log(response);
36})();
37

createFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: CreateFeedPostResponse

Beispiel

createFeedPostPublic Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mediaAsset: FeedPostMediaItemAsset = {
5 url: "https://cdn.example.com/image.jpg",
6 width: 800,
7 height: 600,
8 mimeType: "image/jpeg"
9};
10
11const mediaItem: FeedPostMediaItem = {
12 type: "image",
13 asset: mediaAsset,
14 caption: "Sunset over the hills"
15};
16
17const link: FeedPostLink = {
18 url: "https://example.com/blog/post",
19 title: "Exciting New Features",
20 description: "Read about our latest updates."
21};
22
23const createFeedPostParams: CreateFeedPostParams = {
24 content: "Check out our latest blog post!",
25 media: [mediaItem],
26 link: link,
27 visibility: "public"
28};
29
30const broadcastId: string = "broadcast_9876";
31const sso: string = "sso_token_abc123";
32
33const response: CreateFeedPostResponse = await createFeedPostPublic(
34 tenantId,
35 createFeedPostParams,
36 broadcastId,
37 sso
38);
39

deleteFeedPostPublic Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: DeleteFeedPostPublicResponse

Beispiel

deleteFeedPostPublic Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const broadcastId: string = "broadcast_abcde";
6 const sso: string = "sso_token_xyz";
7
8 const responseWithOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
9 tenantId,
10 postId,
11 broadcastId,
12 sso
13 );
14
15 const responseWithoutOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
16 tenantId,
17 postId
18 );
19})();
20

getFeedPosts Internal Link

req tenantId afterId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
limitnumberNein
tagsArrayNein

Antwort

Rückgabe: GetFeedPostsResponse

Beispiel

getFeedPosts Beispiel
Copy Copy
1
2async function loadFeed() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const afterId: string = 'post_987654321';
5 const limit: number = 25;
6 const tags: string[] = ['technology', 'innovation'];
7 const response: GetFeedPostsResponse = await getFeedPosts(tenantId, afterId, limit, tags);
8 console.log(response);
9}
10loadFeed();
11

getFeedPostsPublic Internal Link

req tenantId afterId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
limitnumberNein
tagsArrayNein
ssostringNein
isCrawlerbooleanNein
includeUserInfobooleanNein

Antwort

Rückgabe: PublicFeedPostsResponse

Beispiel

Beispiel für getFeedPostsPublic
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const afterId: string = "post-20230915-abc123";
4const limit: number = 15;
5const tags: string[] = ["technology", "innovation"];
6const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSJ9.s3cr3tSignature";
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9
10const feedResponse: PublicFeedPostsResponse = await getFeedPostsPublic(
11 tenantId,
12 afterId,
13 limit,
14 tags,
15 sso,
16 isCrawler,
17 includeUserInfo
18);
19

getFeedPostsStats Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdsArrayJa
ssostringNein

Antwort

Rückgabe: FeedPostsStatsResponse

Beispiel

getFeedPostsStats Beispiel
Copy Copy
1
2const tenantId: string = "tenant-9f8b7c6d";
3const postIds: string[] = ["post-1a2b3c", "post-4d5e6f", "post-7g8h9i"];
4const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
5const feedStats: FeedPostsStatsResponse = await getFeedPostsStats(tenantId, postIds, ssoToken);
6

getUserReactsPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdsArrayNein
ssostringNein

Antwort

Rückgabe: UserReactsResponse

Beispiel

getUserReactsPublic Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const postIds: string[] = ["post_abc", "post_def"];
4const ssoToken: string = "sso_token_987";
5
6const fullResponse: UserReactsResponse = await getUserReactsPublic(tenantId, postIds, ssoToken);
7const minimalResponse: UserReactsResponse = await getUserReactsPublic(tenantId);
8

reactFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNein
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: ReactFeedPostResponse

Beispiel

reactFeedPostPublic Beispiel
Copy Copy
1
2async function demoReact() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const reactBodyParams: ReactBodyParams = {
6 type: "like",
7 userId: "user_abcde"
8 };
9 const response: ReactFeedPostResponse = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 true,
14 "broadcast_001",
15 "sso_token_xyz"
16 );
17}
18

updateFeedPost Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateFeedPost Beispiel
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5
6 const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11 };
12
13 const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "Sunrise over the hills"
17 };
18
19 const link: FeedPostLink = {
20 url: "https://example.com/blog",
21 title: "Latest Blog Post",
22 description: "Insights on recent developments"
23 };
24
25 const feedPost: FeedPost = {
26 title: "Daily Highlights",
27 content: "Check out today’s top stories.",
28 mediaItems: [mediaItem], // optional
29 links: [link] // optional
30 };
31
32 const response: APIEmptyResponse = await updateFeedPost(tenantId, postId, feedPost);
33 console.log(response);
34}
35
36runUpdate();
37

updateFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: CreateFeedPostResponse

Beispiel

updateFeedPostPublic Beispiel
Copy Copy
1
2// Parameter definieren
3const tenantId: string = "tenant_12345";
4const postId: string = "post_98765";
5
6const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11};
12
13const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "A beautiful scenery"
17};
18
19const link: FeedPostLink = {
20 url: "https://example.com/article",
21 title: "Interesting Article",
22 description: "An article about TypeScript best practices."
23};
24
25const updateParams: UpdateFeedPostParams = {
26 content: "Updated post content with new media and link.",
27 media: [mediaItem],
28 link: link,
29 isPublic: true
30};
31
32const broadcastId: string = "broadcast_001";
33const sso: string = "sso_token_abc123";
34
35const response: CreateFeedPostResponse = await updateFeedPostPublic(
36 tenantId,
37 postId,
38 updateParams,
39 broadcastId,
40 sso
41);
42

flagCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

flagCommentPublic Beispiel
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4const isFlagged: boolean = true;
5const sso: string = "sso_user_5678";
6
7const resultWithSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
8const resultWithoutSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, false);
9

getGifLarge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
largeInternalURLSanitizedstringYes

Antwort

Rückgabe: GifGetLargeResponse

Beispiel

getGifLarge Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/large/abc123.gif";
5 const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6 console.log(response);
7}
8

getGifsSearch Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
searchstringJa
localestringNein
ratingstringNein
pagenumberNein

Antwort

Rückgabe: GetGifsSearchResponse

Beispiel

getGifsSearch Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9876";
4 const search: string = "celebration fireworks";
5 const locale: string = "fr-FR";
6 const rating: string = "g";
7 const page: number = 1;
8
9 const fullResult: GetGifsSearchResponse = await getGifsSearch(tenantId, search, locale, rating, page);
10 const minimalResult: GetGifsSearchResponse = await getGifsSearch(tenantId, "dog memes");
11}
12
13runExample();
14

getGifsTrending Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
localestringNo
ratingstringNo
pagenumberNo

Antwort

Rückgabe: GetGifsTrendingResponse

Beispiel

getGifsTrending Beispiel
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const locale: string = "en-US";
5 const rating: string = "PG-13";
6 const page: number = 1;
7
8 const trendingAll: GetGifsTrendingResponse = await getGifsTrending(tenantId, locale, rating, page);
9 console.log(trendingAll);
10
11 // Nur den erforderlichen Parameter verwenden
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

addHashTag Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createHashTagBodyCreateHashTagBodyNein

Antwort

Rückgabe: CreateHashTagResponse

Beispiel

addHashTag Beispiel
Copy Copy
1
2const tenantId: string = "c3f5e8b2-9d4a-4f6a-8b2c-1a2b3c4d5e6f";
3
4const tagPayload: CreateHashTagBody = {
5 tag: "typescript",
6 description: "Discussions about TypeScript"
7};
8
9const responseWithBody: CreateHashTagResponse = await addHashTag(tenantId, tagPayload);
10const responseWithoutBody: CreateHashTagResponse = await addHashTag(tenantId);
11

addHashTagsBulk Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNein

Antwort

Returns: BulkCreateHashTagsResponse

Beispiel

addHashTagsBulk Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const tags: BulkCreateHashTagsBodyTagsInner[] = [
5 { name: "typescript", color: "#3178c6" },
6 { name: "fastcomments", color: "#ff6600" }
7];
8
9const bulkBody: BulkCreateHashTagsBody = { tags };
10
11const resultWithBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId, bulkBody);
12
13const resultWithoutBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId);
14

deleteHashTag Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
tagstringJa
deleteHashTagRequestBodyDeleteHashTagRequestBodyNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteHashTag Beispiel
Copy Copy
1
2const tenantId: string = "tenant_42";
3const tag: string = "high-priority";
4
5const requestBody: DeleteHashTagRequestBody = {
6 // Felder nach Bedarf ausfüllen
7};
8
9const resultWithBody: APIEmptyResponse = await deleteHashTag(tenantId, tag, requestBody);
10const resultWithoutBody: APIEmptyResponse = await deleteHashTag(tenantId, tag);
11

getHashTags Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein

Antwort

Rückgabe: GetHashTagsResponse

Beispiel

getHashTags Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const page: number = 1;
5 const result: GetHashTagsResponse = await getHashTags(tenantId, page);
6 console.log(result);
7})();
8

patchHashTag Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
tagstringJa
updateHashTagBodyUpdateHashTagBodyNein

Response

Rückgabe: UpdateHashTagResponse

Beispiel

patchHashTag Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const tag: string = "news";
5
6 // Aufruf ohne optionalen Body
7 const responseWithoutBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag);
8
9 // Body für das Update vorbereiten
10 const updateBody: UpdateHashTagBody = {
11 name: "Latest News",
12 description: "Tag for the most recent news articles"
13 };
14
15 const responseWithBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag, updateBody);
16})();
17

getMe Internal Link

Identifiziert das verwendete Anmeldeinformation: den Mandanten, zu dem es gehört, und bei OAuth-Token den Benutzer, der es autorisiert hat.
Integrationen verwenden dies, um eine Verbindung zu testen und zu kennzeichnen.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringYes

Response

Rückgabe: GetMeResponse

Example

getMe Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const me: GetMeResponse = await getMe(tenantId);
5 const authType: MeAuthType = me.auth.type;
6 const scopes: OAuthScope[] = me.auth.scopes ?? [];
7 const status: APIStatus = me.status;
8})();
9

deleteModerationVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
voteIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: VoteDeleteResponse

Beispiel

deleteModerationVote Beispiel
Copy Copy
1
2async function runDeleteModerationVote(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6a";
4 const commentId: string = "comment_4d3e2f1a";
5 const voteId: string = "vote_12345abcde";
6 const broadcastId: string | undefined = "broadcast_2023_09_15";
7 const sso: string | undefined = "sso_user_7890token";
8
9 const result: VoteDeleteResponse = await deleteModerationVote(
10 tenantId,
11 commentId,
12 voteId,
13 broadcastId,
14 sso
15 );
16
17 console.log(result);
18}
19

getApiComments Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein
countnumberNein
textSearchstringNein
byIPFromCommentstringNein
filtersstringNein
searchFiltersstringNein
sortsstringNein
demobooleanNein
ssostringNein

Antwort

Rückgabe: ModerationAPIGetCommentsResponse

Beispiel

getApiComments Beispiel
Copy Copy
1
2async function fetchComments(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const page: number = 2;
5 const count: number = 20;
6 const textSearch: string = "typescript";
7 const byIPFromComment: string = "192.168.1.100";
8 const filters: string = "spam,offensive";
9 const searchFilters: string = "user:john";
10 const sorts: string = "date_desc";
11 const demo: boolean = true;
12 const sso: string = "sso_token_abc";
13
14 const response: ModerationAPIGetCommentsResponse = await getApiComments(
15 tenantId,
16 page,
17 count,
18 textSearch,
19 byIPFromComment,
20 filters,
21 searchFilters,
22 sorts,
23 demo,
24 sso
25 );
26}
27
28fetchComments();
29

getApiExportStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
batchJobIdstringNo
ssostringNo

Antwort

Rückgabe: ModerationExportStatusResponse

Beispiel

getApiExportStatus Beispiel
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const batchJobId: string = "job_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const statusOnlyTenant: ModerationExportStatusResponse = await getApiExportStatus(tenantId);
8 const statusWithBatch: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId);
9 const statusFull: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId, ssoToken);
10}
11run();
12

getApiIds Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
ssostringNo

Antwort

Rückgabe: ModerationAPIGetCommentIdsResponse

Beispiel

getApiIds Beispiel
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const textSearch: string = "offensive language";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:unmoderated";
7 const searchFilters: string = "author:alice";
8 const afterId: string = "cmt_00123";
9 const demo: boolean = true;
10 const sso: string = "sso_9f8e7d6c";
11
12 const fullResult: ModerationAPIGetCommentIdsResponse = await getApiIds(
13 tenantId,
14 textSearch,
15 byIPFromComment,
16 filters,
17 searchFilters,
18 afterId,
19 demo,
20 sso
21 );
22
23 const minimalResult: ModerationAPIGetCommentIdsResponse = await getApiIds(tenantId);
24}
25

getBanUsersFromComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes
ssostringNo

Antwort

Rückgabe: GetBannedUsersFromCommentResponse

Beispiel

getBanUsersFromComment Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const commentId: string = "comment_a1b2c3";
4const ssoToken: string = "sso_abc123";
5
6const bannedUsers: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId, ssoToken);
7const bannedUsersNoSso: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId);
8

getCommentBanStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
ssostringNein

Antwort

Rückgabe: GetCommentBanStatusResponse

Beispiel

getCommentBanStatus Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_987654";
5 const ssoToken: string = "sso_user_abc";
6
7 const statusWithSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId, ssoToken);
8 const statusWithoutSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId);
9})();
10

getCommentChildren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
ssostringNein

Antwort

Rückgabe: ModerationAPIChildCommentsResponse

Beispiel

Beispiel für getCommentChildren
Copy Copy
1
2async function fetchChildren() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const ssoToken: string = "sso_user_abc123";
6
7 const responseWithSSO: ModerationAPIChildCommentsResponse = await getCommentChildren(tenantId, commentId, ssoToken);
8 const responseWithoutSSO: ModerationAPIChildCommentsResponse = await getCommentChildren(tenantId, commentId);
9}
10
11fetchChildren();
12

getCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
textSearchstringNein
byIPFromCommentstringNein
filterstringNein
searchFiltersstringNein
demobooleanNein
ssostringNein

Antwort

Rückgabe: ModerationAPICountCommentsResponse

Beispiel

getCount Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const basicCount: ModerationAPICountCommentsResponse = await getCount(tenantId);
5
6const detailedCount: ModerationAPICountCommentsResponse = await getCount(
7 tenantId,
8 "spam",
9 "192.168.1.100",
10 "status:pending",
11 "user:john",
12 true,
13 "sso_token_abc"
14);
15

getCounts Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Rückgabe: GetBannedUsersCountResponse

Beispiel

getCounts Beispiel
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_9876";
4 const ssoToken: string = "sso_user_42";
5
6 const resultWithOnlyTenant: GetBannedUsersCountResponse = await getCounts(tenantId);
7 const resultWithBoth: GetBannedUsersCountResponse = await getCounts(tenantId, ssoToken);
8}
9
10run();
11

getLogs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
ssostringNein

Antwort

Rückgabe: ModerationAPIGetLogsResponse

Beispiel

getLogs Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const commentId: string = "cmt_4567890";
5 const ssoToken: string = "sso_abcdef123456";
6
7 const logsWithSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId, ssoToken);
8 const logsWithoutSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId);
9})();
10

getManualBadges Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Rückgabe: GetTenantManualBadgesResponse

Beispiel

getManualBadges Beispiel
Copy Copy
1
2async function fetchBadges() {
3 const tenantId: string = "tenant-987654321";
4 const ssoToken: string = "sso-token-abc123";
5
6 const badgesWithSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId, ssoToken);
7 const badgesWithoutSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId);
8}
9

getManualBadgesForUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
badgesUserIdstringNein
commentIdstringNein
ssostringNein

Antwort

Rückgabe: GetUserManualBadgesResponse

Beispiel

Beispiel für getManualBadgesForUser
Copy Copy
1
2async () => {
3 const tenantId: string = "tenant_12345";
4 const badgesUserId: string | undefined = "user_98765";
5 const commentId: string | undefined = "comment_abcde";
6 const sso: string | undefined = "sso_token_xyz";
7
8 const basicResponse: GetUserManualBadgesResponse = await getManualBadgesForUser(tenantId);
9 const fullResponse: GetUserManualBadgesResponse = await getManualBadgesForUser(
10 tenantId,
11 badgesUserId,
12 commentId,
13 sso
14 );
15
16 console.log(basicResponse, fullResponse);
17}();
18

getModerationComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
includeEmailbooleanNein
includeIPbooleanNein
ssostringNein

Antwort

Returns: ModerationAPICommentResponse

Beispiel

Beispiel für getModerationComment
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Aufruf nur mit erforderlichen Parametern
7 const basicResponse: ModerationAPICommentResponse = await getModerationComment(tenantId, commentId);
8
9 // Aufruf mit optionalen Parametern
10 const includeEmail: boolean = true;
11 const includeIP: boolean = false;
12 const sso: string = "sso-token-abc123";
13 const detailedResponse: ModerationAPICommentResponse = await getModerationComment(
14 tenantId,
15 commentId,
16 includeEmail,
17 includeIP,
18 sso
19 );
20}
21

getModerationCommentText Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
ssostringNein

Antwort

Rückgabe: GetCommentTextResponse

Beispiel

getModerationCommentText Beispiel
Copy Copy
1
2async function fetchComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const commentWithoutSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId);
8 const commentWithSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId, ssoToken);
9}
10
11fetchComment();
12

getPreBanSummary Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
includeByUserIdAndEmailbooleanNein
includeByIPbooleanNein
includeByEmailDomainbooleanNein
ssostringNein

Antwort

Rückgabe: PreBanSummary

Beispiel

getPreBanSummary Beispiel
Copy Copy
1
2async function fetchSummary(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const includeByUserIdAndEmail: boolean = true;
6 const includeByIP: boolean = false;
7 const includeByEmailDomain: boolean = true;
8 const sso: string = "sso_token_abc";
9
10 const summary: PreBanSummary = await getPreBanSummary(
11 tenantId,
12 commentId,
13 includeByUserIdAndEmail,
14 includeByIP,
15 includeByEmailDomain,
16 sso
17 );
18
19 console.log(summary);
20}
21
22fetchSummary();
23

getSearchCommentsSummary Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
valuestringNo
filtersstringNo
searchFiltersstringNo
ssostringNo

Antwort

Rückgabe: ModerationCommentSearchResponse

Beispiel

getSearchCommentsSummary Beispiel
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant_12345";
4 const value: string = "spam";
5 const filters: string = "status:pending";
6 const searchFilters: string = "author:john";
7 const sso: string = "sso_token_abc";
8
9 const result: ModerationCommentSearchResponse = await getSearchCommentsSummary(
10 tenantId,
11 value,
12 filters,
13 searchFilters,
14 sso
15 );
16
17 console.log(result);
18}
19
20runSearch();
21

getSearchPages Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
valuestringNein
ssostringNein

Antwort

Rückgabe: ModerationPageSearchResponse

Beispiel

getSearchPages Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const searchValue: string = "spam";
4const ssoToken: string = "sso-abc123def456";
5
6const result1: ModerationPageSearchResponse = await getSearchPages(tenantId);
7const result2: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue);
8const result3: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue, ssoToken);
9

getSearchSites Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
valuestringNein
ssostringNein

Antwort

Rückgabe: ModerationSiteSearchResponse

Beispiel

getSearchSites Beispiel
Copy Copy
1
2async function runSearches(): Promise<void> {
3 const tenantId: string = "tenant-987654";
4 const query: string = "offensive content";
5 const ssoToken: string = "sso-token-xyz";
6
7 const fullResult: ModerationSiteSearchResponse = await getSearchSites(tenantId, query, ssoToken);
8 const minimalResult: ModerationSiteSearchResponse = await getSearchSites(tenantId);
9}
10
11runSearches();
12

getSearchSuggest Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
textSearchstringNein
ssostringNein

Response

Rückgabe: ModerationSuggestResponse

Beispiel

getSearchSuggest Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const textSearch: string = "harassment";
5 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
6 const suggestResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId, textSearch, sso);
7 const minimalResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId);
8})();
9

getSearchUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
valuestringNein
ssostringNein

Antwort

Rückgabe: ModerationUserSearchResponse

Beispiel

getSearchUsers Beispiel
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant-9876";
4 const emailFragment: string = "jane";
5 const ssoToken: string = "sso-token-456";
6
7 const resultWithAll: ModerationUserSearchResponse = await getSearchUsers(tenantId, emailFragment, ssoToken);
8 const resultWithTenantOnly: ModerationUserSearchResponse = await getSearchUsers(tenantId);
9}
10

getTrustFactor Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
ssostringNein

Antwort

Rückgabe: GetUserTrustFactorResponse

Beispiel

getTrustFactor Beispiel
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_98765";
5 const sso: string = "sso_token_abcde";
6
7 const trustFactor: GetUserTrustFactorResponse = await getTrustFactor(tenantId);
8 const trustFactorWithUser: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId);
9 const trustFactorFull: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId, sso);
10}
11

getUserBanPreference Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Rückgabe: APIModerateGetUserBanPreferencesResponse

Beispiel

Beispiel für getUserBanPreference
Copy Copy
1
2async function demoGetUserBanPreference() {
3 const tenantId: string = "tenant_987654321";
4 const ssoToken: string = "sso_user_abc123xyz";
5
6 const responseWithSso: APIModerateGetUserBanPreferencesResponse = await getUserBanPreference(tenantId, ssoToken);
7 const responseWithoutSso: APIModerateGetUserBanPreferencesResponse = await getUserBanPreference(tenantId);
8}
9

getUserInternalProfile Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringNein
ssostringNein

Antwort

Rückgabe: GetUserInternalProfileResponse

Beispiel

getUserInternalProfile Beispiel
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const ssoToken: string = "sso_abcde12345";
6
7 const profileOnly: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId);
8 const profileWithComment: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId);
9 const fullProfile: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId, ssoToken);
10}
11
12demo();
13

postAdjustCommentVotes Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
adjustCommentVotesParamsAdjustCommentVotesParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: AdjustVotesResponse

Beispiel

postAdjustCommentVotes Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_987654321";
4const adjustParams: AdjustCommentVotesParams = { voteDelta: 1 };
5const broadcastId: string = "brd_112233";
6const sso: string = "sso-token-xyz";
7
8const result: AdjustVotesResponse = await postAdjustCommentVotes(
9 tenantId,
10 commentId,
11 adjustParams,
12 broadcastId,
13 sso
14);
15

postApiExport Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
textSearchstringNein
byIPFromCommentstringNein
filtersstringNein
searchFiltersstringNein
sortsstringNein
ssostringNein

Antwort

Rückgabe: ModerationExportResponse

Beispiel

postApiExport Beispiel
Copy Copy
1
2async function runExport() {
3 const tenantId: string = "c9f1e2b4-8a6d-4f3a-9d2e-5b6c7d8e9f0a";
4 const textSearch: string = "spam";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:pending";
7 const searchFilters: string = "createdAt>2023-01-01";
8 const sorts: string = "createdAt:desc";
9 const sso: string = "sso-token-abc123";
10
11 const fullExport: ModerationExportResponse = await postApiExport(
12 tenantId,
13 textSearch,
14 byIPFromComment,
15 filters,
16 searchFilters,
17 sorts,
18 sso
19 );
20
21 const minimalExport: ModerationExportResponse = await postApiExport(tenantId);
22
23 console.log(fullExport, minimalExport);
24}
25runExport();
26

postBanUserFromComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes
banEmailbooleanNo
banEmailDomainbooleanNo
banIPbooleanNo
deleteAllUsersCommentsbooleanNo
bannedUntilstringNo
isShadowBanbooleanNo
updateIdstringNo
banReasonstringNo
ssostringNo

Antwort

Rückgabe: BanUserFromCommentResult

Beispiel

postBanUserFromComment Beispiel
Copy Copy
1
2async function banUserExample(): Promise<void> {
3 const result: BanUserFromCommentResult = await postBanUserFromComment(
4 "tenant_42",
5 "comment_1001",
6 true, // banEmail
7 undefined, // banEmailDomain (ausgelassen)
8 true, // banIP
9 false, // deleteAllUsersComments
10 "2025-01-01T00:00:00Z", // bannedUntil
11 true, // isShadowBan
12 undefined, // updateId (ausgelassen)
13 "Harassment", // banReason
14 undefined // sso (ausgelassen)
15 );
16
17 console.log(result);
18}
19

postBanUserUndo Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
banUserUndoParamsBanUserUndoParamsJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

postBanUserUndo Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const undoParams: BanUserUndoParams = {
5 userId: "user_12345",
6 // zusätzliche erforderliche Felder können hier hinzugefügt werden
7};
8
9const resultWithoutSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams);
10
11const ssoToken: string = "sso_abcdef123456";
12
13const resultWithSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams, ssoToken);
14

postBulkPreBanSummary Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
bulkPreBanParamsBulkPreBanParamsJa
includeByUserIdAndEmailbooleanNein
includeByIPbooleanNein
includeByEmailDomainbooleanNein
ssostringNein

Antwort

Returns: BulkPreBanSummary

Beispiel

postBulkPreBanSummary Beispiel
Copy Copy
1
2const tenantId: string = "c1f2e3d4-5678-90ab-cdef-1234567890ab";
3
4const bulkPreBanParams: BulkPreBanParams = {
5 userIds: ["user123"],
6 emails: ["spam@example.com"],
7 ips: ["192.0.2.1"],
8 emailDomains: ["example.com"]
9};
10
11const includeByUserIdAndEmail: boolean = true;
12const includeByIP: boolean = false;
13const includeByEmailDomain: boolean = true;
14const sso: string = "sso-token-abc123";
15
16const summary: BulkPreBanSummary = await postBulkPreBanSummary(
17 tenantId,
18 bulkPreBanParams,
19 includeByUserIdAndEmail,
20 includeByIP,
21 includeByEmailDomain,
22 sso
23);
24

postCommentsByIds Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentsByIdsParamsCommentsByIdsParamsJa
ssostringNein

Antwort

Rückgabe: ModerationAPIChildCommentsResponse

Beispiel

postCommentsByIds Beispiel
Copy Copy
1
2const tenantId: string = 'tenant-9f8b7c6d-1234-5678-90ab-cdef12345678';
3const commentsByIdsParams: CommentsByIdsParams = {
4 commentIds: ['comment-1', 'comment-2'],
5 includeUserBadges: true
6};
7const responseWithoutSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams);
8const sso: string = 'sso-abc123def456';
9const responseWithSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams, sso);
10

postFlagComment Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringNein
ssostringNein

Response

Rückgabe: APIEmptyResponse

Beispiel

postFlagComment Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5
6 // Nur erforderliche Parameter
7 const result1: APIEmptyResponse = await postFlagComment(tenantId, commentId);
8
9 // Including optional parameters
10 const broadcastId: string = "brd_54321";
11 const sso: string = "user@example.com";
12 const result2: APIEmptyResponse = await postFlagComment(tenantId, commentId, broadcastId, sso);
13
14 console.log(result1, result2);
15}
16runExample();
17

postRemoveComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: PostRemoveCommentApiResponse

Beispiel

postRemoveComment Beispiel
Copy Copy
1
2async function removeCommentExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_555";
6 const sso: string = "sso_token_abc";
7
8 const response: PostRemoveCommentApiResponse = await postRemoveComment(
9 tenantId,
10 commentId,
11 broadcastId,
12 sso
13 );
14 console.log(response);
15}
16
17removeCommentExample();
18

postRestoreDeletedComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

postRestoreDeletedComment Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4
5const resultRequired: APIEmptyResponse = await postRestoreDeletedComment(tenantId, commentId);
6
7const broadcastId: string = "brd_001";
8const sso: string = "sso_token_abc123";
9
10const resultAll: APIEmptyResponse = await postRestoreDeletedComment(
11 tenantId,
12 commentId,
13 broadcastId,
14 sso
15);
16

postSetCommentApprovalStatus Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
commentIdstringJa
approvedbooleanNein
broadcastIdstringNein
ssostringNein

Antwort

Returns: SetCommentApprovedResponse

Beispiel

postSetCommentApprovalStatus Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_001";
4 const commentId: string = "comment_123";
5 const approved: boolean = false;
6 const broadcastId: string = "broadcast_456";
7 const sso: string = "sso_789";
8
9 const result: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
10 tenantId,
11 commentId,
12 approved,
13 broadcastId,
14 sso
15 );
16
17 const minimalResult: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
18 tenantId,
19 commentId
20 );
21})();
22

postSetCommentReviewStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
reviewedbooleanNein
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

postSetCommentReviewStatus Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const reviewed: boolean = true;
5const broadcastId: string = "brd_001";
6const sso: string = "sso_token_abc";
7
8const result: APIEmptyResponse = await postSetCommentReviewStatus(
9 tenantId,
10 commentId,
11 reviewed,
12 broadcastId,
13 sso
14);
15

postSetCommentSpamStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
spambooleanNein
permNotSpambooleanNein
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

postSetCommentSpamStatus Beispiel
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4
5const spam: boolean = true;
6const permNotSpam: boolean = false;
7const broadcastId: string = "broadcast_2023";
8const sso: string = "sso_user_5678";
9
10const resultFull: APIEmptyResponse = await postSetCommentSpamStatus(
11 tenantId,
12 commentId,
13 spam,
14 permNotSpam,
15 broadcastId,
16 sso
17);
18
19const resultMinimal: APIEmptyResponse = await postSetCommentSpamStatus(
20 tenantId,
21 commentId
22);
23

postSetCommentText Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
setCommentTextParamsSetCommentTextParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: SetCommentTextResponse

Beispiel

postSetCommentText Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const setCommentTextParams: SetCommentTextParams = {
5 text: "Revised comment after user edit.",
6 format: "plain"
7};
8const broadcastId: string = "broadcast_2023_09";
9
10const response: SetCommentTextResponse = await postSetCommentText(
11 tenantId,
12 commentId,
13 setCommentTextParams,
14 broadcastId
15);
16
17console.log(response);
18

postUnFlagComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

postUnFlagComment Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const broadcastId: string = "broadcast_55555";
6 const sso: string = "sso_token_abcde";
7
8 const result1: APIEmptyResponse = await postUnFlagComment(tenantId, commentId);
9 const result2: APIEmptyResponse = await postUnFlagComment(tenantId, commentId, broadcastId, sso);
10}
11
12runExample();
13

postVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
directionstringNein
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: VoteResponse

Beispiel

postVote Beispiel
Copy Copy
1
2async function runVoteExamples(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Aufruf nur mit den erforderlichen Parametern
7 const simpleVote: VoteResponse = await postVote(tenantId, commentId);
8
9 // Aufruf mit optionalen Parametern
10 const direction: string = "down";
11 const broadcastId: string = "brd_987654321";
12 const sso: string = "user-42";
13 const detailedVote: VoteResponse = await postVote(tenantId, commentId, direction, broadcastId, sso);
14
15 console.log(simpleVote, detailedVote);
16}
17

putAwardBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
badgeIdstringJa
userIdstringNein
commentIdstringNein
broadcastIdstringNein
ssostringNein

Antwort

Rückgabe: AwardUserBadgeResponse

Beispiel

putAwardBadge Beispiel
Copy Copy
1
2async function awardBadgeExample(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_superstar";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_2023";
7
8 const result: AwardUserBadgeResponse = await putAwardBadge(
9 tenantId,
10 badgeId,
11 userId,
12 commentId
13 );
14
15 console.log(result);
16}
17

putCloseThread Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

putCloseThread Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-company";
4 const urlId: string = "post-2023-09-15";
5 const ssoToken: string = "sso-abc123def";
6
7 const resultWithSso: APIEmptyResponse = await putCloseThread(tenantId, urlId, ssoToken);
8 const resultWithoutSso: APIEmptyResponse = await putCloseThread(tenantId, urlId);
9})();
10

putRemoveBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
ssostringNo

Antwort

Rückgabe: RemoveUserBadgeResponse

Beispiel

putRemoveBadge Beispiel
Copy Copy
1
2async function demoRemoveBadge() {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_gold";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_20230915";
7 const broadcastId: string = "broadcast_live_01";
8 const sso: string = "sso_abcdef123456";
9
10 const result: RemoveUserBadgeResponse = await putRemoveBadge(
11 tenantId,
12 badgeId,
13 userId,
14 commentId,
15 broadcastId,
16 sso
17 );
18
19 console.log(result);
20}
21

putReopenThread Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
ssostringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

putReopenThread Beispiel
Copy Copy
1
2async function reopenThreadExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post-9876";
5 const sso: string = "user-abc123";
6
7 const responseWithoutSso: APIEmptyResponse = await putReopenThread(tenantId, urlId);
8 const responseWithSso: APIEmptyResponse = await putReopenThread(tenantId, urlId, sso);
9}
10
11reopenThreadExample();
12

setTrustFactor Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
userIdstringNo
trustFactorstringNo
ssostringNo

Antwort

Rückgabe: SetUserTrustFactorResponse

Beispiel

setTrustFactor Beispiel
Copy Copy
1
2async function demoSetTrustFactor() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5 const trustFactor: string = "high";
6 const sso: string = "sso-token-xyz";
7
8 const fullResponse: SetUserTrustFactorResponse = await setTrustFactor(
9 tenantId,
10 userId,
11 trustFactor,
12 sso
13 );
14
15 const minimalResponse: SetUserTrustFactorResponse = await setTrustFactor(tenantId);
16}
17

createModerator Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Antwort

Rückgabe: CreateModeratorResponse

Beispiel

createModerator Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const moderatorPayload: CreateModeratorBody = {
5 userId: "user_9876",
6 // optionales Feld; kann weggelassen werden, wenn nicht benötigt
7 notes: "Temporary moderator for event"
8};
9
10const response: CreateModeratorResponse = await createModerator(tenantId, moderatorPayload);
11

deleteModerator Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
sendEmailstringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteModerator Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const moderatorId: string = "mod_9876";
5 const notifyEmail: string = "admin@company.com";
6
7 const resultWithEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId, notifyEmail);
8 const resultWithoutEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId);
9})();
10

getModerator Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetModeratorResponse

Beispiel

getModerator Beispiel
Copy Copy
1
2async function fetchModerator() {
3 const tenantId: string = "c9f1e2b3-4d5a-6f78-90ab-cdef12345678";
4 const moderatorId: string = "mod-987654";
5 const response: GetModeratorResponse = await getModerator(tenantId, moderatorId);
6 const isActive: boolean | undefined = response.moderator?.isActive;
7 const statusCode: number | undefined = response.status?.code;
8}
9

getModerators Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetModeratorsResponse

Beispiel

getModerators Beispiel
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3
4const moderators: GetModeratorsResponse = await getModerators(tenantId);
5
6const skip: number = 20;
7const moreModerators: GetModeratorsResponse = await getModerators(tenantId, skip);
8

sendInvite Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
fromNamestringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

sendInvite Beispiel
Copy Copy
1
2const tenantId: string = "tenant-987654321";
3const id: string = "user-123456789";
4const fromName: string = "Alice Johnson";
5
6const result: APIEmptyResponse = await sendInvite(tenantId, id, fromName);
7console.log(result);
8

updateModerator Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateModerator Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const moderatorId: string = "mod_12345";
4
5const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 // role?: string ist optional und hier weggelassen
8};
9
10const result: APIEmptyResponse = await updateModerator(tenantId, moderatorId, updateBody);
11

deleteNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteNotificationCount Beispiel
Copy Copy
1
2let tenantId: string = "tenant-42f9b8c1";
3let notificationId: string = "notif-7e3a9d4f";
4
5const result: APIEmptyResponse = await deleteNotificationCount(tenantId, notificationId);
6

getCachedNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetCachedNotificationCountResponse

Beispiel

Beispiel für getCachedNotificationCount
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_9876";
5 const response: GetCachedNotificationCountResponse = await getCachedNotificationCount(tenantId, id);
6})();
7

getNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
urlIdstringNein
fromCommentIdstringNein
viewedbooleanNein
typestringNein

Antwort

Rückgabe: GetNotificationCountResponse

Beispiel

Beispiel für getNotificationCount
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-12345";
4const urlId: string = "https://app.example.com/dashboard";
5const fromCommentId: string = "cmt-9876";
6const viewed: boolean = false;
7const type: string = "reply";
8
9const notificationCount: GetNotificationCountResponse = await getNotificationCount(
10 tenantId,
11 userId,
12 urlId,
13 fromCommentId,
14 viewed,
15 type
16);
17

getNotifications Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
userIdstringNein
urlIdstringNein
fromCommentIdstringNein
viewedbooleanNein
typestringNein
skipnumberNein

Antwort

Rückgabe: GetNotificationsResponse

Beispiel

getNotifications Beispiel
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const userId: string = "user_1001";
5 const urlId: string = "url_2023";
6 const viewed: boolean = true;
7 const skip: number = 0;
8
9 const notifications: GetNotificationsResponse = await getNotifications(
10 tenantId,
11 userId,
12 urlId,
13 undefined,
14 viewed,
15 undefined,
16 skip
17 );
18
19 console.log(notifications);
20}
21

updateNotification Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateNotification Beispiel
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant-abc123";
4 const notificationId: string = "notif-9876";
5 const updateBody: UpdateNotificationBody = {
6 title: "System Maintenance",
7 message: "Scheduled maintenance at 02:00 UTC.",
8 enabled: true
9 };
10 const userId: string = "user-42";
11
12 const resultWithoutUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody);
13 const resultWithUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody, userId);
14}
15

createV1PageReact Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
titlestringNein
ssostringNein

Antwort

Rückgabe: CreateV1PageReact

Beispiel

createV1PageReact Beispiel
Copy Copy
1
2const tenantId: string = "my-tenant-123";
3const urlId: string = "article-456";
4
5const pageTitle: string = "Understanding TypeScript Generics";
6const ssoToken: string = "user-789-token";
7
8const fullResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId, pageTitle, ssoToken);
9const minimalResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId);
10

createV2PageReact Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
idstringJa
titlestringNein
ssostringNein

Antwort

Rückgabe: CreateV1PageReact

Beispiel

createV2PageReact Beispiel
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "product-page-123";
5 const pageId: string = "page-456";
6 const pageTitle: string = "Product Overview";
7 const ssoToken: string = "jwt-token-abc123";
8
9 const pageFull: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle, ssoToken);
10 const pageTitleOnly: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle);
11 const pageMinimal: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId);
12}
13run();
14

deleteV1PageReact Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
ssostringNein

Antwort

Rückgabe: CreateV1PageReact

Beispiel

deleteV1PageReact Beispiel
Copy Copy
1
2async function runExamples() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const urlId: string = "blog/post-2024-06-15";
5 const ssoToken: string = "sso_user_42";
6
7 const resultWithSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId, ssoToken);
8 const resultWithoutSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId);
9}
10

deleteV2PageReact Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
idstringJa
ssostringNein

Antwort

Rückgabe: CreateV1PageReact

Beispiel

deleteV2PageReact Beispiel
Copy Copy
1
2async function runDeleteExamples() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "page_98765";
5 const commentId: string = "comment_abcde";
6
7 // Aufruf ohne optionales sso
8 const resultWithoutSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId);
9
10 // Aufruf mit optionalem sso
11 const ssoToken: string = "sso_token_xyz";
12 const resultWithSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId, ssoToken);
13}
14

getV1PageLikes Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringYes
ssostringNo

Antwort

Rückgabe: GetV1PageLikes

Beispiel

getV1PageLikes Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "https://myblog.com/post/42";
5 const ssoToken: string = "sso_user_987";
6
7 const likesWithSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId, ssoToken);
8 const likesWithoutSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId);
9})();
10

getV2PageReacts Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
ssostringNein

Antwort

Rückgabe: GetV2PageReacts

Beispiel

getV2PageReacts Beispiel
Copy Copy
1
2const tenantId: string = "tenant-42";
3const urlId: string = "article-9876";
4const ssoToken: string = "sso-abc123";
5
6const reactsWithSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId, ssoToken);
7const reactsWithoutSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId);
8

getV2PageReactUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
idstringJa
ssostringNein

Response

Rückgabe: GetV2PageReactUsersResponse

Beispiel

Beispiel für getV2PageReactUsers
Copy Copy
1
2async function demoGetUsers() {
3 const tenantId: string = "d4e5f6a7-89ab-4cde-f012-3456789abcde";
4 const urlId: string = "blog/2024/06/fastcomments-typescript";
5 const userId: string = "user_123456789";
6 const ssoToken: string = "sso_token_abcdef123456";
7
8 const responseWithSso: GetV2PageReactUsersResponse = await getV2PageReactUsers(tenantId, urlId, userId, ssoToken);
9 const responseWithoutSso: GetV2PageReactUsersResponse = await getV2PageReactUsers(tenantId, urlId, userId);
10}
11

addPage Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
createAPIPageDataCreateAPIPageDataYes

Antwort

Rückgabe: AddPageAPIResponse

Beispiel

addPage Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8432b1-4c2e-4f9d-8a5d-7bc9e2f6d9a0";
3
4const pageData: CreateAPIPageData = {
5 url: "https://example.com/articles/fastcomments-intro",
6 title: "FastComments Introduction",
7 description: "An introductory guide to FastComments API usage.",
8 tags: ["fastcomments", "api", "tutorial"],
9 metadata: {
10 author: "Jane Doe",
11 publishedAt: "2024-03-15T08:00:00Z"
12 }
13};
14
15const response: AddPageAPIResponse = await addPage(tenantId, pageData);
16

deletePage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: DeletePageAPIResponse

Beispiel

deletePage Beispiel
Copy Copy
1
2async function example() {
3 const tenantId: string = "acme-corp-001";
4 const pageId: string = "page-987654321";
5 const result: DeletePageAPIResponse = await deletePage(tenantId, pageId);
6 console.log(result);
7}
8example();
9

getOfflineUsers Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
Frühere Kommentatoren auf der Seite, die NICHT gerade online sind. Sortiert nach displayName.

Use this after exhausting /users/online to render a "Members" section.
Verwenden Sie dies, nachdem /users/online erschöpft wurde, um einen „Members“-Abschnitt darzustellen.

Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.
Cursor-Paginierung nach commenterName: Der Server durchläuft den Teil {tenantId, urlId, commenterName} Index von afterName ausgehend vorwärts mittels $gt, ohne $skip‑Kosten.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
afterNamestringNein
afterUserIdstringNein

Response

Rückgabe: PageUsersOfflineResponse

Example

getOfflineUsers Beispiel
Copy Copy
1
2async function fetchOfflineUsers(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "page_9876";
5 const afterName: string = "John Doe";
6 const afterUserId: string = "user_abc123";
7
8 const offlineResponse: PageUsersOfflineResponse = await getOfflineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(offlineResponse);
16}
17

getOnlineUsers Internal Link


Aktuell online Viewer einer Seite: Personen, deren Websocket‑Sitzung gerade die Seite abonniert. Gibt anonCount + totalCount zurück (raumweite Abonnenten, einschließlich anonymer Viewer, die wir nicht aufzählen).

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringYes
afterNamestringNo
afterUserIdstringNo

Antwort

Rückgabe: PageUsersOnlineResponse

Beispiel

getOnlineUsers Beispiel
Copy Copy
1
2async function fetchOnlineUsers() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const afterName: string | undefined = "john_doe";
6 const afterUserId: string | undefined = "user_456";
7
8 const onlineUsers: PageUsersOnlineResponse = await getOnlineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(onlineUsers);
16}
17
18fetchOnlineUsers();
19

getPageByURLId Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Rückgabe: GetPageByURLIdAPIResponse

Beispiel

getPageByURLId Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5
6 const response: GetPageByURLIdAPIResponse = await getPageByURLId(tenantId, urlId);
7 const page: APIPage | undefined = response.page;
8})();
9

getPages Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes

Antwort

Rückgabe: GetPagesAPIResponse

Beispiel

getPages Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4(async () => {
5 const response: GetPagesAPIResponse = await getPages(tenantId);
6 const firstPage: APIPage | undefined = response.pages?.[0];
7 console.log(firstPage?.title);
8})();
9

getPagesPublic Internal Link

List pages for a tenant. Used by the FChat desktop client to populate its room list. Requires enableFChat to be true on the resolved custom config for each page. Pages that require SSO are filtered against the requesting user's group access.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
cursorstringNein
limitnumberNein
qstringNein
sortByPagesSortByNein
hasCommentsbooleanNein

Antwort

Rückgabe: GetPublicPagesResponse

Beispiel

getPagesPublic Beispiel
Copy Copy
1
2async function fetchPublicPages() {
3 const tenantId: string = "tenant_12345";
4 const cursor: string = "page_5";
5 const limit: number = 20;
6 const query: string = "support";
7 const hasComments: boolean = true;
8
9 const response: GetPublicPagesResponse = await getPagesPublic(
10 tenantId,
11 cursor,
12 limit,
13 query,
14 undefined,
15 hasComments
16 );
17
18 console.log(response);
19}
20

getUsersInfo Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser.
Wird vom Kommentar-Widget verwendet, um Benutzer, die gerade über ein Präsenzereignis erschienen sind, anzureichern.
Kein Seitenkontext: Datenschutz wird einheitlich durchgesetzt (private Profile werden maskiert).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idsstringYes

Response

Returns: PageUsersInfoResponse

Example

getUsersInfo Beispiel
Copy Copy
1
2async function fetchUsersInfo(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const ids: string = "user_001,user_002";
5 const response: PageUsersInfoResponse = await getUsersInfo(tenantId, ids);
6 console.log(response);
7}
8fetchUsersInfo();
9

patchPage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Antwort

Rückgabe: PatchPageAPIResponse

Beispiel

patchPage Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const pageId: string = "page_98765";
5
6 const updateData: UpdateAPIPageData = {
7 title: "Updated FAQ Page"
8 // description?: string kann weggelassen werden
9 };
10
11 const response: PatchPageAPIResponse = await patchPage(tenantId, pageId, updateData);
12})();
13

deletePendingWebhookEvent Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deletePendingWebhookEvent Beispiel
Copy Copy
1
2async function runDeletion() {
3 const tenantId: string = "tenant-42f7b9c2";
4 const eventId: string = "webhook-event-8a7d6c5b";
5 const result: APIEmptyResponse = await deletePendingWebhookEvent(tenantId, eventId);
6 console.log(result);
7}
8

getPendingWebhookEventCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo

Antwort

Rückgabe: GetPendingWebhookEventCountResponse

Beispiel

getPendingWebhookEventCount Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_42";
4 const commentId: string = "comment_1001";
5 const eventType: string = "comment.deleted";
6 const domain: string = "myblog.com";
7
8 const result: GetPendingWebhookEventCountResponse = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined,
12 eventType,
13 undefined,
14 domain
15 );
16
17 console.log(result);
18}
19
20runExample();
21

getPendingWebhookEvents Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringNein
externalIdstringNein
eventTypestringNein
typestringNein
domainstringNein
attemptCountGTnumberNein
skipnumberNein

Antwort

Rückgabe: GetPendingWebhookEventsResponse

Beispiel

getPendingWebhookEvents Beispiel
Copy Copy
1
2const tenantId: string = "123e4567-e89b-12d3-a456-426614174000";
3const commentId: string = "cmt_987654321";
4const externalId: string = "ext_abc123";
5const eventType: string = "comment_created";
6const type: string = "outbound";
7const domain: string = "myblog.com";
8const attemptCountGT: number = 2;
9const skip: number = 10;
10
11const pendingEvents: GetPendingWebhookEventsResponse = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

createPollVote Internal Link


Erfasse eine Stimme zu einer Umfrage oder verschiebe eine bereits vorhandene Stimme zu einer anderen Option. Ein Wähler hat höchstens eine Stimme pro
Umfrage, sodass ein erneuter Aufruf für denselben Wähler seine Stimme verschiebt, anstatt eine neue hinzuzufügen.

Dies beachtet die Umfrageeinstellungen der Seite: Wenn das Abstimmen nur für angemeldete Benutzer erlaubt ist, wird eine Stimme nur mit einer
anonUserId abgelehnt, und anonyme Stimmen werden pro IP und Umfrage rate‑limitiert.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createPollVoteBodyCreatePollVoteBodyJa

Antwort

Rückgabe: CreatePollVoteResponse

Beispiel

createPollVote Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4
5 const vote: CreatePollVoteBody = {
6 pollId: "poll-2024-09",
7 optionId: "option-A"
8 // userId ist optional und hier weggelassen
9 };
10
11 const result: CreatePollVoteResponse = await createPollVote(tenantId, vote);
12 console.log(result);
13})();
14

deletePollVote Internal Link

Ziehen Sie eine Stimme zurück. Die Option, auf die sie abgegeben wurde, gibt ihre Stimmenzahl zurück.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: DeletePollVoteResponse

Beispiel

deletePollVote Beispiel
Copy Copy
1
2async function runDeletePollVoteExample(): Promise<void> {
3 const tenantId: string = "tenant_42abc";
4 const pollId: string = "poll_7f9e2d";
5
6 const result: DeletePollVoteResponse = await deletePollVote(tenantId, pollId);
7
8 console.log(result);
9}
10

getPollVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetPollVoteResponse

Beispiel

getPollVote Beispiel
Copy Copy
1
2async function fetchPollVote(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant";
4 const pollId: string = "poll-2024-05";
5 const result: GetPollVoteResponse = await getPollVote(tenantId, pollId);
6 const status: APIStatus = result.status;
7 const vote: PublicPollVote | undefined = result.vote;
8}
9

getPollVotes Internal Link

Die einzelnen Stimmen hinter den Auszählungen einer Umfrage, älteste zuerst.

Eine Umfrage gehört zu einem Kommentar, daher werden Stimmen immer eine Umfrage nach der anderen gelesen – commentId ist erforderlich. Das hält jede Abfrage auf den bereits vorhandenen Indexen der Sammlung.

Beachtet die Privatsphäre der Umfrage: Stimmen einer anonymen Umfrage können nicht gelesen werden (poll-anonymous), weder hier noch per ID.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes
voterIdstringNo
optionIdstringNo
skipnumberNo

Antwort

Rückgabe: GetPollVotesResponse

Beispiel

getPollVotes Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const voterId: string = "user_abc";
5const optionId: string = "opt_1";
6const skip: number = 20;
7
8const pollResult: GetPollVotesResponse = await getPollVotes(
9 tenantId,
10 commentId,
11 voterId,
12 optionId,
13 skip
14);
15
16console.log(pollResult);
17

deletePoll Internal Link

Entfernen Sie eine Umfrage aus ihrem Kommentar, zusammen mit allen abgegebenen Stimmen. Der Kommentar selbst bleibt unverändert.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deletePoll Beispiel
Copy Copy
1
2async function runDeletePoll(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const commentId: string = "comment_a1b2c3d4";
5 const result: APIEmptyResponse = await deletePoll(tenantId, commentId);
6 console.log(result);
7}
8

getPoll Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes

Antwort

Rückgabe: GetPollResponse

Beispiel

getPoll Beispiel
Copy Copy
1
2const tenantId: string = "c9f1e2b4-8a3d-4f6a-9d2e-7b5c1a2f3e4d";
3const commentId: string = "a1b2c3d4e5f6g7h8i9j0";
4
5const pollResponse: GetPollResponse = await getPoll(tenantId, commentId);
6
7const poll: CommentPoll | undefined = pollResponse.poll;
8const privacy: PollPrivacy | undefined = poll?.privacy;
9const options: CommentPollOption[] | undefined = poll?.options;
10

patchPoll Internal Link

Edit a poll in place, keeping its tallies: change the question, relabel an option, close or reopen it, or change who may see the voters. Options are addressed by id - to add, remove or reorder them, PUT the full list.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
commentPollPatchCommentPollPatchYes

Response

Rückgabe: SavePollResponse

Beispiel

patchPoll Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_9876543210";
5
6 const pollPatch: CommentPollPatch = {
7 question: "Which new feature would you like to see?",
8 options: [
9 { id: "opt-1", label: "Dark Mode" },
10 { id: "opt-2", label: "Multi-language Support" }
11 ]
12 };
13
14 const response: SavePollResponse = await patchPoll(tenantId, commentId, pollPatch);
15 console.log(response);
16})();
17

putPoll Internal Link

Attach a poll to a comment, or set the full state of the poll it already has.

Options are matched by id: an option sent with the id of an existing option keeps its votes (and takes the new label and position), an option sent without an id is added, and existing options left out of the list are removed along with the votes cast on them.

Keeping no existing option ids on a poll that has votes deletes all of them, so that needs replaceVotes=true.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
commentPollPutInputCommentPollPutInputJa
replaceVotesbooleanNein

Response

Returns: SavePollResponse

Example

putPoll Beispiel
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "9876543210";
4
5const optionA: CommentPollOptionInput = { text: "Dark mode" };
6const optionB: CommentPollOptionInput = { text: "Light mode" };
7
8const pollInput: CommentPollPutInput = {
9 question: "Which UI theme do you prefer?",
10 options: [optionA, optionB],
11};
12
13const replaceVotes: boolean = true;
14
15const result: SavePollResponse = await putPoll(tenantId, commentId, pollInput, replaceVotes);
16

createQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Antwort

Rückgabe: CreateQuestionConfigResponse

Beispiel

createQuestionConfig Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp-123";
4
5 const customOption: QuestionConfigCustomOptionsInner = {
6 key: "maxLength",
7 value: 500,
8 };
9
10 const createQuestionConfigBody: CreateQuestionConfigBody = {
11 name: "User Feedback",
12 description: "Collect user feedback after purchase",
13 enabled: true,
14 customOptions: [customOption],
15 // optionales Feld
16 tags: ["feedback", "post-purchase"],
17 };
18
19 const response: CreateQuestionConfigResponse = await createQuestionConfig(
20 tenantId,
21 createQuestionConfigBody
22 );
23
24 console.log(response);
25}
26

deleteQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteQuestionConfig Beispiel
Copy Copy
1
2async function executeDeletion() {
3 const tenantId: string = "tenant_12345";
4 const configId: string = "config_9876";
5 const result: APIEmptyResponse = await deleteQuestionConfig(tenantId, configId);
6 console.log(result);
7}
8executeDeletion();
9

getQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetQuestionConfigResponse

Beispiel

getQuestionConfig Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const questionId: string = "q-987654321";
4
5const configResponse: GetQuestionConfigResponse = await getQuestionConfig(tenantId, questionId);
6
7const status: APIStatus = configResponse.status;
8const questionConfig?: QuestionConfig = configResponse.question;
9const firstOption?: QuestionConfigCustomOptionsInner = questionConfig?.customOptions?.[0];
10

getQuestionConfigs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetQuestionConfigsResponse

Beispiel

getQuestionConfigs Beispiel
Copy Copy
1
2async function fetchConfigs() {
3 const tenantId: string = "tenant_12345";
4
5 const firstPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId);
6 const secondPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId, 20);
7}
8

updateQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionConfigBodyUpdateQuestionConfigBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateQuestionConfig Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const questionId: string = "question-42";
5
6 const updateBody: UpdateQuestionConfigBody = {
7 title: "Revised FAQ Question"
8 // isActive, customOptions, etc. sind optional und wurden weggelassen
9 };
10
11 const response: APIEmptyResponse = await updateQuestionConfig(tenantId, questionId, updateBody);
12 console.log(response);
13})();
14

createQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Antwort

Rückgabe: CreateQuestionResultResponse

Beispiel

createQuestionResult Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "q_9876",
6 answer: "Yes",
7 score: 5,
8 meta: [
9 { key: "source", value: "survey" }
10 ]
11};
12
13const result: CreateQuestionResultResponse = await createQuestionResult(tenantId, createQuestionResultBody);
14

deleteQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteQuestionResult Beispiel
Copy Copy
1
2async function runDelete() {
3 const tenantId: string = "tenant_12345";
4 const resultId: string = "qr_98765";
5
6 const response: APIEmptyResponse = await deleteQuestionResult(tenantId, resultId);
7 console.log(response);
8}
9

getQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetQuestionResultResponse

Beispiel

getQuestionResult Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const questionId: string = "question_98765";
4
5const response: GetQuestionResultResponse = await getQuestionResult(tenantId, questionId);
6
7const status: APIStatus | undefined = response.status;
8const firstResult: QuestionResult | undefined = response.results?.[0];
9const firstMeta: MetaItem | undefined = response.meta?.[0];
10
11console.log(response);
12

getQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

Antwort

Rückgabe: GetQuestionResultsResponse

Beispiel

getQuestionResults Beispiel
Copy Copy
1
2async function fetchResults() {
3 const tenantId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'blog-post-789';
5 const startDate: string = '2023-01-01T00:00:00Z';
6 const questionIds: string = 'q-abc123,q-def456';
7 const response: GetQuestionResultsResponse = await getQuestionResults(
8 tenantId,
9 urlId,
10 undefined,
11 startDate,
12 undefined,
13 questionIds
14 );
15 console.log(response);
16}
17

updateQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionResultBodyUpdateQuestionResultBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateQuestionResult Beispiel
Copy Copy
1
2const tenantId: string = "c1f5e8b2-9a4d-4f3a-8d2e-6b7c9d0e1f2a";
3const questionId: string = "qstn_1234567890";
4
5const updateBody: UpdateQuestionResultBody = {
6 score: 85,
7 comment: "Adjusted based on new criteria",
8 meta: [
9 { key: "reviewer", value: "john.doe@example.com" },
10 { key: "timestamp", value: new Date().toISOString() }
11 ]
12};
13
14const response: APIEmptyResponse = await updateQuestionResult(tenantId, questionId, updateBody);
15

aggregateQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
questionIdstringNein
questionIdsArrayNein
urlIdstringNein
timeBucketAggregateTimeBucketNein
startDateDateNein
forceRecalculatebooleanNein

Antwort

Rückgabe: AggregateQuestionResultsResponse

Beispiel

aggregateQuestionResults Beispiel
Copy Copy
1
2async function runAggregation() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const questionId: string = 'question-9f8e7d6c5b4a3';
5 const questionIds: string[] = ['question-1a2b3c', 'question-4d5e6f'];
6 const urlId: string = 'blog-post-2023-08-15';
7 const startDate: Date = new Date('2023-01-01T00:00:00Z');
8 const forceRecalculate: boolean = true;
9
10 const result: AggregateQuestionResultsResponse = await aggregateQuestionResults(
11 tenantId,
12 questionId,
13 questionIds,
14 urlId,
15 undefined,
16 startDate,
17 forceRecalculate
18 );
19}
20

bulkAggregateQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNein

Antwort

Rückgabe: BulkAggregateQuestionResultsResponse

Beispiel

bulkAggregateQuestionResults Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const request: BulkAggregateQuestionResultsRequest = {
5 items: [
6 {
7 questionId: "q_9876",
8 startDate: "2023-01-01T00:00:00Z",
9 endDate: "2023-01-31T23:59:59Z",
10 timeBucket: "day"
11 }
12 ]
13};
14
15const response: BulkAggregateQuestionResultsResponse = await bulkAggregateQuestionResults(tenantId, request, true);
16

combineCommentsWithQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
startDateDateNo
forceRecalculatebooleanNo
minValuenumberNo
maxValuenumberNo
limitnumberNo

Antwort

Rückgabe: CombineQuestionResultsWithCommentsResponse

Beispiel

combineCommentsWithQuestionResults Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const questionId: string | undefined = "q_987";
5 const questionIds: string[] = ["q_001", "q_002"];
6 const urlId: string | undefined = "url_abc";
7 const startDate: Date = new Date("2023-01-01T00:00:00Z");
8 const forceRecalculate: boolean = true;
9 const minValue: number = 0;
10 const maxValue: number = 100;
11 const limit: number = 50;
12
13 const result: CombineQuestionResultsWithCommentsResponse = await combineCommentsWithQuestionResults(
14 tenantId,
15 questionId,
16 questionIds,
17 urlId,
18 startDate,
19 forceRecalculate,
20 minValue,
21 maxValue,
22 limit
23 );
24
25 console.log(result);
26}
27
28runExample();
29

addSSOUser Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Antwort

Returns: AddSSOUserAPIResponse

Beispiel

addSSOUser Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const newUser: CreateAPISSOUserData = {
5 userId: "sso_user_987",
6 name: "Jane Doe",
7 email: "jane.doe@example.com",
8 // optionales Feld
9 avatarUrl: "https://example.com/avatars/jane.jpg",
10};
11
12const result: AddSSOUserAPIResponse = await addSSOUser(tenantId, newUser);
13

deleteSSOUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
deleteCommentsbooleanNein
commentDeleteModestringNein

Antwort

Rückgabe: DeleteSSOUserAPIResponse

Beispiel

deleteSSOUser Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const userId: string = "sso-user-42";
4const deleteComments: boolean = true;
5const commentDeleteMode: string = "hard";
6
7const detailedResult: DeleteSSOUserAPIResponse = await deleteSSOUser(
8 tenantId,
9 userId,
10 deleteComments,
11 commentDeleteMode
12);
13
14const simpleResult: DeleteSSOUserAPIResponse = await deleteSSOUser(
15 tenantId,
16 userId
17);
18

getSSOUserByEmail Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
emailstringJa

Antwort

Rückgabe: GetSSOUserByEmailAPIResponse

Beispiel

getSSOUserByEmail Beispiel
Copy Copy
1
2async function fetchSSOUser() {
3 const tenantId: string = "tenant_12345";
4 const email: string = "john.doe@example.com";
5
6 const result: GetSSOUserByEmailAPIResponse = await getSSOUserByEmail(tenantId, email);
7 const user: APISSOUser | undefined = result?.user;
8}
9

getSSOUserById Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes

Antwort

Rückgabe: GetSSOUserByIdAPIResponse

Beispiel

getSSOUserById Beispiel
Copy Copy
1
2async function fetchUser() {
3 const tenantId: string = "tenant-987654321";
4 const userId: string = "sso-user-abc123";
5 const result: GetSSOUserByIdAPIResponse = await getSSOUserById(tenantId, userId);
6 const ssoUser: APISSOUser = result.user;
7}
8

getSSOUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetSSOUsersResponse

Beispiel

getSSOUsers Beispiel
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4
5 // Aufruf ohne optionales `skip`
6 const firstPage: GetSSOUsersResponse = await getSSOUsers(tenantId);
7
8 // Aufruf mit optionalem `skip`
9 const secondPage: GetSSOUsersResponse = await getSSOUsers(tenantId, 100);
10
11 console.log(firstPage, secondPage);
12}
13
14runExample();
15

patchSSOUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNein

Antwort

Rückgabe: PatchSSOUserAPIResponse

Beispiel

patchSSOUser Beispiel
Copy Copy
1
2const tenantId: string = "c1f2a3b4-5678-90ab-cdef-1234567890ab";
3const userId: string = "user-987654321";
4const updateData: UpdateAPISSOUserData = {
5 email: "jane.smith@enterprise.com",
6 displayName: "Jane Smith",
7 role: "editor"
8};
9
10const responseWithComments: PatchSSOUserAPIResponse = await patchSSOUser(
11 tenantId,
12 userId,
13 updateData,
14 true
15);
16
17const responseWithoutComments: PatchSSOUserAPIResponse = await patchSSOUser(
18 tenantId,
19 userId,
20 updateData
21);
22

putSSOUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNein

Antwort

Rückgabe: PutSSOUserAPIResponse

Beispiel

putSSOUser Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_abc123";
4 const userId: string = "user_456def";
5
6 const updateData: UpdateAPISSOUserData = {
7 email: "jane.doe@example.com",
8 displayName: "Jane Doe",
9 isActive: true,
10 };
11
12 const response: PutSSOUserAPIResponse = await putSSOUser(tenantId, userId, updateData, true);
13})();
14

createSubscription Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataJa

Antwort

Rückgabe: CreateSubscriptionAPIResponse

Beispiel

createSubscription Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4
5 const subscriptionData: CreateAPIUserSubscriptionData = {
6 userId: "user-456",
7 planId: "premium-monthly",
8 startDate: new Date(),
9 trialPeriodDays: 14 // optionales Feld
10 };
11
12 const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, subscriptionData);
13 console.log(result);
14})();
15

deleteSubscription Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Rückgabe: DeleteSubscriptionAPIResponse

Beispiel

deleteSubscription Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9876";
4 const subscriptionId: string = "sub_54321";
5 const userId: string = "user_abc123";
6
7 // Mit optionaler userId
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // Ohne optionale userId
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

getSubscriptions Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein

Antwort

Rückgabe: GetSubscriptionsAPIResponse

Beispiel

getSubscriptions Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const userId: string = "user-789";
5
6 const responseWithUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
7 const responseWithoutUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
8})();
9

updateSubscription Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataJa
userIdstringNein

Antwort

Gibt zurück: UpdateSubscriptionAPIResponse

Beispiel

updateSubscription Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const subscriptionId: string = "sub_98765";
4
5const updateData: UpdateAPIUserSubscriptionData = {
6 planId: "premium_plan",
7 status: "active",
8 renewalDate: "2024-12-31",
9};
10
11const userId: string = "user_abcde";
12
13const response: UpdateSubscriptionAPIResponse = await updateSubscription(
14 tenantId,
15 subscriptionId,
16 updateData,
17 userId
18);
19

getTenantDailyUsages Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
yearNumbernumberNein
monthNumbernumberNein
dayNumbernumberNein
skipnumberNein

Antwort

Rückgabe: GetTenantDailyUsagesResponse

Beispiel

getTenantDailyUsages Beispiel
Copy Copy
1
2async function demoGetTenantDailyUsages() {
3 const tenantId: string = "tenant_9876";
4 const yearNumber: number = 2024;
5 const monthNumber: number = 2;
6 const dayNumber: number = 28;
7 const skip: number = 10;
8
9 const fullResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
10 tenantId,
11 yearNumber,
12 monthNumber,
13 dayNumber,
14 skip
15 );
16
17 const partialResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
18 tenantId,
19 yearNumber
20 );
21}
22

createTenantPackage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Antwort

Rückgabe: CreateTenantPackageResponse

Beispiel

createTenantPackage Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const createTenantPackageBody: CreateTenantPackageBody = {
5 name: "Enterprise Package",
6 priceCents: 49999,
7 // optionales Feld
8 description: "Full suite of enterprise features"
9 };
10 const result: CreateTenantPackageResponse = await createTenantPackage(tenantId, createTenantPackageBody);
11 console.log(result);
12}
13runExample();
14

deleteTenantPackage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteTenantPackage Beispiel
Copy Copy
1
2let tenantId: string = "tenant_12345";
3let packageId: string = "pkg_98765";
4
5const result: APIEmptyResponse = await deleteTenantPackage(tenantId, packageId);
6

getTenantPackage Internal Link


Parameter

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Antwort

Rückgabe: GetTenantPackageResponse

Beispiel

getTenantPackage Beispiel
Copy Copy
1
2function fetchPackage(tenantId?: string, id?: string): Promise<GetTenantPackageResponse> {
3 const tid: string = tenantId ?? "acme-corp-001";
4 const pid: string = id ?? "premium-plan-2024";
5 return getTenantPackage(tid, pid);
6}
7
8async function runExample(): Promise<void> {
9 const response: GetTenantPackageResponse = await fetchPackage();
10 const status: APIStatus | undefined = response.status;
11 const pkg: TenantPackage | undefined = response.package;
12}
13

getTenantPackages Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetTenantPackagesResponse

Beispiel

getTenantPackages Beispiel
Copy Copy
1
2async function fetchPackages() {
3 const tenantId: string = "acme-corp-001";
4 const skip: number = 15;
5
6 const resultWithSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId, skip);
7 const resultWithoutSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId);
8}
9

replaceTenantPackage Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

replaceTenantPackage Beispiel
Copy Copy
1
2async function replacePackageDemo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const packageId: string = "basic-plan-2023";
5 const replaceBody: ReplaceTenantPackageBody = {
6 newPackageId: "enterprise-plan-2024"
7 // optionale Felder können hier bei Bedarf hinzugefügt werden
8 };
9 const response: APIEmptyResponse = await replaceTenantPackage(tenantId, packageId, replaceBody);
10 console.log(response);
11}
12

updateTenantPackage Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateTenantPackage Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const packageId: string = "pkg_3a2b1c";
4
5const updateBody: UpdateTenantPackageBody = {
6 // optionale Felder können weggelassen oder bei Bedarf hinzugefügt werden
7 // newPackageName?: string;
8 // renewalDate?: string;
9};
10
11const result: APIEmptyResponse = await updateTenantPackage(tenantId, packageId, updateBody);
12

createTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantUserBodyCreateTenantUserBodyJa

Antwort

Rückgabe: CreateTenantUserResponse

Beispiel

createTenantUser Beispiel
Copy Copy
1
2async function addTenantUser() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const digestFreq: DigestEmailFrequency = 'daily';
5 const body: CreateTenantUserBody = {
6 email: 'jane.doe@example.com',
7 firstName: 'Jane',
8 lastName: 'Doe',
9 role: 'admin',
10 digestEmailFrequency: digestFreq,
11 phoneNumber: '+15551234567' // optional
12 };
13 const response: CreateTenantUserResponse = await createTenantUser(tenantId, body);
14 console.log(response);
15}
16addTenantUser();
17

deleteTenantUser Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes
deleteCommentsstringNo
commentDeleteModestringNo

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteTenantUser Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "u-112233";
5
6 const result1: APIEmptyResponse = await deleteTenantUser(tenantId, userId);
7 const result2: APIEmptyResponse = await deleteTenantUser(tenantId, userId, "true", "hard");
8
9 console.log(result1, result2);
10})();
11

getTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetTenantUserResponse

Beispiel

getTenantUser Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-tenant-001";
4 const userId: string = "user-12345";
5 const response: GetTenantUserResponse = await getTenantUser(tenantId, userId);
6 console.log(response);
7})();
8

getTenantUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Rückgabe: GetTenantUsersResponse

Beispiel

getTenantUsers Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const skip: number = 20;
4
5const firstPage: GetTenantUsersResponse = await getTenantUsers(tenantId);
6const secondPage: GetTenantUsersResponse = await getTenantUsers(tenantId, skip);
7

replaceTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

replaceTenantUser Beispiel
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const userId: string = "user-987654321";
4const replaceBody: ReplaceTenantUserBody = {
5 email: "newuser@example.com",
6 name: "New User",
7 role: "admin"
8};
9
10const response: APIEmptyResponse = await replaceTenantUser(
11 tenantId,
12 userId,
13 replaceBody,
14 "Migrated user to new tenant"
15);
16

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
redirectURLstringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

sendLoginLink Beispiel
Copy Copy
1
2interface APIStatus {
3 // Statusfelder
4}
5
6interface APIEmptyResponse {
7 status: APIStatus;
8}
9
10(async () => {
11 const tenantId: string = "acme-corp";
12 const userId: string = "user-98765";
13 const redirectURL: string = "https://app.example.com/welcome";
14
15 const responseWithRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId, redirectURL);
16 const responseWithoutRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId);
17})();
18

updateTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateTenantUser Beispiel
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_987";
5 const updateBody: UpdateTenantUserBody = {
6 email: "new.email@example.com",
7 role: "admin",
8 isActive: true
9 };
10 const comment: string = "Promoted to admin role";
11
12 const result: APIEmptyResponse = await updateTenantUser(tenantId, userId, updateBody, comment);
13 console.log(result);
14}
15
16runUpdate();
17

createTenant Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantBodyCreateTenantBodyJa

Antwort

Rückgabe: CreateTenantResponse

Beispiel

createTenant Beispiel
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp-2024";
4 const createTenantBody: CreateTenantBody = {
5 name: "Acme Corp",
6 domainConfiguration: { domain: "comments.acme.com", sslEnabled: true },
7 importedSite: { siteId: "site-123", source: "wordpress" },
8 billingInfo: { plan: "enterprise", renewalDate: "2025-01-01" },
9 description: "Tenant for Acme Corp's production environment", // optional
10 };
11 const response: CreateTenantResponse = await createTenant(tenantId, createTenantBody);
12}
13run();
14

deleteTenant Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
surestringNein

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteTenant Beispiel
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_9876";
5
6 const resultWithoutSure: APIEmptyResponse = await deleteTenant(tenantId, userId);
7 const resultWithSure: APIEmptyResponse = await deleteTenant(tenantId, userId, "confirm");
8}
9
10main();
11

getTenant Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes

Antwort

Rückgabe: GetTenantResponse

Beispiel

getTenant Beispiel
Copy Copy
1
2async function fetchTenant(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "tenant_12345";
5
6 const tenantResponse: GetTenantResponse = await getTenant(tenantId, id);
7
8 // Optionale Felder in der Antwort
9 const billing: BillingInfo | undefined = tenantResponse.billingInfo;
10 const domainConfig: APIDomainConfiguration | undefined = tenantResponse.domainConfiguration;
11}
12

getTenants Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
metastringNein
skipnumberNein

Antwort

Rückgabe: GetTenantsResponse

Beispiel

getTenants Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c3f5e9b2-4d1a-4f2b-9a6e-1234567890ab";
4 const meta: string = "includeBilling";
5 const skip: number = 10;
6
7 const result: GetTenantsResponse = await getTenants(tenantId, meta, skip);
8 console.log(result);
9}
10runExample();
11

updateTenant Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

updateTenant Beispiel
Copy Copy
1
2async function runUpdateTenant() {
3 const tenantId: string = "tenant-abc123";
4 const id: string = "config-456def";
5
6 const updateTenantBody: UpdateTenantBody = {
7 // erforderliches Feld
8 name: "Acme International",
9 // optionale Felder können weggelassen werden, z. B. billingInfo, domainConfiguration
10 };
11
12 const response: APIEmptyResponse = await updateTenant(tenantId, id, updateTenantBody);
13 console.log(response);
14}
15

changeTicketState Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Antwort

Rückgabe: ChangeTicketStateResponse

Beispiel

changeTicketState Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe";
5 const ticketId: string = "ticket-20230915-001";
6
7 const changeTicketStateBody: ChangeTicketStateBody = {
8 // Beispiel für optionales Feld
9 note: "Resolved after investigation"
10 };
11
12 const response: ChangeTicketStateResponse = await changeTicketState(
13 tenantId,
14 userId,
15 ticketId,
16 changeTicketStateBody
17 );
18
19 console.log(response);
20})();
21

createTicket Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Antwort

Rückgabe: CreateTicketResponse

Beispiel

createTicket Beispiel
Copy Copy
1
2async function submitTicket() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5
6 const ticketBody: CreateTicketBody = {
7 subject: "Login issues after password reset",
8 description: "User reports being unable to log in despite using the new password.",
9 priority: "medium",
10 // optionales Feld in CreateTicketBody
11 tags: ["login", "password-reset"]
12 };
13
14 const response: CreateTicketResponse = await createTicket(tenantId, userId, ticketBody);
15 console.log(response);
16}
17
18submitTicket();
19

getTicket Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Rückgabe: GetTicketResponse

Beispiel

getTicket Beispiel
Copy Copy
1
2async function fetchTickets() {
3 const tenantId: string = "acme-corp";
4 const ticketId: string = "ticket-12345";
5 const userId: string = "user-9876";
6
7 const ticketWithUser: GetTicketResponse = await getTicket(tenantId, ticketId, userId);
8 const ticketWithoutUser: GetTicketResponse = await getTicket(tenantId, ticketId);
9}
10

getTickets Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
statenumberNein
skipnumberNein
limitnumberNein

Antwort

Rückgabe: GetTicketsResponse

Beispiel

getTickets Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const ticketsSimple: GetTicketsResponse = await getTickets(tenantId);
5
6 const userId: string = "user_9876";
7 const state: number = 1; // z.B., offen
8 const skip: number = 0;
9 const limit: number = 20;
10 const ticketsFull: GetTicketsResponse = await getTickets(
11 tenantId,
12 userId,
13 state,
14 skip,
15 limit
16 );
17})();
18

getTranslations Internal Link

Parameter

NameTypErforderlichBeschreibung
namespacestringJa
componentstringJa
localestringNein
useFullTranslationIdsbooleanNein

Antwort

Rückgabe: GetTranslationsResponse

Beispiel

getTranslations Beispiel
Copy Copy
1
2async function fetchTranslations() {
3 const adminDashboard: GetTranslationsResponse = await getTranslations('admin', 'dashboard');
4 const userProfileFr: GetTranslationsResponse = await getTranslations('user', 'profile', 'fr-FR', true);
5}
6

uploadImage Internal Link

Bild hochladen und skalieren

Parameter

NameTypeRequiredDescription
tenantIdstringYes
fileBlobYes
sizePresetSizePresetNo
urlIdstringNo

Antwort

Rückgabe: UploadImageResponse

Beispiel

uploadImage Beispiel
Copy Copy
1
2const tenantId: string = "acme-tenant-01";
3const imageBlob: Blob = new Blob([new Uint8Array([137,80,78,71])], { type: "image/png" });
4
5const uploadResult1: UploadImageResponse = await uploadImage(tenantId, imageBlob);
6
7const sizePreset: SizePreset = { presetName: "medium" };
8const urlId: string = "article-9876";
9
10const uploadResult2: UploadImageResponse = await uploadImage(tenantId, imageBlob, sizePreset, urlId);
11

getUserBadgeProgressById Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIGetUserBadgeProgressResponse

Beispiel

Beispiel für getUserBadgeProgressById
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const badgeId: string = "badge-2024-07";
4
5const result: APIGetUserBadgeProgressResponse = await getUserBadgeProgressById(tenantId, badgeId);
6
7const progress: UserBadgeProgress | undefined = result?.progress;
8const status: APIStatus | undefined = result?.status;
9

getUserBadgeProgressByUserId Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa

Antwort

Rückgabe: APIGetUserBadgeProgressResponse

Beispiel

getUserBadgeProgressByUserId Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-42";
4
5const badgeProgress: APIGetUserBadgeProgressResponse = await getUserBadgeProgressByUserId(tenantId, userId);
6
7if (badgeProgress.status?.code !== undefined) {
8 const statusCode: number = badgeProgress.status.code;
9}
10
11if (badgeProgress.progress?.length) {
12 const firstProgress: UserBadgeProgress = badgeProgress.progress[0];
13}
14

getUserBadgeProgressList Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
limitnumberNein
skipnumberNein

Antwort

Rückgabe: APIGetUserBadgeProgressListResponse

Beispiel

Beispiel für getUserBadgeProgressList
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const userId: string = "user-123e4567-e89b-12d3-a456-426614174000";
5 const limit: number = 10;
6 const skip: number = 0;
7
8 const response: APIGetUserBadgeProgressListResponse = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 const status: APIStatus = response.status;
10 const badges: UserBadgeProgress[] = response.badges;
11})();
12

createUserBadge Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Antwort

Returns: APICreateUserBadgeResponse

Beispiel

createUserBadge Beispiel
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c";
4 const badgeParams: CreateUserBadgeParams = {
5 name: "Community Helper",
6 iconUrl: "https://cdn.example.com/badges/helper.png"
7 };
8 const response: APICreateUserBadgeResponse = await createUserBadge(tenantId, badgeParams);
9}
10main();
11

deleteUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptySuccessResponse

Beispiel

deleteUserBadge Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const badgeId: string = "moderator-badge";
5 const result: APIEmptySuccessResponse = await deleteUserBadge(tenantId, badgeId);
6 console.log(result);
7})();
8

getUserBadge Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIGetUserBadgeResponse

Beispiel

getUserBadge Beispiel
Copy Copy
1
2async function demoGetUserBadge() {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const userId: string = "user-123456";
5 const badgeResponse: APIGetUserBadgeResponse = await getUserBadge(tenantId, userId);
6}
7

getUserBadges Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
userIdstringNo
badgeIdstringNo
typenumberNo
displayedOnCommentsbooleanNo
limitnumberNo
skipnumberNo

Antwort

Rückgabe: APIGetUserBadgesResponse

Beispiel

getUserBadges Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4
5 // Alle Parameter angegeben
6 const fullResponse: APIGetUserBadgesResponse = await getUserBadges(
7 tenantId,
8 "user-42",
9 "badge-premium",
10 1,
11 true,
12 10,
13 0
14 );
15
16 // Nur erforderliche und ein optionaler Parameter (limit)
17 const limitedResponse: APIGetUserBadgesResponse = await getUserBadges(
18 tenantId,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 5
24 );
25
26 console.log(fullResponse, limitedResponse);
27})();
28

updateUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes
updateUserBadgeParamsUpdateUserBadgeParamsYes

Antwort

Rückgabe: APIEmptySuccessResponse

Beispiel

updateUserBadge Beispiel
Copy Copy
1
2const tenantId: string = "tenant-9f8b7c6d";
3const id: string = "user-4a3b2c1d";
4
5const updateParams: UpdateUserBadgeParams = {
6 badgeId: "badge-premium",
7 // optionales Feld
8 expiresAt: new Date("2025-12-31T23:59:59Z")
9};
10
11const result: APIEmptySuccessResponse = await updateUserBadge(tenantId, id, updateParams);
12

getUserNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Rückgabe: GetUserNotificationCountResponse

Beispiel

getUserNotificationCount Beispiel
Copy Copy
1
2async function demo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const ssoToken: string = "sso-token-xyz789";
5
6 const countWithoutSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId);
7 const countWithSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId, ssoToken);
8}
9
10demo();
11

getUserNotifications Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringNo
pageSizenumberNo
afterIdstringNo
includeContextbooleanNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
includeTranslationsbooleanNo
includeTenantNotificationsbooleanNo
ssostringNo

Antwort

Rückgabe: GetMyNotificationsResponse

Beispiel

getUserNotifications Beispiel
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "article-42";
5 const pageSize: number = 20;
6 const includeContext: boolean = true;
7 const unreadOnly: boolean = true;
8
9 const notifications: GetMyNotificationsResponse = await getUserNotifications(
10 tenantId,
11 urlId,
12 pageSize,
13 undefined,
14 includeContext,
15 undefined,
16 unreadOnly
17 );
18
19 console.log(notifications);
20}
21

resetUserNotificationCount Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Rückgabe: ResetUserNotificationsResponse

Beispiel

resetUserNotificationCount Beispiel
Copy Copy
1
2async function demoReset() {
3 const tenantId: string = "tenant_12345";
4 const ssoToken: string = "sso_abcdef123456";
5
6 const resultWithSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId, ssoToken);
7 const resultWithoutSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId);
8}
9
10demoReset();
11

resetUserNotifications Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
afterCreatedAtnumberNein
unreadOnlybooleanNein
dmOnlybooleanNein
noDmbooleanNein
ssostringNein

Antwort

Rückgabe: ResetUserNotificationsResponse

Beispiel

resetUserNotifications Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const afterId: string = "notif-2023-09-01";
5 const afterCreatedAt: number = 1693526400; // Unix-Zeitstempel
6 const unreadOnly: boolean = true;
7 const dmOnly: boolean = false;
8
9 const response: ResetUserNotificationsResponse = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly
15 );
16
17 console.log(response);
18})();
19

updateUserNotificationCommentSubscriptionStatus Internal Link

Benachrichtigungen für einen bestimmten Kommentar aktivieren oder deaktivieren.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNein

Antwort

Rückgabe: UpdateUserNotificationCommentSubscriptionStatusResponse

Beispiel

updateUserNotificationCommentSubscriptionStatus Beispiel
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const notificationId: string = "notif_9876";
5 const commentId: string = "comment_abc123";
6 const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum =
7 UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
8 const sso: string = "sso_token_456";
9
10 const resultWithSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
11 tenantId,
12 notificationId,
13 optedInOrOut,
14 commentId,
15 sso
16 );
17
18 const resultWithoutSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
19 tenantId,
20 notificationId,
21 optedInOrOut,
22 commentId
23 );
24}
25

updateUserNotificationPageSubscriptionStatus Internal Link

Aktivieren oder deaktivieren Sie Benachrichtigungen für eine Seite. Wenn Benutzer eine Seite abonniert haben, werden Benachrichtigungen für neue Hauptkommentare erstellt, und außerdem

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNein

Antwort

Rückgabe: UpdateUserNotificationPageSubscriptionStatusResponse

Beispiel

updateUserNotificationPageSubscriptionStatus Beispiel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const url: string = "https://example.com/articles/awesome-article";
6 const pageTitle: string = "Awesome Article";
7 const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum =
8 UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
9 const sso: string = "sso_token_abc";
10
11 const response: UpdateUserNotificationPageSubscriptionStatusResponse = await updateUserNotificationPageSubscriptionStatus(
12 tenantId,
13 urlId,
14 url,
15 pageTitle,
16 subscribedOrUnsubscribed,
17 sso
18 );
19
20 console.log(response);
21}
22
23runExample();
24

updateUserNotificationStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNein

Antwort

Rückgabe: UpdateUserNotificationStatusResponse

Beispiel

updateUserNotificationStatus Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const notificationId: string = "notif_9876";
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.READ;
5const ssoToken: string = "sso_token_abc";
6
7const responseWithSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
8 tenantId,
9 notificationId,
10 newStatus,
11 ssoToken
12);
13
14const responseWithoutSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
15 tenantId,
16 notificationId,
17 newStatus
18);
19

getUserPresenceStatuses Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Antwort

Rückgabe: GetUserPresenceStatusesResponse

Beispiel

getUserPresenceStatuses Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-tenant-42";
4 const urlIdWS: string = "post-9876";
5 const userIds: string = "alice,bob,carol";
6
7 const presence: GetUserPresenceStatusesResponse = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
8 console.log(presence);
9})();
10

searchUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
urlIdstringYes
usernameStartsWithstringNo
mentionGroupIdsArrayNo
ssostringNo
searchSectionSearchUsersSearchSectionEnumNo

Antwort

Rückgabe: SearchUsersResult

Beispiel

searchUsers Beispiel
Copy Copy
1
2async function example() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const usernameStartsWith: string = "john";
6 const mentionGroupIds: string[] = ["group1", "group2"];
7 const sso: string = "sso_token_abc";
8 const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.MENTIONS;
9
10 const result: SearchUsersResult = await searchUsers(
11 tenantId,
12 urlId,
13 usernameStartsWith,
14 mentionGroupIds,
15 sso,
16 searchSection
17 );
18
19 console.log(result);
20}
21

getUser Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes

Antwort

Rückgabe: GetUserResponse

Beispiel

getUser Beispiel
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_98765";
5 const response: GetUserResponse = await getUser(tenantId, id);
6 const { user }: { user?: User } = response;
7}
8main();
9

createVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
directionCreateVoteDirectionEnumJa
userIdstringNein
anonUserIdstringNein

Antwort

Rückgabe: VoteResponse

Beispiel

createVote Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "comment_67890";
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.UP;
5const userId: string = "user_abcde";
6
7const voteResult: VoteResponse = await createVote(tenantId, commentId, direction, userId);
8
9const anonUserId: string = "anon_zyxwv";
10const anonVoteResult: VoteResponse = await createVote(tenantId, commentId, direction, undefined, anonUserId);
11

deleteVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
editKeystringNein

Antwort

Rückgabe: VoteDeleteResponse

Beispiel

deleteVote Beispiel
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const editKey: string = "edit_abcde";
6
7 const responseWithKey: VoteDeleteResponse = await deleteVote(tenantId, commentId, editKey);
8 const responseWithoutKey: VoteDeleteResponse = await deleteVote(tenantId, commentId);
9}
10
11run();
12

getVotes Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Rückgabe: GetVotesResponse

Beispiel

getVotes Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "article-67890";
4
5(async () => {
6 const votesResponse: GetVotesResponse = await getVotes(tenantId, urlId);
7 // Example of accessing an optional property from the response
8 const firstVote: PublicVote | undefined = votesResponse.votes?.[0];
9})();
10

getVotesForUser Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdstringNo
anonUserIdstringNo

Antwort

Rückgabe: GetVotesForUserResponse

Beispiel

getVotesForUser Beispiel
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post_9876";
5 const userId: string = "user_abcde";
6 const anonUserId: string = "anon_5678";
7
8 const responseWithUser: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, userId);
9 const responseWithAnon: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
10}
11
12demo();
13

createWebhook Internal Link

Abonniert eine URL für ein Kommentarereignis (REST‑Hook‑Abonnement). Das erneute Abonnieren derselben URL für dasselbe Ereignis und dieselbe Domain gibt das bestehende Abonnement zurück. Lieferungen sind HMAC‑signiert, siehe die Webhooks‑Anleitung; der veraltete token‑Header wird bei API‑Abonnements niemals gesendet.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
createWebhookParamsCreateWebhookParamsJa

Antwort

Rückgabe: CreateWebhookResponse

Beispiel

createWebhook Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const webhookParams: CreateWebhookParams = {
5 event: "comment.created" as WebhookEventName,
6 method: "POST" as WebhookHTTPMethod,
7 url: "https://myapp.example.com/webhook",
8 source: "comment" as WebhookSource,
9 // optionaler Geheimschlüssel zur Payload‑Überprüfung
10 secret: "s3cr3tK3y123",
11};
12
13const result: CreateWebhookResponse = await createWebhook(tenantId, webhookParams);
14
15const webhookId: string = result.webhook.id;
16

deleteWebhook Internal Link

Unsubscribes (REST hook unsubscribe). Only subscriptions created through this API can be deleted here; dashboard-managed webhooks are edited in the dashboard.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: APIEmptyResponse

Beispiel

deleteWebhook Beispiel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const webhookId: string = "wh_98765";
4
5const result: APIEmptyResponse = await deleteWebhook(tenantId, webhookId);
6

getWebhooks Internal Link


Listet die für den Mandanten konfigurierten Webhooks auf, sowohl dashboard‑verwaltete Zeilen als auch API‑Abonnements.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
eventWebhookEventNameNein
domainstringNein
sourceWebhookSourceNein
skipnumberNein

Antwort

Rückgabe: GetWebhooksResponse

Beispiel

getWebhooks Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42';
4 const event: WebhookEventName = 'comment.created';
5 const domain: string = 'forum.example.org';
6 const source: WebhookSource = 'admin';
7 const skip: number = 0;
8
9 const fullResponse: GetWebhooksResponse = await getWebhooks(tenantId, event, domain, source, skip);
10 const minimalResponse: GetWebhooksResponse = await getWebhooks(tenantId);
11})();
12

getWebhookSamplePayloads Internal Link

Aktuelle Kommentare exakt in der Form, die Webhook‑Auslieferungen verwenden, zum Erstellen von Integrationen (z. B. Zapier‑Beispieldaten). Jedes Ereignis liefert dasselbe Kommentarobjekt, sodass event nur gültig sein muss.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
eventWebhookEventNameNein
limitnumberNein

Antwort

Rückgabe: GetWebhookSamplePayloadsResponse

Beispiel

Beispiel für getWebhookSamplePayloads
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3
4const responseAll: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
5 tenantId,
6 "comment.created",
7 10
8);
9
10const responseWithEvent: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
11 tenantId,
12 "comment.created"
13);
14
15const responseBasic: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
16 tenantId
17);
18

Benötigen Sie Hilfe?

Wenn Sie auf Probleme stoßen oder Fragen zum JavaScript-/TypeScript-SDK haben, bitte:

Mitwirken

Beiträge sind willkommen! Bitte besuchen Sie das GitHub-Repository für Richtlinien zur Mitarbeit.