FastComments.com

FastComments JavaScript/TypeScript SDK


Dette er det officielle JavaScript/TypeScript SDK til FastComments.

Administrer kommentarer, brugere, SSO og moderering fra Node.js eller i browseren.

Arkiv

Se på GitHub


AI coding agents Internal Link

skills.sh

Giv din kodeagent den FastComments‑kontekst, den har brug for – widgets, konfiguration, Secure SSO, REST‑API’en og SDK’erne:

npx skills add fastcomments/skills

Fungerer med Claude Code, Codex, Cursor, Copilot, Gemini og alle andre agenter, som skills CLI understøtter.

Installation Internal Link

npm

npm install fastcomments-sdk

API Documentation Internal Link


Fuld API-reference: docs/api/README.md

Browser vs Server Compatibility Internal Link


Dette SDK bruger to indgangspunkter for at sikre optimal kompatibilitet og forhindre kørselstidsfejl:

  • fastcomments-sdk/browser - Browser-sikker version med indbygget fetch
  • fastcomments-sdk/server - Fuld Node.js-version med SSO-understøttelse
  • fastcomments-sdk (standard) - Kun typer, sikker at importere hvor som helst

Public vs Secured APIs Internal Link

SDK'en indeholder disse API-klasser:

  • DefaultApi - Sikrede endpoints der kræver din API-nøgle for autentificering. Brug disse til server-side-operationer.
  • PublicApi - Offentlige endpoints som kan tilgås uden en API-nøgle. Disse kan kaldes direkte fra browsere/mobilenheder/etc.
  • ModerationApi - Moderator-dashboard endpoints (kommentarmodération, bans, badges, trust factor, søgning). Autentificeres via moderatorens session; send sso query-parametret for SSO-autentificerede moderatorer.
  • HiddenApi - Interne/admin endpoints til avancerede brugsscenarier.

Example: Using Public API (browser-safe)

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

const publicApi = new PublicApi();

// Hent kommentarer for en side (ingen API-nøgle kræves)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Example: Using Default API (server-side only)

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

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

// Hent kommentarer med fuld administratoradgang
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Example: Using Moderation API

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

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

// Moderator-autentificerede opkald (session-cookie, eller angiv `sso` for en SSO-moderator).
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 understøtter SSO til at integrere med dit eksisterende brugerautentifikationssystem. SSO-funktionalitet er kun tilgængelig i server-udgaven da det kræver Node.js crypto-funktioner.

Simpelt SSO (Kun server-side)

Simpelt SSO bør genereres på serversiden og sendes til klienten:

// Server-side code (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Create simple SSO using the built-in helper  
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();

// Send ssoToken to your client-side code
// Client-side code can then use this token with the browser SDK

Sikkert SSO (Server-side, anbefalet)

Sikkert SSO bør implementeres på serversiden og giver bedre sikkerhed:

// Server-side code (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Create secure SSO using the built-in helper
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();

// Use with API calls on the server
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Or send ssoConfig to client for browser usage

Brug af SSO fra browseren (med servergenereret token)

// Client-side code (browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Get SSO token from your server endpoint
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 med kommentaroprettelse

// Server-side: Create SSO and comment
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)
});

Common Use Cases Internal Link

Hent kommentarer for en side

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

Oprettelse af en kommentar

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

Stem på en kommentar

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 for opstemning, -1 for nedstemning
  }
});

Brugeradministration (Kræver API-nøgle)

// Søg efter brugere (kræver DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Live Events (Real-time Updates) Internal Link

Abonner på live-begivenheder for at få opdateringer i realtid om kommentarer, stemmer og andre aktiviteter.

Begivenheder på sideniveau

Lyt efter live-begivenheder på en specifik side (kommentarer, stemmer osv.):

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

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

// Abonner på live-begivenheder for en side
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (hent dette fra getComments-responsen)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Opdater din UI med den nye kommentar
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Opdater stemmetællinger i din UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Returner true hvis begivenheden blev håndteret
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Luk abonnementet når det er færdigt
subscription.close();

Abonner på brugerbegivenheder

Lyt efter brugerspecifikke begivenheder (notifikationer, nævnelser osv.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Hent dette fra getComments-responsen
};

// Abonner på brugerens personlige 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);
        // Vis notifikation i din UI
        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');
  }
);

// Luk når du er færdig
userSubscription.close();

Sådan får du userIdWS

Parameteren userIdWS er påkrævet for live-begivenheder og kan hentes fra API-responser:

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

// Udtræk userIdWS fra responsen
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Nu kan du abonnere på live-begivenheder
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Broadcast IDs Internal Link

Du vil se, at du skal sende et broadcastId i nogle API-kald. Når du modtager hændelser, får du dette ID tilbage, så du ved, at du kan ignorere eventet, hvis du planlægger at anvende ændringer optimistisk på klienten (hvilket du sandsynligvis vil gøre, da det giver den bedste oplevelse). Send en UUID her. ID'et bør være tilstrækkeligt unikt til ikke at forekomme to gange i en browsersession.

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() // Unikt ID for denne operation
  }
});

Error Handling 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

Creates a new trial account for an AI agent without a human signup. No API key is needed to call this.

The response contains the tenant id, an API key that works immediately against the REST API and the MCP server, and a claim URL. Give the claim URL to the human you are working for: opening it while logged in to FastComments attaches the account to them. Unclaimed accounts, and their keys, are deleted 72 hours after creation. Until claimed, the account has the standard trial limits.

Parameters

NameTypeRequiredDescription
createAgentTenantBodyCreateAgentTenantBodyYes

Response

Returns: CreateAgentTenantResponse

Example

createAgentTenant Eksempel
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

Aggregere dokumenter ved at gruppere dem (hvis groupBy er angivet) og anvende flere operationer. Forskellige operationer (f.eks. sum, countDistinct, avg osv.) understøttes.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
aggregationRequestAggregationRequestJa
parentTenantIdstringNej
includeStatsbooleanNej

Svar

Returnerer: AggregateResponse

Eksempel

aggregat Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
limitnumberNej
skipnumberNej
orderSORTDIRNej
afternumberNej
beforenumberNej
usernamestringNej
ipstringNej
crudTypestringNej
resourceNamestringNej
targetIdstringNej
targetstringNej
includeManagedTenantsbooleanNej

Svar

Returnerer: GetAuditLogsResponse

Eksempel

getAuditLogs Eksempel
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; // 1 day ago
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNej

Svar

Returnerer: BlockSuccess

Eksempel

blockFromCommentPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

Svar

Returnerer: UnblockSuccess

Eksempel

unBlockCommentPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdsstringJa
ssostringNej

Svar

Returnerer: CheckBlockedCommentsResponse

Eksempel

checkedCommentsForBlocked Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNej
anonUserIdstringNej

Svar

Returnerer: BlockSuccess

Eksempel

blockUserFromComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNej
ssostringNej

Svar

Returnerer: SaveCommentsResponseWithPresence

Eksempel

createCommentPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
contextUserIdstringNo
isLivebooleanNo

Svar

Returnerer: DeleteCommentResult

Eksempel

deleteComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
editKeystringNej
ssostringNej

Svar

Returnerer: PublicAPIDeleteCommentResponse

Eksempel

deleteCommentPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNej
ssostringNej

Svar

Returnerer: VoteDeleteResponse

Eksempel

deleteCommentVote Eksempel
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"; // valgfri
8const ssoToken: string = "sso_token_xyz"; // valgfri
9
10// Kald kun med de påkrævede parametre og en valgfri
11const deleteResult: VoteDeleteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18);
19
20// Kald med begge valgfrie parametre
21const deleteResultWithSSO: VoteDeleteResponse = await deleteCommentVote(
22 tenantId,
23 commentId,
24 voteId,
25 urlId,
26 broadcastId,
27 editKey,
28 ssoToken
29);
30

flagComment Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Svar

Returnerer: FlagCommentResponse

Eksempel

flagComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIGetCommentResponse

Eksempel

getComment Eksempel
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 af valgfrie felter
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
pagenumberNej
limitnumberNej
skipnumberNej
asTreebooleanNej
skipChildrennumberNej
limitChildrennumberNej
maxTreeDepthnumberNej
urlIdstringNej
userIdstringNej
anonUserIdstringNej
contextUserIdstringNej
hashTagstringNej
parentIdstringNej
directionSortDirectionsNej
fromDatenumberNej
toDatenumberNej

Svar

Returnerer: APIGetCommentsResponse

Eksempel

getComments Eksempel
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

Parametre

NameTypeRequiredDescription
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

Svar

Returnerer: GetCommentsResponseWithPresencePublicComment

Eksempel

getCommentsPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

Svar

Returnerer: PublicAPIGetCommentTextResponse

Eksempel

getCommentText Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
dirnumberJa
ssostringNej

Svar

Returnerer: GetCommentVoteUserNamesSuccessResponse

Eksempel

getCommentVoteUserNames Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

lockComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNej

Svar

Returnerer: ChangeCommentPinStatusResponse

Eksempel

pinComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createCommentParamsCreateCommentParamsJa
isLivebooleanNej
doSpamCheckbooleanNej
sendEmailsbooleanNej
populateNotificationsbooleanNej

Svar

Returnerer: APISaveCommentResponse

Eksempel

saveComment Eksempel
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, // isLive
23 true, // doSpamCheck
24 false, // sendEmails
25 true // populateNotifications
26);
27

saveCommentsBulk Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createCommentParamsArrayYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Svar

Returnerer: Array<SaveCommentsBulkResponse

Eksempel

saveCommentsBulk Eksempel
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


Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNej
ssostringNej

Svar

Returnerer: PublicAPISetCommentTextResponse

Eksempel

setCommentText Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNej
anonUserIdstringNej

Svar

Returnerer: UnblockSuccess

Eksempel

unBlockUserFromComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
userIdstringNej
anonUserIdstringNej

Svar

Returnerer: FlagCommentResponse

Eksempel

unFlagComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

unLockComment Eksempel
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

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNej

Response

Returnerer: ChangeCommentPinStatusResponse

Example

unPinComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updatableCommentParamsUpdatableCommentParamsYes
contextUserIdstringNo
doSpamCheckbooleanNo
isLivebooleanNo

Svar

Returnerer: APIEmptyResponse

Eksempel

updateComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
sessionIdstringNo
ssostringNo

Svar

Returnerer: VoteResponse

Eksempel

voteComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagenumberNo
includei10nbooleanNo
localestringNo
isCrawlerbooleanNo

Svar

Returnerer: GetCommentsForUserResponse

Eksempel

getCommentsForUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Svar

Returnerer: AddDomainConfigResponse

Eksempel

addDomainConfig Eksempel
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // beskrivelsen er valgfri og udeladt her
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

deleteDomainConfig Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
domainstringJa

Svar

Returnerer: DeleteDomainConfigResponse

Eksempel

deleteDomainConfig Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
domainstringYes

Svar

Returnerer: GetDomainConfigResponse

Eksempel

getDomainConfig Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa

Svar

Returnerer: GetDomainConfigsResponse

Eksempel

getDomainConfigs Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Svar

Returnerer: PatchDomainConfigResponse

Eksempel

patchDomainConfig Eksempel
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, // valgfri parameter demonstreret
9 };
10 const response: PatchDomainConfigResponse = await patchDomainConfig(tenantId, domainToUpdate, patchParams);
11 console.log(response);
12}
13
14updateDomainConfig();
15

putDomainConfig Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Svar

Returnerer: PutDomainConfigResponse

Eksempel

putDomainConfig Eksempel
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 // valgfrit felt udeladt, f.eks., 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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Response

Returnerer: CreateEmailTemplateResponse

Eksempel

createEmailTemplate Eksempel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const templateBody: CreateEmailTemplateBody = {
5 name: "Weekly Summary",
6 subject: "Your weekly activity report",
7 // valgfrit felt
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteEmailTemplate Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
errorIdstringYes

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteEmailTemplateRenderError Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: GetEmailTemplateResponse

Eksempel

getEmailTemplate Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa

Svar

Returnerer: GetEmailTemplateDefinitionsResponse

Eksempel

getEmailTemplateDefinitions Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
skipnumberNo

Svar

Returnerer: GetEmailTemplateRenderErrorsResponse

Eksempel

getEmailTemplateRenderErrors Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
skipnumberNej

Svar

Returnerer: GetEmailTemplatesResponse

Eksempel

getEmailTemplates Eksempel
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

Parametre

NameTypeRequiredDescription
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNej

Svar

Returnerer: RenderEmailTemplateResponse

Eksempel

renderEmailTemplate Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

updateEmailTemplate Eksempel
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 er valgfri og udeladt
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNej

Svar

Returnerer: GetEventLogResponse

Eksempel

getEventLog Eksempel
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; // 24 timer siden
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNej

Svar

Returnerer: GetEventLogResponse

Eksempel

getGlobalEventLog Eksempel
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; // 24 timer siden
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
isLivebooleanNo
doSpamCheckbooleanNo
skipDupCheckbooleanNo

Svar

Returnerer: CreateFeedPostsResponse

Eksempel

createFeedPost Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
ssostringNo

Svar

Returnerer: CreateFeedPostResponse

Eksempel

createFeedPostPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
postIdstringJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: DeleteFeedPostPublicResponse

Eksempel

deleteFeedPostPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
afterIdstringNej
limitnumberNej
tagsArrayNej

Svar

Returnerer: GetFeedPostsResponse

Eksempel

getFeedPosts Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
afterIdstringNej
limitnumberNej
tagsArrayNej
ssostringNej
isCrawlerbooleanNej
includeUserInfobooleanNej

Svar

Returnerer: PublicFeedPostsResponse

Eksempel

getFeedPostsPublic Eksempel
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

Parametre

NameTypeRequiredDescription
tenantIdstringJa
postIdsArrayJa
ssostringNej

Svar

Returnerer: FeedPostsStatsResponse

Eksempel

getFeedPostsStats Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
postIdsArrayNej
ssostringNej

Svar

Returnerer: UserReactsResponse

Eksempel

getUserReactsPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNej
broadcastIdstringNej
ssostringNej

Svar

Returnerer: ReactFeedPostResponse

Eksempel

reactFeedPostPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Svar

Returnerer: APIEmptyResponse

Eksempel

updateFeedPost Eksempel
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], // valgfri
29 links: [link] // valgfri
30 };
31
32 const response: APIEmptyResponse = await updateFeedPost(tenantId, postId, feedPost);
33 console.log(response);
34}
35
36runUpdate();
37

updateFeedPostPublic Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: CreateFeedPostResponse

Eksempel

updateFeedPostPublic Eksempel
Copy Copy
1
2// Definer parametre
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

Parametre

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
isFlaggedbooleanYes
ssostringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

flagCommentPublic Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
largeInternalURLSanitizedstringJa

Svar

Returnerer: GifGetLargeResponse

Eksempel

getGifLarge Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
searchstringJa
localestringNej
ratingstringNej
pagenumberNej

Svar

Returnerer: GetGifsSearchResponse

Eksempel

getGifsSearch Eksempel
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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
localestringNo
ratingstringNo
pagenumberNo

Response

Returns: GetGifsTrendingResponse

Example

getGifsTrending Eksempel
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 // Bruger kun den påkrævede parameter
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

addHashTag Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createHashTagBodyCreateHashTagBodyNej

Svar

Returnerer: CreateHashTagResponse

Eksempel

addHashTag Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNej

Svar

Returnerer: BulkCreateHashTagsResponse

Eksempel

addHashTagsBulk Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
tagstringJa
deleteHashTagRequestBodyDeleteHashTagRequestBodyNej

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteHashTag Eksempel
Copy Copy
1
2const tenantId: string = "tenant_42";
3const tag: string = "high-priority";
4
5const requestBody: DeleteHashTagRequestBody = {
6 // udfyld felterne efter behov
7};
8
9const resultWithBody: APIEmptyResponse = await deleteHashTag(tenantId, tag, requestBody);
10const resultWithoutBody: APIEmptyResponse = await deleteHashTag(tenantId, tag);
11

getHashTags Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
pagenumberNo

Svar

Returnerer: GetHashTagsResponse

Eksempel

getHashTags Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
tagstringJa
updateHashTagBodyUpdateHashTagBodyNej

Svar

Returnerer: UpdateHashTagResponse

Eksempel

patchHashTag Eksempel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const tag: string = "news";
5
6 // Kald uden valgfri body
7 const responseWithoutBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag);
8
9 // Forbered body til opdatering
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


Identificerer den legitimationsoplysning i brug: den lejer den tilhører, og for OAuth‑tokens, brugeren der har autoriseret den.
Integrationer bruger dette til at teste en forbindelse og mærke den.

Parametre

NameTypeRequiredDescription
tenantIdstringYes

Svar

Returnerer: GetMeResponse

Eksempel

getMe Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
voteIdstringYes
broadcastIdstringNo
ssostringNo

Svar

Returnerer: VoteDeleteResponse

Eksempel

deleteModerationVote Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
pagenumberNo
countnumberNo
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
demobooleanNo
ssostringNo

Svar

Returnerer: ModerationAPIGetCommentsResponse

Eksempel

getApiComments Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
batchJobIdstringNej
ssostringNej

Svar

Returnerer: ModerationExportStatusResponse

Eksempel

getApiExportStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
textSearchstringNej
byIPFromCommentstringNej
filtersstringNej
searchFiltersstringNej
afterIdstringNej
demobooleanNej
ssostringNej

Svar

Returnerer: ModerationAPIGetCommentIdsResponse

Eksempel

getApiIds Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
ssostringNej

Svar

Returnerer: GetBannedUsersFromCommentResponse

Eksempel

getBanUsersFromComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
ssostringNo

Svar

Returnerer: GetCommentBanStatusResponse

Eksempel

getCommentBanStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
ssostringNo

Svar

Returnerer: ModerationAPIChildCommentsResponse

Eksempel

getCommentChildren Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demobooleanNo
ssostringNo

Svar

Returnerer: ModerationAPICountCommentsResponse

Eksempel

getCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
ssostringNej

Svar

Returnerer: GetBannedUsersCountResponse

Eksempel

getCounts Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
ssostringNo

Svar

Returnerer: ModerationAPIGetLogsResponse

Eksempel

getLogs Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
ssostringNej

Svar

Returnerer: GetTenantManualBadgesResponse

Eksempel

getManualBadges Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
badgesUserIdstringNo
commentIdstringNo
ssostringNo

Svar

Returnerer: GetUserManualBadgesResponse

Eksempel

getManualBadgesForUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
includeEmailbooleanNo
includeIPbooleanNo
ssostringNo

Svar

Returnerer: ModerationAPICommentResponse

Eksempel

getModerationComment Eksempel
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Kald kun med påkrævede parametre
7 const basicResponse: ModerationAPICommentResponse = await getModerationComment(tenantId, commentId);
8
9 // Kald med valgfrie parametre
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
ssostringNej

Svar

Returnerer: GetCommentTextResponse

Eksempel

getModerationCommentText Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
includeByUserIdAndEmailbooleanNej
includeByIPbooleanNej
includeByEmailDomainbooleanNej
ssostringNej

Svar

Returnerer: PreBanSummary

Eksempel

getPreBanSummary Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
valuestringNo
filtersstringNo
searchFiltersstringNo
ssostringNo

Svar

Returns: ModerationCommentSearchResponse

Eksempel

getSearchCommentsSummary Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
valuestringNej
ssostringNej

Svar

Returnerer: ModerationPageSearchResponse

Eksempel

getSearchPages Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
valuestringNej
ssostringNej

Svar

Returnerer: ModerationSiteSearchResponse

Eksempel

getSearchSites Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
textSearchstringNej
ssostringNej

Svar

Returnerer: ModerationSuggestResponse

Eksempel

getSearchSuggest Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
valuestringNej
ssostringNej

Svar

Returnerer: ModerationUserSearchResponse

Eksempel

getSearchUsers Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
userIdstringNo
ssostringNo

Svar

Returnerer: GetUserTrustFactorResponse

Eksempel

getTrustFactor Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
ssostringNej

Svar

Returnerer: APIModerateGetUserBanPreferencesResponse

Eksempel

getUserBanPreference Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringNej
ssostringNej

Svar

Returnerer: GetUserInternalProfileResponse

Eksempel

getUserInternalProfile Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsYes
broadcastIdstringNo
ssostringNo

Svar

Returnerer: AdjustVotesResponse

Eksempel

postAdjustCommentVotes Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
textSearchstringNej
byIPFromCommentstringNej
filtersstringNej
searchFiltersstringNej
sortsstringNej
ssostringNej

Respons

Returnerer: ModerationExportResponse

Eksempel

postApiExport Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
banEmailbooleanNej
banEmailDomainbooleanNej
banIPbooleanNej
deleteAllUsersCommentsbooleanNej
bannedUntilstringNej
isShadowBanbooleanNej
updateIdstringNej
banReasonstringNej
ssostringNej

Svar

Returnerer: BanUserFromCommentResult

Eksempel

postBanUserFromComment Eksempel
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 (udeladt)
8 true, // banIP
9 false, // deleteAllUsersComments
10 "2025-01-01T00:00:00Z", // bannedUntil
11 true, // isShadowBan
12 undefined, // updateId (udeladt)
13 "Harassment", // banReason
14 undefined // sso (udeladt)
15 );
16
17 console.log(result);
18}
19

postBanUserUndo Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
banUserUndoParamsBanUserUndoParamsJa
ssostringNej

Svar

Returns: APIEmptyResponse

Eksempel

postBanUserUndo Eksempel
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const undoParams: BanUserUndoParams = {
5 userId: "user_12345",
6 // yderligere påkrævede felter kan tilføjes her
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
bulkPreBanParamsBulkPreBanParamsJa
includeByUserIdAndEmailbooleanNej
includeByIPbooleanNej
includeByEmailDomainbooleanNej
ssostringNej

Svar

Returnerer: BulkPreBanSummary

Eksempel

postBulkPreBanSummary Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentsByIdsParamsCommentsByIdsParamsJa
ssostringNej

Svar

Returnerer: ModerationAPIChildCommentsResponse

Eksempel

postCommentsByIds Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

postFlagComment Eksempel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5
6 // Kun påkrævede parametre
7 const result1: APIEmptyResponse = await postFlagComment(tenantId, commentId);
8
9 // Inkluderer valgfrie parametre
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: PostRemoveCommentApiResponse

Eksempel

postRemoveComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

postRestoreDeletedComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
approvedbooleanNo
broadcastIdstringNo
ssostringNo

Svar

Returns: SetCommentApprovedResponse

Eksempel

postSetCommentApprovalStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
reviewedbooleanNej
broadcastIdstringNej
ssostringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

postSetCommentReviewStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
spambooleanNo
permNotSpambooleanNo
broadcastIdstringNo
ssostringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

postSetCommentSpamStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
setCommentTextParamsSetCommentTextParamsJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: SetCommentTextResponse

Eksempel

postSetCommentText Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
broadcastIdstringNej
ssostringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

postUnFlagComment Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
directionstringNej
broadcastIdstringNej
ssostringNej

Svar

Returnerer: VoteResponse

Eksempel

postVote Eksempel
Copy Copy
1
2async function runVoteExamples(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Kald kun med påkrævede parametre
7 const simpleVote: VoteResponse = await postVote(tenantId, commentId);
8
9 // Kald med valgfrie parametre
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
ssostringNo

Svar

Returnerer: AwardUserBadgeResponse

Eksempel

putAwardBadge Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
ssostringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

putCloseThread Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
badgeIdstringJa
userIdstringNej
commentIdstringNej
broadcastIdstringNej
ssostringNej

Svar

Returnerer: RemoveUserBadgeResponse

Eksempel

putRemoveBadge Eksempel
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

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
ssostringNej

Response

Returnerer: APIEmptyResponse

Example

putReopenThread Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringNej
trustFactorstringNej
ssostringNej

Svar

Returnerer: SetUserTrustFactorResponse

Eksempel

setTrustFactor Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Svar

Returns: CreateModeratorResponse

Eksempel

createModerator Eksempel
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const moderatorPayload: CreateModeratorBody = {
5 userId: "user_9876",
6 // valgfrit felt; kan udelades hvis ikke nødvendigt
7 notes: "Temporary moderator for event"
8};
9
10const response: CreateModeratorResponse = await createModerator(tenantId, moderatorPayload);
11

deleteModerator Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
sendEmailstringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteModerator Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: GetModeratorResponse

Eksempel

getModerator Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
skipnumberNej

Svar

Returnerer: GetModeratorsResponse

Eksempel

getModerators Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
fromNamestringYes

Svar

Returnerer: APIEmptyResponse

Eksempel

sendInvite Eksempel
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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

Response

Returns: APIEmptyResponse

Example

updateModerator Eksempel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const moderatorId: string = "mod_12345";
4
5const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 // role?: string er valgfri og udeladt her
8};
9
10const result: APIEmptyResponse = await updateModerator(tenantId, moderatorId, updateBody);
11

deleteNotificationCount Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteNotificationCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: GetCachedNotificationCountResponse

Eksempel

getCachedNotificationCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo

Svar

Returnerer: GetNotificationCountResponse

Eksempel

getNotificationCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo
skipnumberNo

Svar

Returnerer: GetNotificationsResponse

Eksempel

getNotifications Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

updateNotification Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
titlestringNej
ssostringNej

Svar

Returnerer: CreateV1PageReact

Eksempel

createV1PageReact Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo
ssostringNo

Svar

Returnerer: CreateV1PageReact

Eksempel

createV2PageReact Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
ssostringNo

Svar

Returnerer: CreateV1PageReact

Eksempel

deleteV1PageReact Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
idstringYes
ssostringNo

Svar

Returnerer: CreateV1PageReact

Eksempel

deleteV2PageReact Eksempel
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 // Kald uden valgfri sso
8 const resultWithoutSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId);
9
10 // Kald med valgfri sso
11 const ssoToken: string = "sso_token_xyz";
12 const resultWithSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId, ssoToken);
13}
14

getV1PageLikes Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
ssostringNej

Svar

Returnerer: GetV1PageLikes

Eksempel

getV1PageLikes Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
ssostringNej

Svar

Returnerer: GetV2PageReacts

Eksempel

getV2PageReacts Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
idstringJa
ssostringNej

Svar

Returnerer: GetV2PageReactUsersResponse

Eksempel

getV2PageReactUsers Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createAPIPageDataCreateAPIPageDataYes

Svar

Returnerer: AddPageAPIResponse

Eksempel

addPage Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Respons

Returnerer: DeletePageAPIResponse

Eksempel

deletePage Eksempel
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. Use this after exhausting /users/online to render a "Members" section. Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
afterNamestringNo
afterUserIdstringNo

Response

Returns: PageUsersOfflineResponse

Example

getOfflineUsers Eksempel
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


Aktuelt online seere af en side: personer, hvis websocket‑session er abonneret på siden lige nu. Returnerer anonCount + totalCount (rum‑omfattende abonnenter, inklusive anonyme seere som vi ikke tæller op).

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
afterNamestringNo
afterUserIdstringNo

Svar

Returnerer: PageUsersOnlineResponse

Eksempel

getOnlineUsers Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes

Svar

Returnerer: GetPageByURLIdAPIResponse

Eksempel

getPageByURLId Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa

Svar

Returnerer: GetPagesAPIResponse

Eksempel

getPages Eksempel
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 sider for en lejer. Bruges af FChat desktop‑klienten til at udfylde sin rumliste.
Kræver enableFChat at være sand på den løste brugerdefinerede konfiguration for hver side.
Sider, der kræver SSO, filtreres i forhold til den anmodende brugers gruppeadgang.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
cursorstringNej
limitnumberNej
qstringNej
sortByPagesSortByNej
hasCommentsbooleanNej

Response

Returns: GetPublicPagesResponse

Example

getPagesPublic Eksempel
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

Massebrugerinfo for en lejer. Givet userIds returneres visningsinfo fra User / SSOUser.
Bruges af kommentarfunktionen til at berige brugere, der netop er dukket op via en tilstedeværelseshændelse.
Ingen sidekontekst: privatliv håndhæves ensartet (private profiler maskeres).

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idsstringJa

Svar

Returnerer: PageUsersInfoResponse

Eksempel

getUsersInfo Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Svar

Returnerer: PatchPageAPIResponse

Eksempel

patchPage Eksempel
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 kan udelades
9 };
10
11 const response: PatchPageAPIResponse = await patchPage(tenantId, pageId, updateData);
12})();
13

deletePendingWebhookEvent Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: APIEmptyResponse

Eksempel

deletePendingWebhookEvent Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo

Svar

Returnerer: GetPendingWebhookEventCountResponse

Eksempel

getPendingWebhookEventCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo
skipnumberNo

Svar

Returnerer: GetPendingWebhookEventsResponse

Eksempel

getPendingWebhookEvents Eksempel
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

Record en stemme i en afstemning, eller flyt en eksisterende til en anden mulighed. En vælger har højst én stemme pr. afstemning, så hvis du kalder dette igen for den samme vælger, flyttes deres stemme i stedet for at tilføje en ny.

Dette overholder sidens afstemningsindstillinger: hvis afstemning kun er tilladt for loggede brugere, afvises en stemme kun med et anonUserId, og anonyme stemmer er hastighedsbegrænset per IP per afstemning.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createPollVoteBodyCreatePollVoteBodyYes

Response

Returns: CreatePollVoteResponse

Example

createPollVote Eksempel
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 er valgfri og udeladt her
9 };
10
11 const result: CreatePollVoteResponse = await createPollVote(tenantId, vote);
12 console.log(result);
13})();
14

deletePollVote Internal Link


Træk en stemme tilbage. Den mulighed, den blev afgivet på, får sin optælling tilbage.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: DeletePollVoteResponse

Eksempel

deletePollVote Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: GetPollVoteResponse

Eksempel

getPollVote Eksempel
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

The individual votes behind one poll's tallies, oldest first.

En afstemning tilhører en kommentar, så stemmer læses altid én afstemning ad gangen - commentId er påkrævet. Det holder hver forespørgsel på de indekser, som samlingen allerede har.

Overholder afstemningens privatliv: en anonym afstemnings stemmer kan ikke læses (poll-anonymous), her eller via id.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
voterIdstringNo
optionIdstringNo
skipnumberNo

Response

Returnerer: GetPollVotesResponse

Eksempel

getPollVotes Eksempel
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


Fjern en afstemning fra dens kommentar, sammen med hver stemme afgivet på den. Kommentaren selv forbliver uændret.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa

Svar

Returnerer: APIEmptyResponse

Eksempel

deletePoll Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes

Svar

Returnerer: GetPollResponse

Eksempel

getPoll Eksempel
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

Rediger en afstemning på stedet, mens du bevarer stemmetal: ændr spørgsmålet, omdøb en mulighed, luk eller genåbn den, eller ændr hvem der kan se vælgerne. Muligheder adresseres efter id - for at tilføje, fjerne eller omarrangere dem, PUT den fulde liste.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
commentPollPatchCommentPollPatchJa

Response

Returnerer: SavePollResponse

Example

patchPoll Eksempel
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

Vedhæft en afstemning til en kommentar, eller indstil den fulde tilstand af den afstemning, den allerede har.

Muligheder matches efter id: en mulighed sendt med id'et på en eksisterende mulighed bevarer sine stemmer (og får den nye etiket og position), en mulighed sendt uden et id tilføjes, og eksisterende muligheder, der udelades fra listen, fjernes sammen med de afgivne stemmer.

Hvis ingen eksisterende mulighedsid'er bevares på en afstemning, der har stemmer, slettes alle, så det kræver replaceVotes=true.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
commentIdstringJa
commentPollPutInputCommentPollPutInputJa
replaceVotesbooleanNej

Svar

Returns: SavePollResponse

Eksempel

putPoll Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyYes

Svar

Returnerer: CreateQuestionConfigResponse

Eksempel

createQuestionConfig Eksempel
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 // valgfrit felt
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteQuestionConfig Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Respons

Returnerer: GetQuestionConfigResponse

Eksempel

getQuestionConfig Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
skipnumberNej

Svar

Returnerer: GetQuestionConfigsResponse

Eksempel

getQuestionConfigs Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

updateQuestionConfig Eksempel
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. er valgfrie og udeladt
9 };
10
11 const response: APIEmptyResponse = await updateQuestionConfig(tenantId, questionId, updateBody);
12 console.log(response);
13})();
14

createQuestionResult Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Svar

Returnerer: CreateQuestionResultResponse

Eksempel

createQuestionResult Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteQuestionResult Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returns: GetQuestionResultResponse

Eksempel

getQuestionResult Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

Svar

Returnerer: GetQuestionResultsResponse

Eksempel

getQuestionResults Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

updateQuestionResult Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
questionIdstringNej
questionIdsArrayNej
urlIdstringNej
timeBucketAggregateTimeBucketNej
startDateDateNej
forceRecalculatebooleanNej

Svar

Returnerer: AggregateQuestionResultsResponse

Eksempel

aggregateQuestionResults Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNej

Svar

Returnerer: BulkAggregateQuestionResultsResponse

Eksempel

bulkAggregateQuestionResults Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
startDateDateNo
forceRecalculatebooleanNo
minValuenumberNo
maxValuenumberNo
limitnumberNo

Svar

Returnerer: CombineQuestionResultsWithCommentsResponse

Eksempel

combineCommentsWithQuestionResults Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Respons

Returnerer: AddSSOUserAPIResponse

Eksempel

addSSOUser Eksempel
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 // valgfrit felt
9 avatarUrl: "https://example.com/avatars/jane.jpg",
10};
11
12const result: AddSSOUserAPIResponse = await addSSOUser(tenantId, newUser);
13

deleteSSOUser Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
deleteCommentsbooleanNej
commentDeleteModestringNej

Svar

Returnerer: DeleteSSOUserAPIResponse

Eksempel

deleteSSOUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
emailstringJa

Svar

Returnerer: GetSSOUserByEmailAPIResponse

Eksempel

getSSOUserByEmail Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: GetSSOUserByIdAPIResponse

Eksempel

getSSOUserById Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
skipnumberNo

Svar

Returnerer: GetSSOUsersResponse

Eksempel

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

patchSSOUser Internal Link

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsbooleanNo

Response

Returnerer: PatchSSOUserAPIResponse

Example

patchSSOUser Eksempel
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

Parametre

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsbooleanNo

Svar

Returns: PutSSOUserAPIResponse

Eksempel

putSSOUser Eksempel
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


Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataYes

Svar

Returnerer: CreateSubscriptionAPIResponse

Eksempel

createSubscription Eksempel
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 // valgfrit felt
10 };
11
12 const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, subscriptionData);
13 console.log(result);
14})();
15

deleteSubscription Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
userIdstringNo

Svar

Returns: DeleteSubscriptionAPIResponse

Eksempel

deleteSubscription Eksempel
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 // Med valgfri userId
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // Uden valgfri userId
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

getSubscriptions Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringNej

Svar

Returnerer: GetSubscriptionsAPIResponse

Eksempel

getSubscriptions Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataJa
userIdstringNej

Svar

Returnerer: UpdateSubscriptionAPIResponse

Eksempel

updateSubscription Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
yearNumbernumberNo
monthNumbernumberNo
dayNumbernumberNo
skipnumberNo

Svar

Returnerer: GetTenantDailyUsagesResponse

Eksempel

getTenantDailyUsages Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Svar

Returnerer: CreateTenantPackageResponse

Eksempel

createTenantPackage Eksempel
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const createTenantPackageBody: CreateTenantPackageBody = {
5 name: "Enterprise Package",
6 priceCents: 49999,
7 // valgfrit felt
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteTenantPackage Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: GetTenantPackageResponse

Eksempel

getTenantPackage Eksempel
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


Parametre

NameTypeRequiredDescription
tenantIdstringYes
skipnumberNo

Svar

Returnerer: GetTenantPackagesResponse

Eksempel

getTenantPackages Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
replaceTenantPackageBodyReplaceTenantPackageBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

replaceTenantPackage Eksempel
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 // valgfrie felter kan tilføjes her, hvis nødvendigt
8 };
9 const response: APIEmptyResponse = await replaceTenantPackage(tenantId, packageId, replaceBody);
10 console.log(response);
11}
12

updateTenantPackage Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

updateTenantPackage Eksempel
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const packageId: string = "pkg_3a2b1c";
4
5const updateBody: UpdateTenantPackageBody = {
6 // valgfrie felter kan udelades eller inkluderes efter behov
7 // newPackageName?: string;
8 // renewalDate?: string;
9};
10
11const result: APIEmptyResponse = await updateTenantPackage(tenantId, packageId, updateBody);
12

createTenantUser Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createTenantUserBodyCreateTenantUserBodyJa

Svar

Returnerer: CreateTenantUserResponse

Eksempel

createTenantUser Eksempel
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' // valgfri
12 };
13 const response: CreateTenantUserResponse = await createTenantUser(tenantId, body);
14 console.log(response);
15}
16addTenantUser();
17

deleteTenantUser Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
deleteCommentsstringNo
commentDeleteModestringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteTenantUser Eksempel
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


Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returnerer: GetTenantUserResponse

Eksempel

getTenantUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
skipnumberNej

Svar

Returnerer: GetTenantUsersResponse

Eksempel

getTenantUsers Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

replaceTenantUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
redirectURLstringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

sendLoginLink Eksempel
Copy Copy
1
2interface APIStatus {
3 // statusfelter
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNej

Svar

Returnerer: APIEmptyResponse

Eksempel

updateTenantUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Svar

Returnerer: CreateTenantResponse

Eksempel

createTenant Eksempel
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", // valgfri
10 };
11 const response: CreateTenantResponse = await createTenant(tenantId, createTenantBody);
12}
13run();
14

deleteTenant Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
surestringNo

Svar

Returnerer: APIEmptyResponse

Eksempel

deleteTenant Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: GetTenantResponse

Eksempel

getTenant Eksempel
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 // Valgfrie felter i svaret
9 const billing: BillingInfo | undefined = tenantResponse.billingInfo;
10 const domainConfig: APIDomainConfiguration | undefined = tenantResponse.domainConfiguration;
11}
12

getTenants Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
metastringNej
skipnumberNej

Svar

Returnerer: GetTenantsResponse

Eksempel

getTenants Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes
updateTenantBodyUpdateTenantBodyYes

Svar

Returnerer: APIEmptyResponse

Eksempel

updateTenant Eksempel
Copy Copy
1
2async function runUpdateTenant() {
3 const tenantId: string = "tenant-abc123";
4 const id: string = "config-456def";
5
6 const updateTenantBody: UpdateTenantBody = {
7 // påkrævet felt
8 name: "Acme International",
9 // valgfrie felter kan udelades, f.eks. billingInfo, domainConfiguration
10 };
11
12 const response: APIEmptyResponse = await updateTenant(tenantId, id, updateTenantBody);
13 console.log(response);
14}
15

changeTicketState Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Svar

Returnerer: ChangeTicketStateResponse

Eksempel

changeTicketState Eksempel
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 // valgfrit felt eksempel
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


Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Svar

Returnerer: CreateTicketResponse

Eksempel

createTicket Eksempel
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 // valgfrit felt i 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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
userIdstringNej

Svar

Returnerer: GetTicketResponse

Eksempel

getTicket Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
userIdstringNo
statenumberNo
skipnumberNo
limitnumberNo

Svar

Returnerer: GetTicketsResponse

Eksempel

getTickets Eksempel
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; // f.eks., åben
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

Parametre

NavnTypePåkrævetBeskrivelse
namespacestringJa
componentstringJa
localestringNej
useFullTranslationIdsbooleanNej

Svar

Returnerer: GetTranslationsResponse

Eksempel

getTranslations Eksempel
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


Upload og ændre størrelse på et billede

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNej
urlIdstringNej

Svar

Returnerer: UploadImageResponse

Eksempel

uploadImage Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIGetUserBadgeProgressResponse

Eksempel

getUserBadgeProgressById Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringJa

Svar

Returnerer: APIGetUserBadgeProgressResponse

Eksempel

getUserBadgeProgressByUserId Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringNej
limitnumberNej
skipnumberNej

Svar

Returnerer: APIGetUserBadgeProgressListResponse

Eksempel

getUserBadgeProgressList Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Svar

Returnerer: APICreateUserBadgeResponse

Eksempel

createUserBadge Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
idstringYes

Svar

Returns: APIEmptySuccessResponse

Eksempel

deleteUserBadge Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: APIGetUserBadgeResponse

Eksempel

getUserBadge Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
userIdstringNej
badgeIdstringNej
typenumberNej
displayedOnCommentsbooleanNej
limitnumberNej
skipnumberNej

Svar

Returnerer: APIGetUserBadgesResponse

Eksempel

getUserBadges Eksempel
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4
5 // Alle parametre leveret
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 // Kun påkrævede og én valgfri 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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Svar

Returnerer: APIEmptySuccessResponse

Eksempel

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

getUserNotificationCount Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
ssostringNej

Svar

Returnerer: GetUserNotificationCountResponse

Eksempel

getUserNotificationCount Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringNej
pageSizenumberNej
afterIdstringNej
includeContextbooleanNej
afterCreatedAtnumberNej
unreadOnlybooleanNej
dmOnlybooleanNej
noDmbooleanNej
includeTranslationsbooleanNej
includeTenantNotificationsbooleanNej
ssostringNej

Svar

Returnerer: GetMyNotificationsResponse

Eksempel

getUserNotifications Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
ssostringNej

Svar

Returnerer: ResetUserNotificationsResponse

Eksempel

resetUserNotificationCount Eksempel
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

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
afterIdstringNej
afterCreatedAtnumberNej
unreadOnlybooleanNej
dmOnlybooleanNej
noDmbooleanNej
ssostringNej

Response

Returns: ResetUserNotificationsResponse

Example

resetUserNotifications Eksempel
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-tidsstempel
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

Enable or disable notifications for a specific comment.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNej

Svar

Returnerer: UpdateUserNotificationCommentSubscriptionStatusResponse

Eksempel

updateUserNotificationCommentSubscriptionStatus Eksempel
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

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNej

Response

Returnerer: UpdateUserNotificationPageSubscriptionStatusResponse

Eksempel

updateUserNotificationPageSubscriptionStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNej

Svar

Returnerer: UpdateUserNotificationStatusResponse

Eksempel

updateUserNotificationStatus Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdWSstringYes
userIdsstringYes

Svar

Returnerer: GetUserPresenceStatusesResponse

Eksempel

getUserPresenceStatuses Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
urlIdstringJa
usernameStartsWithstringNej
mentionGroupIdsArrayNej
ssostringNej
searchSectionSearchUsersSearchSectionEnumNej

Svar

Returnerer: SearchUsersResult

Eksempel

searchUsers Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Svar

Returnerer: GetUserResponse

Eksempel

getUser Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
commentIdstringYes
directionCreateVoteDirectionEnumYes
userIdstringNo
anonUserIdstringNo

Svar

Returnerer: VoteResponse

Eksempel

createVote Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa
editKeystringNej

Svar

Returnerer: VoteDeleteResponse

Eksempel

deleteVote Eksempel
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

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes

Svar

Returnerer: GetVotesResponse

Eksempel

getVotes Eksempel
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 // Eksempel på at få adgang til en valgfri egenskab fra svaret
8 const firstVote: PublicVote | undefined = votesResponse.votes?.[0];
9})();
10

getVotesForUser Internal Link

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
urlIdstringYes
userIdstringNo
anonUserIdstringNo

Svar

Returnerer: GetVotesForUserResponse

Eksempel

getVotesForUser Eksempel
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

Abonnerer på en URL til en kommentarhændelse (REST hook-abonnement). At abonnere på den samme URL til den samme hændelse og domæne igen returnerer den eksisterende abonnement. Leveringer er HMAC‑signeret, se webhooks‑guiden; den ældre token‑header sendes aldrig til API‑abonnementer.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
createWebhookParamsCreateWebhookParamsJa

Svar

Returnerer: CreateWebhookResponse

Eksempel

createWebhook Eksempel
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 // valgfri hemmelighed til payload‑verifikation
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.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
idstringJa

Response

Returns: APIEmptyResponse

Example

deleteWebhook Eksempel
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


Lister de webhooks, der er konfigureret for lejeren, både dashboard‑styrede rækker og API‑abonnementer.

Parametre

NavnTypePåkrævetBeskrivelse
tenantIdstringYes
eventWebhookEventNameNo
domainstringNo
sourceWebhookSourceNo
skipnumberNo

Svar

Returnerer: GetWebhooksResponse

Eksempel

getWebhooks Eksempel
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

Seneste kommentarer i præcis den form, som webhook-leveringer bruger, til at bygge integrationer (for eksempel Zapier prøve-data). Hver begivenhed leverer det samme kommentarobjekt, så event kun behøver at være gyldig.

Parameters

NavnTypePåkrævetBeskrivelse
tenantIdstringJa
eventWebhookEventNameNej
limitnumberNej

Response

Returns: GetWebhookSamplePayloadsResponse

Example

getWebhookSamplePayloads Eksempel
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

Brug for hjælp?

Hvis du støder på problemer eller har spørgsmål om JavaScript/TypeScript SDK'en, så:

Bidrag

Bidrag er velkomne! Besøg venligst GitHub-repositoriet for retningslinjer for bidrag.