FastComments.com

FastComments JavaScript/TypeScript SDK

Questo è l'SDK ufficiale JavaScript/TypeScript per FastComments.

Gestisci commenti, utenti, SSO e moderazione da Node.js o dal browser.

Repository

Visualizza su GitHub


Agenti di codifica AI Internal Link

skills.sh

Fornisci al tuo agente di programmazione il contesto FastComments di cui ha bisogno: widget, configurazione, SSO sicuro, l'API REST e gli SDK:

npx skills add fastcomments/skills

Funziona con Claude Code, Codex, Cursor, Copilot, Gemini e tutti gli altri agenti supportati dal skills CLI.

Installazione Internal Link

npm

npm install fastcomments-sdk

Documentazione API Internal Link


Riferimento completo delle API: docs/api/README.md

Compatibilità Browser vs Server Internal Link


Questo SDK utilizza due punti di ingresso per garantire la massima compatibilità e prevenire errori a runtime:

  • fastcomments-sdk/browser - Versione sicura per il browser con fetch nativo
  • fastcomments-sdk/server - Versione completa per Node.js con supporto SSO
  • fastcomments-sdk (predefinito) - Solo tipi, sicuro da importare ovunque

API Pubbliche vs Sicure Internal Link

Lo SDK fornisce queste classi API:

  • DefaultApi - Endpoint protetti che richiedono la tua API key per l'autenticazione. Usali per operazioni lato server.
  • PublicApi - Endpoint pubblici accessibili senza una API key. Possono essere chiamati direttamente da browser/dispositivi mobili/etc.
  • ModerationApi - Endpoint della dashboard moderatore (moderazione commenti, ban, badge, trust factor, ricerca). Autenticati tramite la sessione del moderatore; passa il parametro di query sso per i moderatori autenticati via SSO.
  • HiddenApi - Endpoint interni/amministratore per casi d'uso avanzati.

Esempio: Uso della Public API (sicuro per il browser)

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

const publicApi = new PublicApi();

// Recupera i commenti per una pagina (non è richiesta la API key)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Esempio: Uso della Default API (solo lato server)

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

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

// Recupera i commenti con pieno accesso amministrativo
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Esempio: Uso della Moderation API

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

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

// Chiamate autenticate dal moderatore (cookie di sessione, oppure passa `sso` per un moderatore autenticato via SSO).
const comments = await sdk.moderationApi.getApiComments({
  tenantId: 'your-tenant-id'
});

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

Integrazione SSO (Single Sign-On) Internal Link

FastComments supporta SSO per integrarsi con il tuo sistema di autenticazione utenti esistente. La funzionalità SSO è disponibile solo nell'export lato server poiché richiede le funzionalità crypto di Node.js.

SSO semplice (solo lato server)

L'SSO semplice dovrebbe essere generato lato server e inviato al client:

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

// Crea SSO semplice usando l'aiuto integrato  
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();

// Invia ssoToken al codice lato client
// Il codice lato client può quindi usare questo token con lo SDK per browser

SSO sicuro (lato server, raccomandato)

L'SSO sicuro dovrebbe essere implementato lato server e offre maggiore sicurezza:

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

// Crea SSO sicuro usando l'aiuto integrato
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();

// Usalo con chiamate API sul server
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Oppure invia ssoConfig al client per l'utilizzo nel browser

Utilizzo dell'SSO dal browser (con token generato dal server)

// Codice lato client (browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Ottieni il token SSO dal tuo endpoint server
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 con creazione di commenti

// Lato server: crea SSO e commento
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)
});

Casi d'uso comuni Internal Link

Ottenere i commenti di una pagina

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

Creare un commento

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

Votare un commento

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 per voto positivo, -1 per voto negativo
  }
});

Gestione utenti (Richiede API Key)

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

Eventi live (aggiornamenti in tempo reale) Internal Link

Iscriviti agli eventi live per ricevere aggiornamenti in tempo reale su commenti, voti e altre attività.

Eventi a livello di pagina

Ascolta gli eventi live per una pagina specifica (commenti, voti, ecc.):

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

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

// Subscribe to live events for a page
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (get this from getComments response)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Aggiorna la UI con il nuovo commento
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Aggiorna i conteggi dei voti nella tua UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Restituisci true se l'evento è stato gestito
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

Iscriviti agli eventi utente

Ascolta gli eventi specifici dell'utente (notifiche, menzioni, ecc.):

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

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

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

// Close when done
userSubscription.close();

Ottenere userIdWS

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

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

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

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

ID di trasmissione Internal Link

Vedrai che dovrai passare un broadcastId in alcune chiamate API. Quando riceverai eventi, ti verrà restituito questo ID, quindi saprai di ignorare l'evento se intendi applicare le modifiche in modo ottimistico sul client (cosa che probabilmente vorrai fare, dato che offre la migliore esperienza). Passa qui un UUID. L'ID dovrebbe essere sufficientemente unico da non verificarsi due volte durante la sessione del browser.

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() // ID univoco per questa operazione
  }
});

Gestione errori 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

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

aggregate Internal Link

Aggrega i documenti raggruppandoli (se groupBy è fornito) e applicando più operazioni.
Sono supportate diverse operazioni (ad es. sum, countDistinct, avg, ecc.).

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
aggregationRequestAggregationRequestYes
parentTenantIdstringNo
includeStatsbooleanNo

Risposta

Restituisce: AggregateResponse

Esempio

Esempio di aggregazione
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
limitnumberNo
skipnumberNo
orderSORTDIRNo
afternumberNo
beforenumberNo
usernamestringNo
ipstringNo
crudTypestringNo
resourceNamestringNo
targetIdstringNo
targetstringNo
includeManagedTenantsbooleanNo

Risposta

Restituisce: GetAuditLogsResponse

Esempio

getAuditLogs Esempio
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 giorno fa
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
publicBlockFromCommentParamsPublicBlockFromCommentParamsSì
ssostringNo

Risposta

Restituisce: BlockSuccess

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

Risposta

Restituisce: UnblockSuccess

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdsstringSì
ssostringNo

Risposta

Restituisce: CheckBlockedCommentsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
blockFromCommentParamsBlockFromCommentParamsSì
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: BlockSuccess

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
broadcastIdstringSì
commentDataCommentDataSì
sessionIdstringNo
ssostringNo

Risposta

Restituisce: SaveCommentsResponseWithPresence

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
contextUserIdstringNo
isLivebooleanNo

Risposta

Restituisce: DeleteCommentResult

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

Risposta

Restituisce: PublicAPIDeleteCommentResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
voteIdstringSì
urlIdstringSì
broadcastIdstringSì
editKeystringNo
ssostringNo

Risposta

Restituisce: VoteDeleteResponse

Esempio

Esempio deleteCommentVote
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"; // opzionale
8const ssoToken: string = "sso_token_xyz"; // opzionale
9
10// Chiamata con solo i parametri obbligatori e uno opzionale
11const deleteResult: VoteDeleteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18);
19
20// Chiamata con entrambi i parametri opzionali
21const deleteResultWithSSO: VoteDeleteResponse = await deleteCommentVote(
22 tenantId,
23 commentId,
24 voteId,
25 urlId,
26 broadcastId,
27 editKey,
28 ssoToken
29);
30

flagComment Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringSì
idstringSì
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: FlagCommentResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIGetCommentResponse

Esempio

Esempio getComment
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 // Dimostrazione dei campi opzionali
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
pagenumberNo
limitnumberNo
skipnumberNo
asTreebooleanNo
skipChildrennumberNo
limitChildrennumberNo
maxTreeDepthnumberNo
urlIdstringNo
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo
fromDatenumberNo
toDatenumberNo

Risposta

Restituisce: APIGetCommentsResponse

Esempio

Esempio getComments
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 giorni fa
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
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

Risposta

Restituisce: GetCommentsResponseWithPresencePublicComment

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

Risposta

Restituisce: PublicAPIGetCommentTextResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
dirnumberSì
ssostringNo

Risposta

Restituisce: GetCommentVoteUserNamesSuccessResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringSì
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Risposta

Restituisce: ChangeCommentPinStatusResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createCommentParamsCreateCommentParamsSì
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Risposta

Restituisce: APISaveCommentResponse

Esempio

Esempio saveComment
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
createCommentParamsArrayYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Risposta

Restituisce: Array<SaveCommentsBulkResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
commentTextUpdateRequestCommentTextUpdateRequestYes
editKeystringNo
ssostringNo

Risposta

Restituisce: PublicAPISetCommentTextResponse

Esempio

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

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
unBlockFromCommentParamsUnBlockFromCommentParamsSì
userIdstringNo
anonUserIdstringNo

Response

Restituisce: UnblockSuccess

Example

Esempio di unBlockUserFromComment
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: FlagCommentResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringSì
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di unLockComment
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Risposta

Restituisce: ChangeCommentPinStatusResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
updatableCommentParamsUpdatableCommentParamsYes
contextUserIdstringNo
doSpamCheckbooleanNo
isLivebooleanNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
sessionIdstringNo
ssostringNo

Risposta

Restituisce: VoteResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagenumberNo
includei10nbooleanNo
localestringNo
isCrawlerbooleanNo

Risposta

Restituisce: GetCommentsForUserResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
addDomainConfigParamsAddDomainConfigParamsSì

Risposta

Restituisce: AddDomainConfigResponse

Esempio

addDomainConfig Esempio
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // la descrizione è opzionale e omessa qui
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

deleteDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
domainstringSì

Risposta

Restituisce: DeleteDomainConfigResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
domainstringSì

Risposta

Restituisce: GetDomainConfigResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì

Risposta

Restituisce: GetDomainConfigsResponse

Esempio

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

patchDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

Risposta

Restituisce: PatchDomainConfigResponse

Esempio

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

putDomainConfig Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
domainToUpdatestringSì
updateDomainConfigParamsUpdateDomainConfigParamsSì

Risposta

Restituisce: PutDomainConfigResponse

Esempio

Esempio putDomainConfig
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 // campo opzionale omesso, ad es., 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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createEmailTemplateBodyCreateEmailTemplateBodySì

Risposta

Restituisce: CreateEmailTemplateResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
errorIdstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di deleteEmailTemplateRenderError
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetEmailTemplateResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì

Risposta

Restituisce: GetEmailTemplateDefinitionsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
skipnumberNo

Risposta

Restituisce: GetEmailTemplateRenderErrorsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
skipnumberNo

Risposta

Restituisce: GetEmailTemplatesResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
renderEmailTemplateBodyRenderEmailTemplateBodySì
localestringNo

Risposta

Restituisce: RenderEmailTemplateResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio updateEmailTemplate
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 è opzionale e omesso
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
userIdWSstringSì
startTimenumberSì
endTimenumberNo

Risposta

Restituisce: GetEventLogResponse

Esempio

Esempio getEventLog
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 ore fa
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
userIdWSstringSì
startTimenumberSì
endTimenumberNo

Risposta

Restituisce: GetEventLogResponse

Esempio

Esempio getGlobalEventLog
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 ore fa
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createFeedPostParamsCreateFeedPostParamsSì
broadcastIdstringNo
isLivebooleanNo
doSpamCheckbooleanNo
skipDupCheckbooleanNo

Risposta

Restituisce: CreateFeedPostsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: CreateFeedPostResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
postIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: DeleteFeedPostPublicResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
afterIdstringNo
limitnumberNo
tagsArrayNo

Risposta

Restituisce: GetFeedPostsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
afterIdstringNo
limitnumberNo
tagsArrayNo
ssostringNo
isCrawlerbooleanNo
includeUserInfobooleanNo

Risposta

Restituisce: PublicFeedPostsResponse

Esempio

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

getFeedPostsStats Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
postIdsArraySì
ssostringNo

Risposta

Restituisce: FeedPostsStatsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
postIdsArrayNo
ssostringNo

Risposta

Restituisce: UserReactsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
postIdstringSì
reactBodyParamsReactBodyParamsSì
isUndobooleanNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: ReactFeedPostResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
feedPostFeedPostSì

Risposta

Restituisce: APIEmptyResponse

Esempio

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

updateFeedPostPublic Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
postIdstringSì
updateFeedPostParamsUpdateFeedPostParamsSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: CreateFeedPostResponse

Esempio

updateFeedPostPublic Esempio
Copy Copy
1
2// Definisci i parametri
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
isFlaggedbooleanYes
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
largeInternalURLSanitizedstringSì

Risposta

Restituisce: GifGetLargeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
searchstringSì
localestringNo
ratingstringNo
pagenumberNo

Risposta

Restituisce: GetGifsSearchResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
localestringNo
ratingstringNo
pagenumberNo

Risposta

Restituisce: GetGifsTrendingResponse

Esempio

Esempio getGifsTrending
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 // Utilizzando solo il parametro richiesto
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

addHashTag Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createHashTagBodyCreateHashTagBodyNo

Risposta

Restituisce: CreateHashTagResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

Risposta

Restituisce: BulkCreateHashTagsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
tagstringYes
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio deleteHashTag
Copy Copy
1
2const tenantId: string = "tenant_42";
3const tag: string = "high-priority";
4
5const requestBody: DeleteHashTagRequestBody = {
6 // popolare i campi secondo necessità
7};
8
9const resultWithBody: APIEmptyResponse = await deleteHashTag(tenantId, tag, requestBody);
10const resultWithoutBody: APIEmptyResponse = await deleteHashTag(tenantId, tag);
11

getHashTags Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
pagenumberNo

Risposta

Restituisce: GetHashTagsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
tagstringSì
updateHashTagBodyUpdateHashTagBodyNo

Risposta

Restituisce: UpdateHashTagResponse

Esempio

Esempio patchHashTag
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const tag: string = "news";
5
6 // Chiamata senza corpo opzionale
7 const responseWithoutBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag);
8
9 // Preparare il corpo per l'aggiornamento
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


Identifica le credenziali in uso: il tenant a cui appartiene e, per i token OAuth, l'utente che le ha autorizzate.
Le integrazioni usano questo per testare una connessione e etichettarla.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì

Risposta

Restituisce: GetMeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
voteIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: VoteDeleteResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
pagenumberNo
countnumberNo
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
demobooleanNo
ssostringNo

Risposta

Restituisce: ModerationAPIGetCommentsResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
batchJobIdstringNo
ssostringNo

Risposta

Restituisce: ModerationExportStatusResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
ssostringNo

Risposta

Restituisce: ModerationAPIGetCommentIdsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
ssostringNo

Risposta

Restituisce: GetBannedUsersFromCommentResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
ssostringNo

Risposta

Restituisce: GetCommentBanStatusResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
ssostringNo

Risposta

Restituisce: ModerationAPIChildCommentsResponse

Esempio

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

getCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demobooleanNo
ssostringNo

Risposta

Restituisce: ModerationAPICountCommentsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
ssostringNo

Risposta

Restituisce: GetBannedUsersCountResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
ssostringNo

Risposta

Restituisce: ModerationAPIGetLogsResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
ssostringNo

Risposta

Restituisce: GetTenantManualBadgesResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
badgesUserIdstringNo
commentIdstringNo
ssostringNo

Risposta

Restituisce: GetUserManualBadgesResponse

Esempio

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

getModerationComment Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
includeEmailbooleanNo
includeIPbooleanNo
ssostringNo

Risposta

Restituisce: ModerationAPICommentResponse

Esempio

Esempio getModerationComment
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Chiamata con solo i parametri richiesti
7 const basicResponse: ModerationAPICommentResponse = await getModerationComment(tenantId, commentId);
8
9 // Chiamata con parametri opzionali
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
ssostringNo

Risposta

Restituisce: GetCommentTextResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
includeByUserIdAndEmailbooleanNo
includeByIPbooleanNo
includeByEmailDomainbooleanNo
ssostringNo

Risposta

Restituisce: PreBanSummary

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
valuestringNo
filtersstringNo
searchFiltersstringNo
ssostringNo

Risposta

Restituisce: ModerationCommentSearchResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
valuestringNo
ssostringNo

Risposta

Restituisce: ModerationPageSearchResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
valuestringNo
ssostringNo

Risposta

Restituisce: ModerationSiteSearchResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
textSearchstringNo
ssostringNo

Risposta

Restituisce: ModerationSuggestResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
valuestringNo
ssostringNo

Risposta

Restituisce: ModerationUserSearchResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
userIdstringNo
ssostringNo

Risposta

Restituisce: GetUserTrustFactorResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
ssostringNo

Risposta

Restituisce: APIModerateGetUserBanPreferencesResponse

Esempio

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

getUserInternalProfile Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringNo
ssostringNo

Risposta

Restituisce: GetUserInternalProfileResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
adjustCommentVotesParamsAdjustCommentVotesParamsSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: AdjustVotesResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
ssostringNo

Risposta

Restituisce: ModerationExportResponse

Esempio

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

Parametri

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

Risposta

Restituisce: BanUserFromCommentResult

Esempio

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

postBanUserUndo Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
banUserUndoParamsBanUserUndoParamsSì
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio postBanUserUndo
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const undoParams: BanUserUndoParams = {
5 userId: "user_12345",
6 // ulteriori campi obbligatori possono essere aggiunti qui
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsYes
includeByUserIdAndEmailbooleanNo
includeByIPbooleanNo
includeByEmailDomainbooleanNo
ssostringNo

Risposta

Restituisce: BulkPreBanSummary

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentsByIdsParamsCommentsByIdsParamsSì
ssostringNo

Risposta

Restituisce: ModerationAPIChildCommentsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio postFlagComment
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5
6 // Solo parametri obbligatori
7 const result1: APIEmptyResponse = await postFlagComment(tenantId, commentId);
8
9 // Inclusi parametri opzionali
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: PostRemoveCommentApiResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
approvedbooleanNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: SetCommentApprovedResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
reviewedbooleanNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes
spambooleanNo
permNotSpambooleanNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsYes
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: SetCommentTextResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
directionstringNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: VoteResponse

Esempio

postVote Esempio
Copy Copy
1
2async function runVoteExamples(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Chiamata con solo i parametri obbligatori
7 const simpleVote: VoteResponse = await postVote(tenantId, commentId);
8
9 // Chiamata con parametri opzionali
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
badgeIdstringSì
userIdstringNo
commentIdstringNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: AwardUserBadgeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
ssostringNo

Risposta

Restituisce: RemoveUserBadgeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes
ssostringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
userIdstringNo
trustFactorstringNo
ssostringNo

Risposta

Restituisce: SetUserTrustFactorResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createModeratorBodyCreateModeratorBodySì

Risposta

Restituisce: CreateModeratorResponse

Esempio

Esempio createModerator
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const moderatorPayload: CreateModeratorBody = {
5 userId: "user_9876",
6 // campo opzionale; può essere omesso se non necessario
7 notes: "Temporary moderator for event"
8};
9
10const response: CreateModeratorResponse = await createModerator(tenantId, moderatorPayload);
11

deleteModerator Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
sendEmailstringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetModeratorResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
skipnumberNo

Risposta

Restituisce: GetModeratorsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
fromNamestringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di sendInvite
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateModeratorBodyUpdateModeratorBodySì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio updateModerator
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const moderatorId: string = "mod_12345";
4
5const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 // role?: string è opzionale e omessa qui
8};
9
10const result: APIEmptyResponse = await updateModerator(tenantId, moderatorId, updateBody);
11

deleteNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di deleteNotificationCount
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetCachedNotificationCountResponse

Esempio

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

getNotificationCount Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo

Risposta

Restituisce: GetNotificationCountResponse

Esempio

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

getNotifications Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo
skipnumberNo

Risposta

Restituisce: GetNotificationsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateNotificationBodyUpdateNotificationBodySì
userIdstringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di updateNotification
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes
titlestringNo
ssostringNo

Risposta

Restituisce: CreateV1PageReact

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
idstringSì
titlestringNo
ssostringNo

Risposta

Restituisce: CreateV1PageReact

Esempio

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

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
ssostringNo

Response

Restituisce: CreateV1PageReact

Example

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

Parametri

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringYes
ssostringNo

Risposta

Restituisce: CreateV1PageReact

Esempio

Esempio deleteV2PageReact
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 // Chiamata senza sso opzionale
8 const resultWithoutSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId);
9
10 // Chiamata con sso opzionale
11 const ssoToken: string = "sso_token_xyz";
12 const resultWithSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId, ssoToken);
13}
14

getV1PageLikes Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
ssostringNo

Risposta

Restituisce: GetV1PageLikes

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
ssostringNo

Risposta

Restituisce: GetV2PageReacts

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
idstringSì
ssostringNo

Risposta

Restituisce: GetV2PageReactUsersResponse

Esempio

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

addPage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createAPIPageDataCreateAPIPageDataSì

Risposta

Restituisce: AddPageAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: DeletePageAPIResponse

Esempio

deletePage Esempio
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


Commentatori precedenti sulla pagina che NON sono attualmente online. Ordinati per displayName.
Usa questo dopo aver esaurito /users/online per rendere una sezione "Members".
Paginazione a cursore su commenterName: il server percorre il parziale {tenantId, urlId, commenterName} indice da afterName in avanti tramite $gt, senza costo $skip.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
afterNamestringNo
afterUserIdstringNo

Risposta

Restituisce: PageUsersOfflineResponse

Esempio

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


Visualizzatori attualmente online di una pagina: persone la cui sessione websocket è iscritta alla pagina in questo momento.
Restituisce anonCount + totalCount (abbonati a livello di stanza, inclusi visualizzatori anonimi che non elenchiamo).

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì
afterNamestringNo
afterUserIdstringNo

Response

Restituisce: PageUsersOnlineResponse

Example

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes

Risposta

Restituisce: GetPageByURLIdAPIResponse

Esempio

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

Parametri

NameTypeRequiredDescription
tenantIdstringYes

Risposta

Restituisce: GetPagesAPIResponse

Esempio

Esempio getPages
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

Elenca le pagine per un tenant. Usato dal client desktop FChat per popolare la sua lista di stanze.
Richiede enableFChat impostato su true nella configurazione personalizzata risolta per ogni pagina.
Le pagine che richiedono SSO sono filtrate in base all'accesso al gruppo dell'utente richiedente.

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
cursorstringNo
limitnumberNo
qstringNo
sortByPagesSortByNo
hasCommentsbooleanNo

Response

Returns: GetPublicPagesResponse

Example

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

getUsersInfo Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser.
Used by the comment widget to enrich users that just appeared via a presence event.
No page context: privacy is enforced uniformly (private profiles are masked).

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idsstringSì

Response

Returns: PageUsersInfoResponse

Example

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateAPIPageDataUpdateAPIPageDataSì

Risposta

Restituisce: PatchPageAPIResponse

Esempio

Esempio patchPage
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 può essere omessa
9 };
10
11 const response: PatchPageAPIResponse = await patchPage(tenantId, pageId, updateData);
12})();
13

deletePendingWebhookEvent Internal Link


Parametri

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di deletePendingWebhookEvent
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo

Risposta

Restituisce: GetPendingWebhookEventCountResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo
skipnumberNo

Risposta

Restituisce: GetPendingWebhookEventsResponse

Esempio

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

Registra un voto su un sondaggio, o sposta uno esistente su un’opzione diversa. Un elettore ha al massimo un voto per sondaggio, quindi chiamare nuovamente questo endpoint per lo stesso elettore sposta il suo voto invece di aggiungerne uno.

Questo rispetta le impostazioni del sondaggio del sito: se il voto è impostato solo per utenti autenticati, un voto con solo anonUserId viene rifiutato, e i voti anonimi sono limitati per IP per sondaggio.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
createPollVoteBodyCreatePollVoteBodyYes

Risposta

Returns: CreatePollVoteResponse

Esempio

Esempio createPollVote
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 è opzionale e omesso qui
9 };
10
11 const result: CreatePollVoteResponse = await createPollVote(tenantId, vote);
12 console.log(result);
13})();
14

deletePollVote Internal Link

Annulla un voto. L'opzione su cui è stato espresso restituisce il suo conteggio.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: DeletePollVoteResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetPollVoteResponse

Esempio

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

I voti individuali dietro i conteggi di un sondaggio, dal più vecchio al più recente.

Un sondaggio appartiene a un commento, quindi i voti vengono sempre letti un sondaggio alla volta - commentId è obbligatorio. Questo mantiene ogni query sugli indici che la collezione possiede già.

Rispetta la privacy del sondaggio: i voti di un sondaggio anonimo non possono essere letti (poll-anonymous), qui o tramite ID.

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
voterIdstringNo
optionIdstringNo
skipnumberNo

Response

Returns: GetPollVotesResponse

Example

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

Rimuovi un sondaggio dal suo commento, insieme a tutti i voti espressi su di esso. Il commento stesso rimane intatto.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
commentIdstringYes

Risposta

Restituisce: GetPollResponse

Esempio

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

Modifica un sondaggio in loco, mantenendo i suoi risultati: cambia la domanda, rinomina un'opzione, chiudi o riapri il sondaggio, o modifica chi può vedere i votanti. Le opzioni sono identificate tramite id - per aggiungerle, rimuoverle o riordinarle, esegui un PUT dell'elenco completo.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
commentPollPatchCommentPollPatchSì

Risposta

Restituisce: SavePollResponse

Esempio

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


Allega un sondaggio a un commento, o imposta lo stato completo del sondaggio che ha già.

Le opzioni sono abbinate per id: un'opzione inviata con l'id di un'opzione esistente mantiene i suoi voti (e prende la nuova etichetta e posizione), un'opzione inviata senza un id viene aggiunta, e le opzioni esistenti omesse dalla lista vengono rimosse insieme ai voti espressi su di esse.

Mantenere nessun id di opzione esistente su un sondaggio che ha voti elimina tutti, quindi è necessario replaceVotes=true.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
commentPollPutInputCommentPollPutInputYes
replaceVotesbooleanNo

Response

Returns: SavePollResponse

Example

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createQuestionConfigBodyCreateQuestionConfigBodySì

Risposta

Restituisce: CreateQuestionConfigResponse

Esempio

Esempio createQuestionConfig
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 // campo opzionale
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetQuestionConfigResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
skipnumberNo

Risposta

Restituisce: GetQuestionConfigsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateQuestionConfigBodyUpdateQuestionConfigBodySì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio updateQuestionConfig
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. are optional and omitted
9 };
10
11 const response: APIEmptyResponse = await updateQuestionConfig(tenantId, questionId, updateBody);
12 console.log(response);
13})();
14

createQuestionResult Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createQuestionResultBodyCreateQuestionResultBodySì

Risposta

Restituisce: CreateQuestionResultResponse

Esempio

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

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Response

Restituisce: APIEmptyResponse

Example

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes

Risposta

Restituisce: GetQuestionResultResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

Risposta

Restituisce: GetQuestionResultsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateQuestionResultBodyUpdateQuestionResultBodySì

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
timeBucketAggregateTimeBucketNo
startDateDateNo
forceRecalculatebooleanNo

Risposta

Restituisce: AggregateQuestionResultsResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestSì
forceRecalculatebooleanNo

Risposta

Restituisce: BulkAggregateQuestionResultsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
startDateDateNo
forceRecalculatebooleanNo
minValuenumberNo
maxValuenumberNo
limitnumberNo

Risposta

Restituisce: CombineQuestionResultsWithCommentsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createAPISSOUserDataCreateAPISSOUserDataSì

Risposta

Restituisce: AddSSOUserAPIResponse

Esempio

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

deleteSSOUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
deleteCommentsbooleanNo
commentDeleteModestringNo

Risposta

Restituisce: DeleteSSOUserAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
emailstringSì

Risposta

Restituisce: GetSSOUserByEmailAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetSSOUserByIdAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
skipnumberNo

Risposta

Restituisce: GetSSOUsersResponse

Esempio

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

patchSSOUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsbooleanNo

Risposta

Restituisce: PatchSSOUserAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateAPISSOUserDataUpdateAPISSOUserDataSì
updateCommentsbooleanNo

Risposta

Restituisce: PutSSOUserAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataYes

Risposta

Returns: CreateSubscriptionAPIResponse

Esempio

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

deleteSubscription Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
userIdstringNo

Risposta

Restituisce: DeleteSubscriptionAPIResponse

Esempio

deleteSubscription Esempio
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 // Con userId opzionale
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // Senza userId opzionale
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

getSubscriptions Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringNo

Risposta

Restituisce: GetSubscriptionsAPIResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

Risposta

Restituisce: UpdateSubscriptionAPIResponse

Esempio

Esempio di updateSubscription
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
yearNumbernumberNo
monthNumbernumberNo
dayNumbernumberNo
skipnumberNo

Risposta

Restituisce: GetTenantDailyUsagesResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Risposta

Restituisce: CreateTenantPackageResponse

Esempio

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


Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio di deleteTenantPackage
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetTenantPackageResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
skipnumberNo

Risposta

Restituisce: GetTenantPackagesResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
replaceTenantPackageBodyReplaceTenantPackageBodySì

Risposta

Restituisce: APIEmptyResponse

Esempio

replaceTenantPackage Esempio
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 // i campi opzionali possono essere aggiunti qui se necessario
8 };
9 const response: APIEmptyResponse = await replaceTenantPackage(tenantId, packageId, replaceBody);
10 console.log(response);
11}
12

updateTenantPackage Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio updateTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const packageId: string = "pkg_3a2b1c";
4
5const updateBody: UpdateTenantPackageBody = {
6 // i campi opzionali possono essere omessi o inclusi secondo necessità
7 // newPackageName?: string;
8 // renewalDate?: string;
9};
10
11const result: APIEmptyResponse = await updateTenantPackage(tenantId, packageId, updateBody);
12

createTenantUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createTenantUserBodyCreateTenantUserBodySì

Risposta

Restituisce: CreateTenantUserResponse

Esempio

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

deleteTenantUser Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
deleteCommentsstringNo
commentDeleteModestringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetTenantUserResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
skipnumberNo

Risposta

Restituisce: GetTenantUsersResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
replaceTenantUserBodyReplaceTenantUserBodySì
updateCommentsstringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
redirectURLstringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

sendLoginLink Esempio
Copy Copy
1
2interface APIStatus {
3 // campi di stato
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateTenantUserBodyUpdateTenantUserBodySì
updateCommentsstringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createTenantBodyCreateTenantBodySì

Risposta

Restituisce: CreateTenantResponse

Esempio

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

deleteTenant Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
surestringNo

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetTenantResponse

Esempio

Esempio getTenant
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 // Campi opzionali nella risposta
9 const billing: BillingInfo | undefined = tenantResponse.billingInfo;
10 const domainConfig: APIDomainConfiguration | undefined = tenantResponse.domainConfiguration;
11}
12

getTenants Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
metastringNo
skipnumberNo

Risposta

Restituisce: GetTenantsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateTenantBodyUpdateTenantBodySì

Risposta

Restituisce: APIEmptyResponse

Esempio

Esempio updateTenant
Copy Copy
1
2async function runUpdateTenant() {
3 const tenantId: string = "tenant-abc123";
4 const id: string = "config-456def";
5
6 const updateTenantBody: UpdateTenantBody = {
7 // campo obbligatorio
8 name: "Acme International",
9 // i campi opzionali possono essere omessi, ad esempio, billingInfo, domainConfiguration
10 };
11
12 const response: APIEmptyResponse = await updateTenant(tenantId, id, updateTenantBody);
13 console.log(response);
14}
15

changeTicketState Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringSì
idstringSì
changeTicketStateBodyChangeTicketStateBodySì

Risposta

Restituisce: ChangeTicketStateResponse

Esempio

Esempio changeTicketState
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 // esempio di campo opzionale
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringSì
createTicketBodyCreateTicketBodySì

Risposta

Restituisce: CreateTicketResponse

Esempio

Esempio createTicket
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 // campo opzionale in CreateTicketBody
11 tags: ["login", "password-reset"]
12 };
13
14 const response: CreateTicketResponse = await createTicket(tenantId, userId, ticketBody);
15 console.log(response);
16}
17
18submitTicket();
19

getTicket Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes
userIdstringNo

Risposta

Restituisce: GetTicketResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringNo
statenumberNo
skipnumberNo
limitnumberNo

Risposta

Restituisce: GetTicketsResponse

Esempio

Esempio getTickets
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; // ad es., aperto
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

Parametri

NomeTipoObbligatorioDescrizione
namespacestringSì
componentstringSì
localestringNo
useFullTranslationIdsbooleanNo

Risposta

Restituisce: GetTranslationsResponse

Esempio

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

Carica e ridimensiona un'immagine

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
fileBlobSì
sizePresetSizePresetNo
urlIdstringNo

Risposta

Restituisce: UploadImageResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIGetUserBadgeProgressResponse

Esempio

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

getUserBadgeProgressByUserId Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
userIdstringYes

Risposta

Restituisce: APIGetUserBadgeProgressResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
userIdstringNo
limitnumberNo
skipnumberNo

Risposta

Restituisce: APIGetUserBadgeProgressListResponse

Esempio

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

createUserBadge Internal Link

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createUserBadgeParamsCreateUserBadgeParamsSì

Risposta

Restituisce: APICreateUserBadgeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
idstringYes

Risposta

Restituisce: APIEmptySuccessResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIGetUserBadgeResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
userIdstringNo
badgeIdstringNo
typenumberNo
displayedOnCommentsbooleanNo
limitnumberNo
skipnumberNo

Risposta

Restituisce: APIGetUserBadgesResponse

Esempio

Esempio getUserBadges
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4
5 // Tutti i parametri forniti
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 // Solo i parametri richiesti e un parametro opzionale (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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
updateUserBadgeParamsUpdateUserBadgeParamsSì

Risposta

Restituisce: APIEmptySuccessResponse

Esempio

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

getUserNotificationCount Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringSì
ssostringNo

Risposta

Restituisce: GetUserNotificationCountResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringNo
pageSizenumberNo
afterIdstringNo
includeContextbooleanNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
includeTranslationsbooleanNo
includeTenantNotificationsbooleanNo
ssostringNo

Risposta

Restituisce: GetMyNotificationsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
ssostringNo

Risposta

Restituisce: ResetUserNotificationsResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
afterIdstringNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
ssostringNo

Risposta

Restituisce: ResetUserNotificationsResponse

Esempio

Esempio resetUserNotifications
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const afterId: string = "notif-2023-09-01";
5 const afterCreatedAt: number = 1693526400; // Timestamp Unix
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

Abilita o disabilita le notifiche per un commento specifico.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

Risposta

Restituisce: UpdateUserNotificationCommentSubscriptionStatusResponse

Esempio

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

Abilita o disabilita le notifiche per una pagina. Quando gli utenti sono iscritti a una pagina, le notifiche vengono create per i nuovi commenti radice, e anche

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes
urlstringYes
pageTitlestringYes
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumYes
ssostringNo

Risposta

Restituisce: UpdateUserNotificationPageSubscriptionStatusResponse

Esempio

Esempio di updateUserNotificationPageSubscriptionStatus
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
notificationIdstringSì
newStatusUpdateUserNotificationStatusNewStatusEnumSì
ssostringNo

Risposta

Restituisce: UpdateUserNotificationStatusResponse

Esempio

Esempio di updateUserNotificationStatus
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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdWSstringSì
userIdsstringSì

Risposta

Restituisce: GetUserPresenceStatusesResponse

Esempio

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

Parameters

NameTypeRequiredDescription
tenantIdstringSì
urlIdstringSì
usernameStartsWithstringNo
mentionGroupIdsArrayNo
ssostringNo
searchSectionSearchUsersSearchSectionEnumNo

Response

Restituisce: SearchUsersResult

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: GetUserResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
commentIdstringSì
directionCreateVoteDirectionEnumSì
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: VoteResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì
editKeystringNo

Risposta

Restituisce: VoteDeleteResponse

Esempio

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

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
urlIdstringSì

Risposta

Restituisce: GetVotesResponse

Esempio

Esempio getVotes
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 // Esempio di accesso a una proprietà opzionale dalla risposta
8 const firstVote: PublicVote | undefined = votesResponse.votes?.[0];
9})();
10

getVotesForUser Internal Link

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringYes
urlIdstringYes
userIdstringNo
anonUserIdstringNo

Risposta

Restituisce: GetVotesForUserResponse

Esempio

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

Iscrive un URL a un evento di commento (sottoscrizione REST hook). Sottoscrivendo lo stesso URL allo stesso evento e dominio di nuovo restituisce la sottoscrizione esistente. Le consegne sono firmate con HMAC, vedere la guida ai webhook; l'intestazione legacy token non viene mai inviata alle sottoscrizioni API.

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
createWebhookParamsCreateWebhookParamsSì

Response

Restituisce: CreateWebhookResponse

Example

Esempio createWebhook
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 // segreto opzionale per la verifica del payload
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

NomeTipoObbligatorioDescrizione
tenantIdstringSì
idstringSì

Risposta

Restituisce: APIEmptyResponse

Esempio

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

Elenca i webhook configurati per il tenant, sia le righe gestite dal dashboard sia le sottoscrizioni API.

Parametri

NomeTipoObbligatorioDescrizione
tenantIdstringSì
eventWebhookEventNameNo
domainstringNo
sourceWebhookSourceNo
skipnumberNo

Risposta

Returns: GetWebhooksResponse

Esempio

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

Commenti recenti esattamente nella forma che le consegne webhook utilizzano, per costruire integrazioni (ad esempio dati di esempio di Zapier). Ogni evento consegna lo stesso oggetto commento, quindi event deve solo essere valido.

Parameters

NomeTipoObbligatorioDescrizione
tenantIdstringSì
eventWebhookEventNameNo
limitnumberNo

Response

Restituisce: GetWebhookSamplePayloadsResponse

Esempio

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

Hai bisogno di aiuto?

Se riscontri problemi o hai domande sullo SDK JavaScript/TypeScript, per favore:

Contribuire

I contributi sono benvenuti! Visita il repository GitHub per le linee guida sui contributi.