FastComments.com

FastComments SDK JavaScript/TypeScript

Este é o SDK oficial JavaScript/TypeScript para o FastComments.

Gerencie comentários, usuários, SSO e moderação a partir do Node.js ou do navegador.

Repositório

Ver no GitHub


Instalação Internal Link

npm

npm install fastcomments-sdk

Documentação da API Internal Link


Referência completa da API: docs/api/README.md

Compatibilidade Navegador vs Servidor Internal Link


Este SDK usa dois pontos de entrada para garantir compatibilidade ideal e prevenir erros em tempo de execução:

  • fastcomments-sdk/browser - Versão segura para navegador com fetch nativo
  • fastcomments-sdk/server - Versão completa para Node.js com suporte a SSO
  • fastcomments-sdk (padrão) - Apenas tipos, seguro para importar em qualquer lugar

APIs Públicas vs Seguras Internal Link

O SDK fornece as seguintes classes de API:

  • DefaultApi - Endpoints seguros que exigem sua chave de API para autenticação. Use-os para operações do lado do servidor.
  • PublicApi - Endpoints públicos que podem ser acessados sem uma chave de API. Podem ser chamados diretamente de navegadores/dispositivos móveis/etc.
  • ModerationApi - Endpoints do painel de moderação (moderação de comentários, banimentos, badges, fator de confiança, busca). Autenticados pela sessão do moderador; passe o parâmetro de consulta sso para moderadores autenticados via SSO.
  • HiddenApi - Endpoints internos/administrativos para casos de uso avançados.

Exemplo: Usando a Public API (compatível com navegador)

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

const publicApi = new PublicApi();

// Obter comentários de uma página (nenhuma chave de API necessária)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Exemplo: Usando a Default API (somente no servidor)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Mantenha esta chave em segredo!
});
const defaultApi = new DefaultApi(config);

// Obter comentários com acesso administrativo completo
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Exemplo: Usando a Moderation API

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

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

// Chamadas autenticadas por moderador (cookie de sessão, ou passe `sso` para um moderador autenticado via SSO).
const comments = await sdk.moderationApi.getApiComments({
  tenantId: 'your-tenant-id'
});

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

SSO (Single Sign-On) - Integração Internal Link

FastComments oferece suporte a SSO para integrar com seu sistema de autenticação de usuários existente. A funcionalidade SSO está disponível apenas na exportação do servidor já que requer recursos de crypto do Node.js.

SSO Simples (Apenas no Lado do Servidor)

O SSO simples deve ser gerado no servidor e enviado ao cliente:

// Código do lado do servidor (Node.js/back-end)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Crie um SSO simples usando o helper embutido  
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();

// Envie ssoToken para o código do cliente
// O código do lado do cliente pode então usar este token com o SDK para navegador

SSO Seguro (Lado do Servidor, Recomendado)

O SSO seguro deve ser implementado no servidor e oferece maior segurança:

// Código do lado do servidor (Node.js/back-end)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Crie um SSO seguro usando o helper embutido
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

const sso = FastCommentsSSO.createSecure('your-api-key', userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoConfig = sso.prepareToSend();

// Use com chamadas de API no servidor
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Ou envie ssoConfig para o cliente para uso no navegador

Usando SSO a partir do Navegador (com Token Gerado pelo Servidor)

// Código do lado do cliente (navegador)
import { PublicApi } from 'fastcomments-sdk/browser';

// Obtenha o token SSO do endpoint do seu servidor
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 o token SSO gerado no servidor
});

SSO com Criação de Comentário

// Lado do servidor: Crie SSO e comentário
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)
});

Casos de Uso Comuns Internal Link

Obtendo Comentários de uma Página

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

Criando um Comentário

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

Votando em um Comentário

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

Gerenciamento de Usuários (Requer Chave de API)

// Pesquisar usuários (requer DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Eventos Ao Vivo (Atualizações em Tempo Real) Internal Link

Inscreva-se em eventos ao vivo para receber atualizações em tempo real sobre comentários, votos e outras atividades.

Eventos por página

Ouça eventos ao vivo em uma página específica (comentários, votos, etc.):

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);
        // Update your UI with the new comment
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Update vote counts in your UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Return true if event was handled
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

Inscreva-se em eventos do usuário

Ouça eventos específicos do usuário (notificações, menções, etc.):

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);
        // Show notification in your 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();

Obtendo userIdWS

O parâmetro userIdWS é necessário para eventos ao vivo e pode ser obtido nas respostas da API:

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

IDs de Transmissão Internal Link

Você verá que deve passar um broadcastId em algumas chamadas de API. Quando você receber eventos, receberá esse ID de volta, então saberá ignorar o evento se planejar aplicar mudanças de forma otimista no cliente (o que você provavelmente desejará fazer, pois oferece a melhor experiência). Passe um UUID aqui. O ID deve ser suficientemente único para não ocorrer duas vezes em uma sessão do navegador.

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 único para esta operação
  }
});

Tratamento de Erros 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);
  }
}

Agregação Internal Link

Agrega documentos agrupando‑os (se groupBy for fornecido) e aplicando múltiplas operações.
Diferentes operações (por exemplo, sum, countDistinct, avg, etc.) são suportadas.

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
aggregationRequestAggregationRequestSim
parentTenantIdstringNão
includeStatsbooleanNão

Response

Retorna: AggregateResponse

Example

Exemplo de agregação
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

Obter registros de auditoria Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
limitnumberNo
skipnumberNo
orderSORTDIRNo
afternumberNo
beforenumberNo

Resposta

Retorna: GetAuditLogsResponse1

Exemplo

Exemplo getAuditLogs
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_42";
4 const limit: number = 100;
5 const skip: number = 10;
6 const order: SORTDIR = "desc";
7 const after: number = Date.now() - 3 * 24 * 60 * 60 * 1000; // 3 days ago
8
9 const auditResponse: GetAuditLogsResponse1 = await getAuditLogs(
10 tenantId,
11 limit,
12 skip,
13 order,
14 after
15 );
16
17 console.log(auditResponse);
18})();
19

Bloquear a partir de comentário (público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: BlockFromCommentPublicResponse

Exemplo

Exemplo blockFromCommentPublic
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_9f8b7c";
4 const commentId: string = "cmt_1234567890";
5 const blockParams: PublicBlockFromCommentParams = {
6 reason: "spam",
7 durationHours: 24,
8 };
9 const ssoToken: string = "sso_ABCDEF123456";
10
11 const responseWithSso: BlockFromCommentPublicResponse = await blockFromCommentPublic(
12 tenantId,
13 commentId,
14 blockParams,
15 ssoToken
16 );
17
18 const responseWithoutSso: BlockFromCommentPublicResponse = await blockFromCommentPublic(
19 tenantId,
20 commentId,
21 blockParams
22 );
23
24 console.log(responseWithSso, responseWithoutSso);
25}
26demo();
27

Desbloquear comentário (público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: UnBlockCommentPublicResponse

Exemplo

Exemplo de unBlockCommentPublic
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const commentId: string = "cmt-20230915-001";
4const unblockParams: PublicBlockFromCommentParams = {
5 reason: "User appealed and was cleared",
6 unblockExpiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString()
7};
8const ssoToken: string = "sso-3d9f8a7b";
9
10const result: UnBlockCommentPublicResponse = await unBlockCommentPublic(
11 tenantId,
12 commentId,
13 unblockParams,
14 ssoToken
15);
16

Verificar comentários bloqueados Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdsstringSim
ssostringNão

Resposta

Retorna: CheckedCommentsForBlockedResponse

Exemplo

Exemplo checkedCommentsForBlocked
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const commentIds: string = "cmt_001,cmt_002";
5 const ssoToken: string = "ssoTokenXYZ";
6
7 const blockedCheck: CheckedCommentsForBlockedResponse = await checkedCommentsForBlocked(tenantId, commentIds);
8 const blockedCheckWithSso: CheckedCommentsForBlockedResponse = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
9})();
10

Bloquear usuário do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
blockFromCommentParamsBlockFromCommentParamsSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: BlockUserFromCommentResponse

Exemplo

Exemplo de blockUserFromComment
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const commentId: string = 'cmt_20231101';
4
5const blockParams: BlockFromCommentParams = {
6 reason: 'spam',
7 blockDurationHours: 24,
8};
9
10const userId: string = 'user_123'; // parâmetro opcional
11
12const response: BlockUserFromCommentResponse = await blockUserFromComment(
13 tenantId,
14 commentId,
15 blockParams,
16 userId
17);
18

Criar comentário (público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
broadcastIdstringSim
commentDataCommentDataSim
sessionIdstringNão
ssostringNão

Resposta

Retorna: CreateCommentPublicResponse

Exemplo

Exemplo createCommentPublic
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-abc123";
4 const urlId: string = "post-987654";
5 const broadcastId: string = "bcast-001";
6 const commentData: CommentData = {
7 content: "I really enjoyed this article!"
8 };
9 const sessionId: string = "session-xyz789";
10 const sso: string = "sso-token-456def";
11
12 const response: CreateCommentPublicResponse = await createCommentPublic(
13 tenantId,
14 urlId,
15 broadcastId,
16 commentData,
17 sessionId,
18 sso
19 );
20
21 console.log(response);
22})();
23

Excluir comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
contextUserIdstringNão
isLivebooleanNão

Resposta

Retorna: DeleteCommentResponse

Exemplo

Exemplo deleteComment
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_01';
4 const commentId: string = 'comment_abc123';
5 const contextUserId: string = 'user_42';
6 const isLive: boolean = false;
7
8 const deleteResult: DeleteCommentResponse = await deleteComment(tenantId, commentId, contextUserId, isLive);
9 const simpleResult: DeleteCommentResponse = await deleteComment(tenantId, commentId);
10})();
11

Excluir comentário (público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: DeleteCommentPublicResponse

Exemplo

Exemplo deleteCommentPublic
Copy Copy
1
2(async () => {
3 const tenantId: string = 'c6f9a2e3-9b1d-4f8a-b2d2-1a2b3c4d5e6f';
4 const commentId: string = '7d9f0b1c-2e3f-4a5b-6c7d-8e9f0a1b2c3d';
5 const broadcastId: string = 'live-2023-09-15';
6 const editKey: string = 'ed1tK3y1234567890';
7 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.abc123';
8
9 const result: DeleteCommentPublicResponse = await deleteCommentPublic(
10 tenantId,
11 commentId,
12 broadcastId,
13 editKey,
14 sso
15 );
16})();
17

Excluir voto de comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
voteIdstringSim
urlIdstringSim
broadcastIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: DeleteCommentVoteResponse

Exemplo

Exemplo deleteCommentVote
Copy Copy
1
2async function removeVote() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const voteId: string = "vote_abcde";
6 const urlId: string = "url_56789";
7 const broadcastId: string = "brd_001";
8 const editKey: string = "edit_456";
9 // sso é opcional e foi omitido
10
11 const response: DeleteCommentVoteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18 );
19
20 console.log(response);
21}
22
23removeVote();
24

Denunciar comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Resposta

Retorna: FlagCommentResponse1

Exemplo

Exemplo de flagComment
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_2023";
4 const commentId: string = "comment_5678";
5 const userId: string = "user_1234";
6 const anonUserId: string = "anon_4321";
7
8 const result: FlagCommentResponse1 = await flagComment(tenantId, commentId, userId);
9 const anonResult: FlagCommentResponse1 = await flagComment(tenantId, commentId, undefined, anonUserId);
10})();
11

Obter comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes

Resposta

Retorna: GetCommentResponse

Exemplo

Exemplo getComment
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-987654";
5 const result: GetCommentResponse = await getComment(tenantId, commentId);
6 const badgeInfo: CommentUserBadgeInfo | undefined = result.comment?.user?.badgeInfo;
7 console.log(badgeInfo?.label);
8})();
9

Obter comentários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
pagenumberNão
limitnumberNão
skipnumberNão
asTreebooleanNão
skipChildrennumberNão
limitChildrennumberNão
maxTreeDepthnumberNão
urlIdstringNão
userIdstringNão
anonUserIdstringNão
contextUserIdstringNão
hashTagstringNão
parentIdstringNão
directionSortDirectionsNão
fromDatenumberNão
toDatenumberNão

Resposta

Retorna: GetCommentsResponse

Exemplo

Exemplo getComments
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const page: number = 2;
4const limit: number = 50;
5const asTree: boolean = true;
6const urlId: string = "article_5678";
7const direction: SortDirections = "desc";
8const fromDate: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // uma semana atrás
9const toDate: number = Date.now();
10
11const commentsResponse: GetCommentsResponse = await getComments({
12 tenantId,
13 page,
14 limit,
15 asTree,
16 urlId,
17 direction,
18 fromDate,
19 toDate,
20});
21

Obter comentários (público) Internal Link

req tenantId urlId

Parâmetros

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

Resposta

Retorna: GetCommentsPublicResponse

Exemplo

Exemplo getCommentsPublic
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = 'acme-corp';
4 const urlId: string = 'blog/post-789';
5 const page: number = 1;
6 const direction: SortDirections = SortDirections.Desc;
7 const limit: number = 25;
8 const includeConfig: boolean = true;
9 const locale: string = 'en-GB';
10 const modules: string = 'reactions,attachments';
11 const isCrawler: boolean = false;
12 const includeNotificationCount: boolean = true;
13 const asTree: boolean = true;
14 const maxTreeDepth: number = 4;
15 const searchText: string = 'TypeScript';
16 const hashTags: string[] = ['typescript', 'api'];
17 const response: GetCommentsPublicResponse = 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 modules,
34 isCrawler,
35 includeNotificationCount,
36 asTree,
37 maxTreeDepth,
38 undefined,
39 undefined,
40 searchText,
41 hashTags,
42 undefined,
43 undefined,
44 undefined,
45 undefined
46 );
47}
48

Obter texto do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: GetCommentTextResponse1

Exemplo

Exemplo getCommentText
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp-tenant";
4 const commentId: string = "cmt-5f2e9a1b";
5 const editKey: string = "edk-9b7c3";
6 const ssoToken: string = "sso-xyz789";
7
8 const commentOnly: GetCommentTextResponse1 = await getCommentText(tenantId, commentId);
9 const commentWithEdit: GetCommentTextResponse1 = await getCommentText(tenantId, commentId, editKey);
10 const commentFull: GetCommentTextResponse1 = await getCommentText(tenantId, commentId, editKey, ssoToken);
11}
12run();
13

Obter nomes de usuários que votaram no comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
dirnumberSim
ssostringNão

Resposta

Retorna: GetCommentVoteUserNamesResponse

Exemplo

Exemplo getCommentVoteUserNames
Copy Copy
1
2async function demoGetCommentVoteUserNames() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_5f2a1e3b";
5 const dir: number = 1; // crescente
6
7 const votesWithoutSSO: GetCommentVoteUserNamesResponse = await getCommentVoteUserNames(
8 tenantId,
9 commentId,
10 dir
11 );
12
13 const ssoToken: string = "sso_abcdef123456";
14 const votesWithSSO: GetCommentVoteUserNamesResponse = await getCommentVoteUserNames(
15 tenantId,
16 commentId,
17 dir,
18 ssoToken
19 );
20
21 console.log(votesWithoutSSO, votesWithSSO);
22}
23
---

Bloquear comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: LockCommentResponse

Exemplo

Exemplo lockComment
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6
7 // Com token SSO opcional
8 const ssoToken: string = "user-abc123";
9 const lockedWithSso: LockCommentResponse = await lockComment(tenantId, commentId, broadcastId, ssoToken);
10
11 // Sem token SSO
12 const lockedWithoutSso: LockCommentResponse = await lockComment(tenantId, commentId, broadcastId);
13})();
14

Fixar comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: PinCommentResponse

Exemplo

Exemplo pinComment
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant-001';
4 const commentId: string = 'comment-5678';
5 const broadcastId: string = 'broadcast-2023';
6 const ssoToken: string = 'sso-xyz-789';
7
8 const pinResult: PinCommentResponse = await pinComment(tenantId, commentId, broadcastId);
9 const pinResultWithSso: PinCommentResponse = await pinComment(tenantId, commentId, broadcastId, ssoToken);
10})();
11

Salvar comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createCommentParamsCreateCommentParamsSim
isLivebooleanNão
doSpamCheckbooleanNão
sendEmailsbooleanNão
populateNotificationsbooleanNão

Resposta

Retorna: SaveCommentResponse

Exemplo

saveComment Exemplo
Copy Copy
1
2async function submitComment() {
3 const tenantId: string = "tenant_9f8e7d6c";
4 const commentParams: CreateCommentParams = {
5 text: "Great post, thanks for sharing!",
6 authorId: "user_123abc",
7 mentions: [] as CommentUserMentionInfo[],
8 hashtags: [] as CommentUserHashTagInfo[]
9 };
10 const response: SaveCommentResponse = await saveComment(
11 tenantId,
12 commentParams,
13 true, // isLive
14 false // doSpamCheck
15 );
16 console.log(response);
17}
18submitComment();
19

Salvar comentários em massa Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createCommentParamsArraySim
isLivebooleanNão
doSpamCheckbooleanNão
sendEmailsbooleanNão
populateNotificationsbooleanNão

Resposta

Retorna: Array<SaveCommentsBulkResponse

Exemplo

Exemplo saveCommentsBulk
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const bulkComments: CreateCommentParams[] = [
5 {
6 content: "Welcome to the new forum thread!",
7 authorId: "user_42",
8 mentions: [{ userId: "user_84", username: "alice" }],
9 hashtags: [{ tag: "intro" }]
10 },
11 {
12 content: "Please review the updated guidelines.",
13 authorId: "moderator_1",
14 mentions: [],
15 hashtags: [{ tag: "guidelines" }, { tag: "update" }]
16 }
17];
18
19const results: SaveCommentsBulkResponse[] = await saveCommentsBulk(
20 tenantId,
21 bulkComments,
22 true, // isLive
23 false, // doSpamCheck
24 true, // sendEmails
25 undefined // populateNotifications (using default)
26);
27

Definir texto do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
commentTextUpdateRequestCommentTextUpdateRequestSim
editKeystringNão
ssostringNão

Resposta

Retorna: SetCommentTextResponse1

Exemplo

Exemplo setCommentText
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const commentId: string = 'cmt_98765';
5 const broadcastId: string = 'brd_112233';
6 const commentTextUpdateRequest: CommentTextUpdateRequest = {
7 text: 'Updated comment with @john.doe and #important',
8 mentions: [{ userId: 'user_001', username: 'john.doe' }],
9 hashtags: [{ tag: 'important' }],
10 };
11 const editKey: string = 'edit_abc123';
12 const result: SetCommentTextResponse1 = await setCommentText(
13 tenantId,
14 commentId,
15 broadcastId,
16 commentTextUpdateRequest,
17 editKey,
18 );
19 console.log(result);
20})();
21

Desbloquear usuário do comentário Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
unBlockFromCommentParamsUnBlockFromCommentParamsSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: UnBlockUserFromCommentResponse

Exemplo

unBlockUserFromComment Exemplo
Copy Copy
1
2async function demoUnblock() {
3 const tenantId: string = "acme-corp-tenant";
4 const commentId: string = "cmt_9f8b7a6d";
5
6 const params: UnBlockFromCommentParams = {
7 reason: "User resolved the issue",
8 notifyUser: true
9 };
10
11 const userId: string = "usr_12345";
12
13 const result: UnBlockUserFromCommentResponse = await unBlockUserFromComment(
14 tenantId,
15 commentId,
16 params,
17 userId
18 // anonUserId omitted -> // anonUserId omitido
19 );
20
21 console.log(result);
22}
23demoUnblock();
24

Remover denúncia do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Resposta

Retorna: UnFlagCommentResponse

Exemplo

Exemplo unFlagComment
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_123456";
4const userId: string = "usr_98765";
5
6const result: UnFlagCommentResponse = await unFlagComment(tenantId, commentId, userId);
7
8const anonCommentId: string = "cmt_123457";
9const anonUserId: string = "anon_abc123";
10
11const anonResult: UnFlagCommentResponse = await unFlagComment(tenantId, anonCommentId, undefined, anonUserId);
12

Desbloquear comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: UnLockCommentResponse

Exemplo

Exemplo de unLockComment
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const broadcastId: string = "brd_001";
5const ssoToken: string | undefined = "sso_token_abc";
6
7async function run() {
8 const unlocked: UnLockCommentResponse = await unLockComment(tenantId, commentId, broadcastId, ssoToken);
9 console.log(unlocked);
10
11 // Chamar sem o parâmetro sso opcional
12 const unlockedWithoutSso: UnLockCommentResponse = await unLockComment(tenantId, commentId, broadcastId);
13 console.log(unlockedWithoutSso);
14}
15
16run();
17

Remover fixação do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: UnPinCommentResponse

Exemplo

Exemplo unPinComment
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-001"
4 const commentId: string = "comment-123"
5 const broadcastId: string = "broadcast-456"
6 const sso: string = "sso-token-xyz"
7
8 const resultWithSso: UnPinCommentResponse = await unPinComment(tenantId, commentId, broadcastId, sso)
9 const resultWithoutSso: UnPinCommentResponse = await unPinComment(tenantId, commentId, broadcastId)
10
11 console.log(resultWithSso, resultWithoutSso)
12})()
13

Atualizar comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updatableCommentParamsUpdatableCommentParamsSim
contextUserIdstringNão
doSpamCheckbooleanNão
isLivebooleanNão

Resposta

Retorna: UpdateCommentResponse

Exemplo

Exemplo updateComment
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4
5const updatableCommentParams: UpdatableCommentParams = {
6 // campos de exemplo; a forma real depende da definição da API
7 // por exemplo, body: "Conteúdo do comentário editado",
8};
9
10const contextUserId: string = "user_abcde";
11const doSpamCheck: boolean = true;
12const isLive: boolean = false;
13
14const result: UpdateCommentResponse = await updateComment(
15 tenantId,
16 commentId,
17 updatableCommentParams,
18 contextUserId,
19 doSpamCheck,
20 isLive
21);
22

Votar em comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
sessionIdstringNo
ssostringNo

Resposta

Retorna: VoteCommentResponse

Exemplo

Exemplo voteComment
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_9f8e7d6c";
4const urlId: string = "url_123456";
5const broadcastId: string = "bcast_2024_01";
6
7const voteBodyParams: VoteBodyParams = {
8 vote: "up", // ex., "up" | "down"
9 weight: 1, // peso opcional do voto
10};
11
12const sessionId: string = "sess_abc123def";
13const sso: string = "sso_token_xyz";
14
15const result: VoteCommentResponse = await voteComment(
16 tenantId,
17 commentId,
18 urlId,
19 broadcastId,
20 voteBodyParams,
21 sessionId,
22 sso
23);
24

Obter comentários do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
userIdstringNão
directionSortDirectionsNão
repliesToUserIdstringNão
pagenumberNão
includei10nbooleanNão
localestringNão
isCrawlerbooleanNão

Resposta

Retorna: GetCommentsForUserResponse1

Exemplo

Exemplo getCommentsForUser
Copy Copy
1
2async function demo() {
3 const userId: string = "user-12345";
4 const direction: SortDirections = "desc";
5 const page: number = 1;
6 const includei10n: boolean = true;
7 const locale: string = "en-US";
8 const isCrawler: boolean = false;
9
10 const response: GetCommentsForUserResponse1 = await getCommentsForUser(
11 userId,
12 direction,
13 undefined,
14 page,
15 includei10n,
16 locale,
17 isCrawler
18 );
19
20 console.log(response);
21}
22

Adicionar configuração de domínio Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsYes

Resposta

Retorna: AddDomainConfigResponse

Exemplo

addDomainConfig Exemplo
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // a descrição é opcional e omitida aqui
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

Excluir configuração de domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Retorna: DeleteDomainConfigResponse

Exemplo

Exemplo 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

Obter configuração de domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Retorna: GetDomainConfigResponse

Exemplo

Exemplo 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

Obter configurações de domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetDomainConfigsResponse

Exemplo

Exemplo 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

Atualizar configuração de domínio (parcial) Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
patchDomainConfigParamsPatchDomainConfigParamsSim

Response

Retorna: PatchDomainConfigResponse

Exemplo

patchDomainConfig Exemplo
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, // parâmetro opcional demonstrado
9 };
10 const response: PatchDomainConfigResponse = await patchDomainConfig(tenantId, domainToUpdate, patchParams);
11 console.log(response);
12}
13
14updateDomainConfig();
15

Substituir configuração de domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
updateDomainConfigParamsUpdateDomainConfigParamsSim

Resposta

Retorna: PutDomainConfigResponse

Exemplo

Exemplo 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 opcional omitido, por exemplo, maxCommentLength?: number
8 };
9 const result: PutDomainConfigResponse = await putDomainConfig(
10 tenantId,
11 domainToUpdate,
12 updateDomainConfigParams,
13 );
14 console.log(result);
15}
16runExample();
17

Criar modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createEmailTemplateBodyCreateEmailTemplateBodySim

Resposta

Retorna: CreateEmailTemplateResponse1

Exemplo

Exemplo createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_9f8e7d6c";
3
4const emailTemplate: CreateEmailTemplateBody = {
5 name: "Account Activation",
6 subject: "Activate Your New Account",
7 htmlContent: "<p>Welcome! Please click <a href=\"\{{activationLink}}\">here</a> to activate.</p>",
8 // campos opcionais como textContent, isActive são omitidos para demonstrar parâmetros opcionais
9};
10
11const result: CreateEmailTemplateResponse1 = await createEmailTemplate(
12 tenantId,
13 emailTemplate
14);
15
16console.log(result);
17

Excluir modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeleteEmailTemplateResponse

Exemplo

Exemplo deleteEmailTemplate
Copy Copy
1
2async () => {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_abcde";
5
6 const response: DeleteEmailTemplateResponse = await deleteEmailTemplate(tenantId, templateId);
7
8 // Exemplo de acesso a uma propriedade opcional da resposta
9 const statusCode: number | undefined = response.status?.code;
10}();
11

Excluir erro de renderização de modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
errorIdstringSim

Resposta

Retorna: DeleteEmailTemplateRenderErrorResponse

Exemplo

Exemplo deleteEmailTemplateRenderError
Copy Copy
1
2async function executeDelete() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "email_tpl_001";
5 const errorId: string = "render_err_2023";
6
7 const result: DeleteEmailTemplateRenderErrorResponse = await deleteEmailTemplateRenderError(
8 tenantId,
9 templateId,
10 errorId
11 );
12
13 console.log(result);
14}
15
16executeDelete();
17

Obter modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetEmailTemplateResponse1

Exemplo

Exemplo getEmailTemplate
Copy Copy
1
2async function fetchTemplate(): Promise<void> {
3 const tenantId: string = "tenant-12345";
4 const templateId: string = "order-confirmation";
5 const response: GetEmailTemplateResponse1 = await getEmailTemplate(tenantId, templateId);
6 const emailTemplate: CustomEmailTemplate | undefined = response.customEmailTemplate;
7 const configParams: CustomConfigParameters | undefined = response.customConfigParameters;
8}
9

Obter definições de modelos de e-mail Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes

Resposta

Retorna: GetEmailTemplateDefinitionsResponse1

Exemplo

Exemplo getEmailTemplateDefinitions
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const emailTemplateDefs: GetEmailTemplateDefinitionsResponse1 = await getEmailTemplateDefinitions(tenantId);
5 console.log(emailTemplateDefs);
6})();
7

Obter erros de renderização de modelos de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
skipnumberNão

Resposta

Retorna: GetEmailTemplateRenderErrorsResponse1

Exemplo

getEmailTemplateRenderErrors Exemplo
Copy Copy
1
2const tenantId: string = "c2f5a8d9-4b3e-4f6a-9e1b-2d5c6f7a8b9c";
3const templateId: string = "welcome-email-template";
4const skip: number = 20;
5
6const result: GetEmailTemplateRenderErrorsResponse1 = await getEmailTemplateRenderErrors(
7 tenantId,
8 templateId,
9 skip
10);
11

Obter modelos de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetEmailTemplatesResponse1

Exemplo

Exemplo getEmailTemplates
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4
5 // Chamada sem o parâmetro opcional 'skip'
6 const templates: GetEmailTemplatesResponse1 = await getEmailTemplates(tenantId);
7
8 // Chamada com o parâmetro opcional 'skip'
9 const pagedTemplates: GetEmailTemplatesResponse1 = await getEmailTemplates(tenantId, 20);
10})();
11

Renderizar modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
renderEmailTemplateBodyRenderEmailTemplateBodySim
localestringNão

Resposta

Retorna: RenderEmailTemplateResponse1

Exemplo

Exemplo renderEmailTemplate
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-01";
4 const templateBody: RenderEmailTemplateBody = {
5 templateId: "welcome-email",
6 placeholders: {
7 userName: "John Doe",
8 signupDate: "2024-04-01"
9 }
10 };
11 const locale: string = "en-US";
12 const result: RenderEmailTemplateResponse1 = await renderEmailTemplate(tenantId, templateBody, locale);
13 console.log(result);
14})();
15

Atualizar modelo de e-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateEmailTemplateBodyUpdateEmailTemplateBodySim

Resposta

Retorna: UpdateEmailTemplateResponse

Exemplo

Exemplo updateEmailTemplate
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "email_tpl_67890";
5
6 const updateBody: UpdateEmailTemplateBody = {
7 subject: "Comment reply notification",
8 htmlContent: "<p>Someone replied to your comment.</p>",
9 plainTextContent: "Someone replied to your comment.",
10 // exemplo de campo opcional
11 isActive: true,
12 };
13
14 const result: UpdateEmailTemplateResponse = await updateEmailTemplate(
15 tenantId,
16 templateId,
17 updateBody
18 );
19
20 console.log(result);
21})();
22

Obter log de eventos Internal Link

req tenantId urlId userIdWS

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimenumberSim
endTimenumberNão

Resposta

Retorna: GetEventLogResponse1

Exemplo

Exemplo getEventLog
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9876";
4 const urlId: string = "page_54321";
5 const userIdWS: string = "ws_user_1122";
6 const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // uma semana atrás
7 const endTime: number = Date.now();
8
9 const log: GetEventLogResponse1 = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
10 const recentLog: GetEventLogResponse1 = await getEventLog(tenantId, urlId, userIdWS, startTime);
11})();
12

Obter log de eventos global Internal Link

req tenantId urlId userIdWS

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimenumberSim
endTimenumberNão

Resposta

Retorna: GetGlobalEventLogResponse

Exemplo

Exemplo getGlobalEventLog
Copy Copy
1
2(async () => {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const urlId: string = 'article-2023-09-15';
5 const userIdWS: string = 'ws_987654321';
6 const startTime: number = Date.now() - 86400000;
7 const endTime: number = Date.now();
8
9 const fullLog: GetGlobalEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
10 const recentLog: GetGlobalEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime);
11
12 console.log(fullLog, recentLog);
13})();
14

Criar publicação do feed Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
isLivebooleanNo
doSpamCheckbooleanNo
skipDupCheckbooleanNo

Response

Retorna: CreateFeedPostResponse1

Example

Exemplo createFeedPost
Copy Copy
1
2async function run() {
3 const tenantId = "tenant-12345";
4 const feedParams: CreateFeedPostParams = {
5 text: "New product launch!",
6 mediaItems: [{ type: "image", asset: { url: "https://cdn.example.com/img.jpg", width: 800, height: 600 } as FeedPostMediaItemAsset } as FeedPostMediaItem],
7 link: { url: "https://example.com/product", title: "Product" } as FeedPostLink
8 };
9 const result: CreateFeedPostResponse1 = await createFeedPost(tenantId, feedParams, "broadcast-987", true, false, true);
10 console.log(result);
11}
12run();
13

Criar publicação do feed (pública) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createFeedPostParamsCreateFeedPostParamsSim
broadcastIdstringNão
ssostringNão

Resposta

Retorna: CreateFeedPostPublicResponse

Exemplo

Exemplo createFeedPostPublic
Copy Copy
1
2async function submitPost() {
3 const tenantId: string = "tenant_12345";
4
5 const mediaItem: FeedPostMediaItem = {
6 asset: {
7 url: "https://cdn.example.com/image.jpg",
8 mimeType: "image/jpeg",
9 size: 104857,
10 },
11 type: "image",
12 };
13
14 const link: FeedPostLink = {
15 url: "https://example.com/blog/new-feature",
16 title: "New Feature Release",
17 description: "Details about our latest product update.",
18 };
19
20 const createFeedPostParams: CreateFeedPostParams = {
21 content: "Check out our new feature!",
22 media: [mediaItem],
23 link: link,
24 };
25
26 const broadcastId: string = "broadcast_9876";
27 const sso: string = "sso_token_abc123";
28
29 const response: CreateFeedPostPublicResponse = await createFeedPostPublic(
30 tenantId,
31 createFeedPostParams,
32 broadcastId,
33 sso
34 );
35}
36

Excluir publicação do feed (pública) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
broadcastIdstringNão
ssostringNão

Resposta

Retorna: DeleteFeedPostPublicResponse

Exemplo

Exemplo deleteFeedPostPublic
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const postId: string = "post_987654321";
5 const broadcastId: string = "broadcast_2024Q1";
6 const sso: string = "sso_4fa3b9c2";
7
8 const response1: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(tenantId, postId);
9 const response2: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(tenantId, postId, broadcastId);
10 const response3: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
11})();
12

Obter publicações do feed Internal Link

req tenantId afterId

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
limitnumberNo
tagsArrayNo

Resposta

Retorna: GetFeedPostsResponse1

Exemplo

Exemplo getFeedPosts
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const afterId: string = 'post_9876';
5 const limit: number = 20;
6 const tags: string[] = ['news', 'sports'];
7
8 const feedResult: GetFeedPostsResponse1 = await getFeedPosts(tenantId, afterId, limit, tags);
9})();
10

Obter publicações do feed (públicas) Internal Link

req tenantId afterId

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
afterIdstringNo
limitnumberNo
tagsArrayNo
ssostringNo
isCrawlerbooleanNo
includeUserInfobooleanNo

Resposta

Retorna: GetFeedPostsPublicResponse

Exemplo

Exemplo getFeedPostsPublic
Copy Copy
1
2async function example() {
3 const tenantId: string = "tenant_12345";
4 const afterId: string = "post_9876";
5 const limit: number = 20;
6 const tags: string[] = ["news", "tech"];
7 const sso: string = "userToken123";
8 const isCrawler: boolean = false;
9 const includeUserInfo: boolean = true;
10 const response: GetFeedPostsPublicResponse = await getFeedPostsPublic(
11 tenantId,
12 afterId,
13 limit,
14 tags,
15 sso,
16 isCrawler,
17 includeUserInfo
18 );
19}
20example();
21

Obter estatísticas das publicações do feed Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdsArraySim
ssostringNão

Resposta

Retorna: GetFeedPostsStatsResponse

Exemplo

Exemplo getFeedPostsStats
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const postIds: string[] = ["post_a1b2c3", "post_d4e5f6"];
5 const ssoToken: string = "sso_abcdef123456";
6
7 const statsWithoutSso: GetFeedPostsStatsResponse = await getFeedPostsStats(tenantId, postIds);
8 const statsWithSso: GetFeedPostsStatsResponse = await getFeedPostsStats(tenantId, postIds, ssoToken);
9}
10
11runExample();
12

Obter reações de usuário (públicas) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdsArrayNão
ssostringNão

Resposta

Retorna: GetUserReactsPublicResponse

Exemplo

Exemplo getUserReactsPublic
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const postIds: string[] = ["post_1a2b3c", "post_4d5e6f"];
5 const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
6
7 const fullResponse: GetUserReactsPublicResponse = await getUserReactsPublic(tenantId, postIds, ssoToken);
8 const minimalResponse: GetUserReactsPublicResponse = await getUserReactsPublic(tenantId);
9}
10
11demo();
12

Reagir à publicação do feed (pública) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
reactBodyParamsReactBodyParamsSim
isUndobooleanNão
broadcastIdstringNão
ssostringNão

Resposta

Retorna: ReactFeedPostPublicResponse

Exemplo

Exemplo reactFeedPostPublic
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const postId: string = 'post_98765';
5 const reactBodyParams: ReactBodyParams = { reaction: 'thumbs_up' };
6 const isUndo: boolean = false;
7 const broadcastId: string = 'broadcast_abcde';
8 const sso: string = 'sso_token_xyz';
9
10 const response: ReactFeedPostPublicResponse = await reactFeedPostPublic(
11 tenantId,
12 postId,
13 reactBodyParams,
14 isUndo,
15 broadcastId,
16 sso
17 );
18
19 console.log(response);
20})();
21

Atualizar publicação do feed Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
feedPostFeedPostSim

Resposta

Retorna: UpdateFeedPostResponse

Exemplo

Exemplo updateFeedPost
Copy Copy
1
2const tenantId: string = "tenant_3421";
3const postId: string = "feedpost_a9b8c7";
4
5const feedPost: FeedPost = {
6 content: "We've refreshed the announcement with the latest project milestones.",
7 media: [
8 {
9 type: "image",
10 url: "https://assets.example.com/images/milestone.png",
11 caption: "Project Milestones"
12 } as FeedPostMediaItem
13 ],
14 link: {
15 url: "https://example.com/project-updates",
16 title: "Project Updates",
17 description: "Read about the recent progress and upcoming goals."
18 } as FeedPostLink
19};
20
21const result: UpdateFeedPostResponse = await updateFeedPost(tenantId, postId, feedPost);
22

Atualizar publicação do feed (pública) Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
updateFeedPostParamsUpdateFeedPostParamsSim
broadcastIdstringNão
ssostringNão

Response

Retorna: UpdateFeedPostPublicResponse

Exemplo

updateFeedPostPublic Exemplo
Copy Copy
1
2async function updatePostExample() {
3 const tenantId: string = 'tenant-9f8b7c';
4 const postId: string = 'post-3a4d5e';
5 const updateParams: UpdateFeedPostParams = {
6 title: 'New Announcement',
7 content: 'We have updated our terms of service.',
8 media: [
9 {
10 url: 'https://cdn.example.com/assets/image.png',
11 type: 'image',
12 asset: {
13 width: 800,
14 height: 600,
15 size: 124000
16 } as FeedPostMediaItemAsset
17 } as FeedPostMediaItem
18 ],
19 link: {
20 url: 'https://example.com/terms',
21 title: 'Read the new TOS'
22 } as FeedPostLink
23 };
24 const broadcastId: string = 'broadcast-2023-09';
25 const sso: string = 'sso-abc123xyz';
26 const result: UpdateFeedPostPublicResponse = await updateFeedPostPublic(
27 tenantId,
28 postId,
29 updateParams,
30 broadcastId,
31 sso
32 );
33}
34

Denunciar comentário (público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
isFlaggedbooleanSim
ssostringNão

Resposta

Retorna: FlagCommentPublicResponse

Exemplo

Exemplo flagCommentPublic
Copy Copy
1
2async function demoFlagComment() {
3 const tenantId: string = "acme-tenant-123";
4 const commentId: string = "comment-987654";
5 const isFlagged: boolean = true;
6 const sso: string = "sso-token-abc123";
7
8 const result: FlagCommentPublicResponse = await flagCommentPublic(
9 tenantId,
10 commentId,
11 isFlagged,
12 sso
13 );
14
15 console.log(result);
16}
17
18demoFlagComment();
19

Obter GIF grande Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
largeInternalURLSanitizedstringSim

Resposta

Retorna: GetGifLargeResponse

Exemplo

Exemplo getGifLarge
Copy Copy
1
2(async () => {
3 const tenantId: string = 'c9f4a1b2-3d5e-4f6a-8b9c-0d1e2f3a4b5c';
4 const largeInternalURLSanitized: string = 'https://cdn.fastcomments.com/gifs/awesome-cat-large.gif';
5 const result: GetGifLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6 console.log(result);
7})();
8

Pesquisar GIFs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
searchstringSim
localestringNão
ratingstringNão
pagenumberNão

Resposta

Retorna: GetGifsSearchResponse

Exemplo

Exemplo getGifsSearch
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_9f8b7c";
4 const search: string = "funny cats";
5 const locale: string = "en-US";
6 const rating: string = "pg";
7 const page: number = 1;
8
9 const result: GetGifsSearchResponse = await getGifsSearch(
10 tenantId,
11 search,
12 locale,
13 rating,
14 page
15 );
16
17 console.log(result);
18}
19
20demo();
21

GIFs em alta Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
localestringNão
ratingstringNão
pagenumberNão

Response

Retorna: GetGifsTrendingResponse

Example

Exemplo 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 // Usando apenas o parâmetro obrigatório
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

Adicionar hashtag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringNão
createHashTagBodyCreateHashTagBodyNão

Resposta

Retorna: AddHashTagResponse

Exemplo

Exemplo addHashTag
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const newHashTag: CreateHashTagBody = {
5 tag: "typescript",
6 description: "Discussions about TypeScript"
7};
8
9const responseWithTenant: AddHashTagResponse = await addHashTag(tenantId, newHashTag);
10
11const responseWithoutTenant: AddHashTagResponse = await addHashTag(undefined, newHashTag);
12

Adicionar hashtags em massa Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringNão
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNão

Resposta

Retorna: AddHashTagsBulkResponse

Exemplo

addHashTagsBulk Exemplo
Copy Copy
1
2async () => {
3 const tenantId: string | undefined = "tenant_9f8b7c6d";
4 const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
5 tags: [
6 {
7 name: "typescript",
8 description: "Discussions about TypeScript",
9 color: "#3178c6"
10 },
11 {
12 name: "fastcomments",
13 description: "Tags for FastComments integration",
14 color: "#00aaff"
15 }
16 ]
17 };
18 const result: AddHashTagsBulkResponse = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
19 console.log(result);
20}();
21

Excluir hashtag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tagstringSim
tenantIdstringNão
deleteHashTagRequestBodyDeleteHashTagRequestBodyNão

Resposta

Retorna: DeleteHashTagResponse

Exemplo

Exemplo deleteHashTag
Copy Copy
1
2(async () => {
3 const tag: string = "announcement";
4 const tenantId: string = "tenant_9876";
5 const requestBody: DeleteHashTagRequestBody = {
6 confirmDeletion: true
7 };
8 const response: DeleteHashTagResponse = await deleteHashTag(tag, tenantId, requestBody);
9 console.log(response);
10})();
11

Obter hashtags Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
pagenumberNão

Resposta

Retorna: GetHashTagsResponse1

Exemplo

getHashTags Exemplo
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4
5 const responseWithPage: GetHashTagsResponse1 = await getHashTags(tenantId, 1);
6 const responseDefault: GetHashTagsResponse1 = await getHashTags(tenantId);
7
8 console.log(responseWithPage, responseDefault);
9})();
10

Atualizar hashtag (parcial) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tagstringSim
tenantIdstringNão
updateHashTagBodyUpdateHashTagBodyNão

Resposta

Retorna: PatchHashTagResponse

Exemplo

Exemplo patchHashTag
Copy Copy
1
2const response1: PatchHashTagResponse = await patchHashTag("new-feature");
3
4const response2: PatchHashTagResponse = await patchHashTag(
5 "beta-release",
6 "tenant-9f8b7c"
7);
8
9const updateBody: UpdateHashTagBody = {
10 description: "Mark comments related to the upcoming beta release",
11 color: "#1e90ff"
12};
13
14const response3: PatchHashTagResponse = await patchHashTag(
15 "beta-release",
16 "tenant-9f8b7c",
17 updateBody
18);
19

Excluir voto de moderação Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringYes
voteIdstringYes
broadcastIdstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: DeleteModerationVoteResponse

Exemplo

Exemplo deleteModerationVote
Copy Copy
1
2const commentId: string = "cmt_12345";
3const voteId: string = "vote_9876";
4const broadcastId: string = "brd_001";
5const tenantId: string = "tenant_42";
6const sso: string = "sso_token_abc";
7
8const result: DeleteModerationVoteResponse = await deleteModerationVote(
9 commentId,
10 voteId,
11 broadcastId,
12 tenantId,
13 sso
14);
15

Obter comentários da API Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
pagenumberNo
countnumberNo
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetApiCommentsResponse

Exemplo

Exemplo getApiComments
Copy Copy
1
2async function loadComments() {
3 const fullResult: GetApiCommentsResponse = await getApiComments(
4 2, // página
5 25, // contagem
6 "feedback", // texto da pesquisa
7 "192.168.1.100", // por IP do comentário
8 "approved", // filtros
9 "hasReplies", // filtros de busca
10 "dateDesc", // ordenação
11 false, // demo
12 "tenant-abc123", // ID do inquilino
13 "sso-token-xyz" // sso
14 );
15
16 const minimalResult: GetApiCommentsResponse = await getApiComments(undefined, 5);
17}
18

Obter status de exportação da API Internal Link

Parâmetros

NameTypeRequiredDescription
batchJobIdstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetApiExportStatusResponse

Exemplo

Exemplo getApiExportStatus
Copy Copy
1
2async function demoExportStatus() {
3 const batchJobId: string = "exportBatch-20231101-001";
4 const tenantId: string = "tenant-abc123";
5 const ssoToken: string = "sso-xyz789";
6
7 const fullStatus: GetApiExportStatusResponse = await getApiExportStatus(batchJobId, tenantId, ssoToken);
8 const simpleStatus: GetApiExportStatusResponse = await getApiExportStatus(batchJobId);
9 console.log(fullStatus, simpleStatus);
10}
11

Obter IDs da API Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetApiIdsResponse

Exemplo

Exemplo getApiIds
Copy Copy
1
2const textSearch: string = "urgent feedback";
3const byIPFromComment: string = "203.0.113.42";
4const filters: string = "status:approved";
5const afterId: string = "comment-789";
6const demo: boolean = true;
7const tenantId: string = "tenant-001";
8
9const apiIds: GetApiIdsResponse = await getApiIds({
10 textSearch,
11 byIPFromComment,
12 filters,
13 afterId,
14 demo,
15 tenantId,
16});
17

Obter usuários banidos do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetBanUsersFromCommentResponse

Exemplo

Exemplo getBanUsersFromComment
Copy Copy
1
2async function demoGetBanUsers() {
3 const commentId: string = "cmt_5f8e3a9b2d";
4 const tenantId: string = "tenant_42";
5 const sso: string = "sso_token_abc123";
6
7 // Chamar com todos os parâmetros
8 const fullResult: GetBanUsersFromCommentResponse = await getBanUsersFromComment(commentId, tenantId, sso);
9 console.log(fullResult);
10
11 // Chamar apenas com o parâmetro obrigatório
12 const minimalResult: GetBanUsersFromCommentResponse = await getBanUsersFromComment(commentId);
13 console.log(minimalResult);
14}
15
16demoGetBanUsers();
17

Obter status de banimento do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetCommentBanStatusResponse1

Exemplo

Exemplo getCommentBanStatus
Copy Copy
1
2async function checkCommentBanStatus() {
3 const banStatus: GetCommentBanStatusResponse1 = await getCommentBanStatus('cmt_987654321', 'tenant_42', 'sso_token_abc123');
4 const banStatusNoTenant: GetCommentBanStatusResponse1 = await getCommentBanStatus('cmt_987654322', undefined, 'sso_token_def456');
5}
6

Obter respostas do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetCommentChildrenResponse

Exemplo

getCommentChildren Exemplo
Copy Copy
1
2const commentId: string = "cmt_12345";
3const tenantId: string = "tenant_xyz";
4const sso: string = "sso_987654";
5
6const fullResponse: GetCommentChildrenResponse = await getCommentChildren(commentId, tenantId, sso);
7const minimalResponse: GetCommentChildrenResponse = await getCommentChildren(commentId);
8

Obter contagem Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetCountResponse

Exemplo

Exemplo getCount
Copy Copy
1
2async function main(): Promise<void> {
3 const count: GetCountResponse = await getCount({
4 textSearch: "order issue",
5 byIPFromComment: "198.51.100.23",
6 filter: "pending",
7 demo: true,
8 tenantId: "acme_corp",
9 sso: "sso_abcdef123456"
10 });
11 console.log(count);
12}
13main();
14

Obter contagens Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetCountsResponse

Exemplo

Exemplo getCounts
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp";
4 const ssoToken: string = "sso-token-2024";
5
6 const withBoth: GetCountsResponse = await getCounts(tenantId, ssoToken);
7 const withTenantOnly: GetCountsResponse = await getCounts(tenantId);
8 const withoutParams: GetCountsResponse = await getCounts();
9
10 console.log(withBoth, withTenantOnly, withoutParams);
11}
12runExample();
13

Obter logs Internal Link

Parâmetros

NameTypeRequiredDescription
commentIdstringYes
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetLogsResponse

Exemplo

getLogs Exemplo
Copy Copy
1
2async function fetchLogs() {
3 const commentId: string = "cmt_9a8b7c6d5e4f3a2b";
4 const tenantId: string = "tenant_9876";
5 const sso: string = "sso_abcdef123456";
6
7 const fullResponse: GetLogsResponse = await getLogs(commentId, tenantId, sso);
8 const minimalResponse: GetLogsResponse = await getLogs(commentId);
9}
10

Obter insígnias manuais Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetManualBadgesResponse

Exemplo

Exemplo getManualBadges
Copy Copy
1
2async function fetchBadges() {
3 const tenantId: string = "tenant_987654321";
4 const ssoToken: string = "sso_ABCdef123456";
5
6 // Chamada com ambos os parâmetros opcionais
7 const responseFull: GetManualBadgesResponse = await getManualBadges(tenantId, ssoToken);
8 console.log(responseFull);
9
10 // Chamada apenas com tenantId
11 const responseTenantOnly: GetManualBadgesResponse = await getManualBadges(tenantId);
12 console.log(responseTenantOnly);
13}
14
15fetchBadges();
16

Obter insígnias manuais do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
badgesUserIdstringNão
commentIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetManualBadgesForUserResponse

Exemplo

Exemplo getManualBadgesForUser
Copy Copy
1
2(async () => {
3 const userId: string = "user_42";
4 const commentId: string = "comment_1001";
5 const tenantId: string = "tenant_acme";
6 const ssoToken: string = "sso_5f6g7h8i9j";
7
8 const badges: GetManualBadgesForUserResponse = await getManualBadgesForUser(userId, commentId, tenantId, ssoToken);
9 const limitedBadges: GetManualBadgesForUserResponse = await getManualBadgesForUser(userId);
10})();
11

Obter comentário de moderação Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringYes
includeEmailbooleanNo
includeIPbooleanNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: GetModerationCommentResponse

Exemplo

Exemplo getModerationComment
Copy Copy
1
2async function fetchCommentDetails() {
3 // Conjunto completo de parâmetros
4 const commentId: string = "cmt_12345abc";
5 const includeEmail: boolean = true;
6 const includeIP: boolean = false;
7 const tenantId: string = "tenant_9876";
8 const sso: string = "sso_token_xyz";
9
10 const fullResult: GetModerationCommentResponse = await getModerationComment(
11 commentId,
12 includeEmail,
13 includeIP,
14 tenantId,
15 sso
16 );
17
18 // Chamada mínima usando apenas o argumento obrigatório
19 const minimalResult: GetModerationCommentResponse = await getModerationComment("cmt_67890def");
20
21 // Use os resultados conforme necessário...
22}
23

Obter texto do comentário de moderação Internal Link

Parameters

NomeTipoObrigatórioDescrição
commentIdstringSim
tenantIdstringNão
ssostringNão

Response

Returns: GetModerationCommentTextResponse

Example

Exemplo getModerationCommentText
Copy Copy
1
2async function exampleUsage(): Promise<void> {
3 const commentId: string = "cmt_9f8e7d6c5b4a3b2c1d0e";
4 const tenantId: string = "tenant_67890";
5 const sso: string = "sso_token_abc123";
6
7 // Chamar apenas com o parâmetro obrigatório
8 const result1: GetModerationCommentTextResponse = await getModerationCommentText(commentId);
9
10 // Chamar com parâmetros opcionais
11 const result2: GetModerationCommentTextResponse = await getModerationCommentText(commentId, tenantId, sso);
12}
13

Obter resumo pré-banimento Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
includeByUserIdAndEmailbooleanNão
includeByIPbooleanNão
includeByEmailDomainbooleanNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetPreBanSummaryResponse

Exemplo

Exemplo getPreBanSummary
Copy Copy
1
2const commentId: string = "5f8d0c2e4b1a2c3d4e5f6a7b";
3const includeByUserIdAndEmail: boolean = true;
4const includeByIP: boolean = true;
5const includeByEmailDomain: boolean = false;
6const tenantId: string = "tenant-001";
7const sso: string = "sso-xyz-123";
8
9const preBanSummary: GetPreBanSummaryResponse = await getPreBanSummary(
10 commentId,
11 includeByUserIdAndEmail,
12 includeByIP,
13 includeByEmailDomain,
14 tenantId,
15 sso
16);
17

Obter resumo de pesquisa de comentários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
valuestringNão
filtersstringNão
searchFiltersstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetSearchCommentsSummaryResponse

Exemplo

getSearchCommentsSummary Exemplo
Copy Copy
1
2async function runExample(): Promise<void> {
3 const searchTerm: string = "fastcomments integration";
4 const filterString: string = "status:approved";
5 const searchFilterString: string = "author:jane";
6 const tenantId: string = "123e4567-e89b-12d3-a456-426614174000";
7 const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
8
9 const summary: GetSearchCommentsSummaryResponse = await getSearchCommentsSummary(
10 searchTerm,
11 filterString,
12 searchFilterString,
13 tenantId,
14 ssoToken
15 );
16
17 console.log(summary);
18}
19runExample();
20

Pesquisar páginas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
valuestringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetSearchPagesResponse

Exemplo

Exemplo getSearchPages
Copy Copy
1
2(async () => {
3 const query: string = "network outage";
4 const tenantId: string = "tenant-9876";
5 const ssoToken: string = "sso-abc123def456";
6
7 const searchResult: GetSearchPagesResponse = await getSearchPages(query, tenantId, ssoToken);
8 const searchResultNoSso: GetSearchPagesResponse = await getSearchPages(query, tenantId);
9})();
10

Pesquisar sites Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
valuestringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetSearchSitesResponse

Exemplo

Exemplo getSearchSites
Copy Copy
1
2async function fetchSites() {
3 const value: string = "customer support"
4 const tenantId: string = "tenant-9876"
5 const sso: string = "sso-abc123"
6
7 const sites: GetSearchSitesResponse = await getSearchSites(value, tenantId, sso)
8 const sitesOnlyTenant: GetSearchSitesResponse = await getSearchSites(undefined, tenantId)
9}
10

Obter sugestões de pesquisa Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
textSearchstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetSearchSuggestResponse

Exemplo

Exemplo getSearchSuggest
Copy Copy
1
2async function example(): Promise<void> {
3 const term: string = "fastcomments api";
4 const tenant: string = "tenant_001";
5 const sso: string = "sso_9a8b7c";
6
7 const fullResult: GetSearchSuggestResponse = await getSearchSuggest(term, tenant, sso);
8 const partialResult: GetSearchSuggestResponse = await getSearchSuggest(term);
9}
10
11example();
12

Pesquisar usuários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
valuestringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetSearchUsersResponse

Exemplo

Exemplo getSearchUsers
Copy Copy
1
2async function demoSearch() {
3 const query: string = "john.doe@example.com";
4 const tenantId: string = "tenant_12345";
5 const ssoToken: string = "sso_token_abc";
6
7 const resultWithSso: GetSearchUsersResponse = await getSearchUsers(query, tenantId, ssoToken);
8 const resultWithoutSso: GetSearchUsersResponse = await getSearchUsers(query, tenantId);
9}
10

Obter fator de confiança Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
userIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetTrustFactorResponse

Exemplo

Exemplo getTrustFactor
Copy Copy
1
2async function runDemo(): Promise<void> {
3 const trustFull: GetTrustFactorResponse = await getTrustFactor("user_12345", "tenant_abc", "sso_token_987");
4 const trustUserOnly: GetTrustFactorResponse = await getTrustFactor("user_12345");
5 console.log(trustFull, trustUserOnly);
6}
7runDemo();
8

Obter preferência de banimento do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetUserBanPreferenceResponse

Exemplo

Exemplo getUserBanPreference
Copy Copy
1
2async function demoGetUserBanPreference(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant-2024";
4 const sso: string = "sso-token-9f8b7a6c";
5
6 const result: GetUserBanPreferenceResponse = await getUserBanPreference(tenantId, sso);
7 console.log(result);
8}
9
10demoGetUserBanPreference();
11

Obter perfil interno do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: GetUserInternalProfileResponse1

Exemplo

getUserInternalProfile Exemplo
Copy Copy
1
2(async () => {
3 const fullProfile: GetUserInternalProfileResponse1 = await getUserInternalProfile({
4 commentId: "cmt_12345",
5 tenantId: "tenant_67890",
6 sso: "sso_token_abcdef"
7 });
8
9 const partialProfile: GetUserInternalProfileResponse1 = await getUserInternalProfile({
10 commentId: "cmt_98765"
11 });
12})();
13

Ajustar votos de comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
adjustCommentVotesParamsAdjustCommentVotesParamsSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostAdjustCommentVotesResponse

Exemplo

Exemplo postAdjustCommentVotes
Copy Copy
1
2const commentId: string = "cmt_9f8b7a6d";
3
4const adjustParams: AdjustCommentVotesParams = {
5 voteDelta: 1,
6 // campos adicionais conforme exigido por AdjustCommentVotesParams
7};
8
9const broadcastId: string = "brd_20230915";
10const tenantId: string = "tenant_42";
11const sso: string = "sso-token-abc123";
12
13const result: PostAdjustCommentVotesResponse = await postAdjustCommentVotes(
14 commentId,
15 adjustParams,
16 broadcastId,
17 tenantId,
18 sso
19);
20

Solicitar exportação da API Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
textSearchstringNão
byIPFromCommentstringNão
filtersstringNão
searchFiltersstringNão
sortsstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostApiExportResponse

Exemplo

postApiExport Exemplo
Copy Copy
1
2(async () => {
3 const textSearch: string = "keyword:feedback"
4 const byIPFromComment: string = "203.0.113.45"
5 const filters: string = "status:pending,category:support"
6 const searchFilters: string = "createdAt>2023-01-01"
7 const sorts: string = "createdAt:desc"
8 const tenantId: string = "tenant_9876"
9 const sso: string = "sso_7e2a9b"
10
11 const exportResult: PostApiExportResponse = await postApiExport(
12 textSearch,
13 byIPFromComment,
14 filters,
15 searchFilters,
16 sorts,
17 tenantId,
18 sso
19 )
20
21 console.log(exportResult)
22})()
23

Banir usuário do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringYes
banEmailbooleanNo
banEmailDomainbooleanNo
banIPbooleanNo
deleteAllUsersCommentsbooleanNo
bannedUntilstringNo
isShadowBanbooleanNo
updateIdstringNo
banReasonstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: PostBanUserFromCommentResponse

Exemplo

Exemplo postBanUserFromComment
Copy Copy
1
2async function runBan() {
3 const commentId: string = "cmt_5f8a2b3c";
4 const banEmail: boolean = true;
5 const banIP: boolean = false;
6 const deleteAllUsersComments: boolean = true;
7 const bannedUntil: string = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString();
8 const isShadowBan: boolean = false;
9 const banReason: string = "Repeated spam posting";
10 const tenantId: string = "tenant_12345";
11
12 const response: PostBanUserFromCommentResponse = await postBanUserFromComment(
13 commentId,
14 banEmail,
15 undefined,
16 banIP,
17 deleteAllUsersComments,
18 bannedUntil,
19 isShadowBan,
20 undefined,
21 banReason,
22 tenantId
23 );
24 console.log(response);
25}
26runBan();
27

Desfazer banimento de usuário Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
banUserUndoParamsBanUserUndoParamsSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostBanUserUndoResponse

Exemplo

Exemplo postBanUserUndo
Copy Copy
1
2const undoParams: BanUserUndoParams = {
3 userId: "user-8421",
4 commentId: "comment-6702",
5 reason: "Accidental ban"
6};
7
8const tenantId: string = "tenant-7f9e";
9const ssoToken: string = "sso-4b2c1d";
10
11async function runUndo() {
12 const resultAll: PostBanUserUndoResponse = await postBanUserUndo(undoParams, tenantId, ssoToken);
13 console.log(resultAll);
14
15 const resultMinimal: PostBanUserUndoResponse = await postBanUserUndo(undoParams);
16 console.log(resultMinimal);
17}
18
19runUndo();
20

Enviar resumo pré-banimento em massa Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
bulkPreBanParamsBulkPreBanParamsSim
includeByUserIdAndEmailbooleanNão
includeByIPbooleanNão
includeByEmailDomainbooleanNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostBulkPreBanSummaryResponse

Exemplo

postBulkPreBanSummary Exemplo
Copy Copy
1
2async function runExample() {
3 const bulkPreBanParams: BulkPreBanParams = {
4 userIds: [10234, 56789],
5 emails: ["spam_user@example.com", "abuse@badsite.org"],
6 ips: ["203.0.113.45", "198.51.100.22"],
7 emailDomains: ["maliciousdomain.com"]
8 };
9
10 const includeByUserIdAndEmail: boolean = true;
11 const includeByIP: boolean = false;
12 const includeByEmailDomain: boolean = true;
13 const tenantId: string = "tenant_8f4b2c1a";
14 const sso: string = "sso-3948abf0";
15
16 const summary: PostBulkPreBanSummaryResponse = await postBulkPreBanSummary(
17 bulkPreBanParams,
18 includeByUserIdAndEmail,
19 includeByIP,
20 includeByEmailDomain,
21 tenantId,
22 sso
23 );
24
25 console.log(summary);
26}
27
28runExample();
29

Solicitar comentários por IDs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentsByIdsParamsCommentsByIdsParamsSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostCommentsByIdsResponse

Exemplo

postCommentsByIds Exemplo
Copy Copy
1
2const commentsByIdsParams: CommentsByIdsParams = {
3 commentIds: ['cmt001', 'cmt002'],
4 includeUserInfo: true,
5 includeThreadInfo: false,
6} as CommentsByIdsParams;
7
8const fullResponse: PostCommentsByIdsResponse = await postCommentsByIds(
9 commentsByIdsParams,
10 'tenant-12345',
11 'sso-token-xyz'
12);
13
14const minimalResponse: PostCommentsByIdsResponse = await postCommentsByIds(
15 commentsByIdsParams
16);
17

Denunciar comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostFlagCommentResponse

Exemplo

postFlagComment Exemplo
Copy Copy
1
2const commentId: string = "cmt_20230915_001";
3const broadcastId: string = "brd_20230915_live";
4const tenantId: string = "tenant_42";
5const sso: string = "sso_token_abc123";
6
7const flaggedResponse: PostFlagCommentResponse = await postFlagComment(
8 commentId,
9 broadcastId,
10 tenantId,
11 sso
12);
13

Remover comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostRemoveCommentResponse

Exemplo

postRemoveComment Exemplo
Copy Copy
1
2async function removeCommentExample(): Promise<void> {
3 const commentId: string = "cmt_7f9a3e2b";
4
5 const result1: PostRemoveCommentResponse = await postRemoveComment(commentId);
6
7 const broadcastId: string = "brd_12ab34cd";
8 const tenantId: string = "tenant_5678efgh";
9 const sso: string = "sso_XYZ12345";
10
11 const result2: PostRemoveCommentResponse = await postRemoveComment(commentId, broadcastId, tenantId, sso);
12
13 console.log(result1, result2);
14}
15

Restaurar comentário excluído Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostRestoreDeletedCommentResponse

Exemplo

Exemplo postRestoreDeletedComment
Copy Copy
1
2async function restoreCommentDemo(): Promise<void> {
3 const commentId: string = "cmt_5f2a9b7e1234567890abcd";
4 const broadcastId: string | undefined = "brd_2023_09";
5 const tenantId: string | undefined = "tenant_42";
6 const sso: string | undefined = "sso_token_abcdef123456";
7
8 const response: PostRestoreDeletedCommentResponse = await postRestoreDeletedComment(
9 commentId,
10 broadcastId,
11 tenantId,
12 sso
13 );
14
15 console.log(response);
16}
17
18restoreCommentDemo();
19

Definir status de aprovação do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
approvedbooleanNão
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostSetCommentApprovalStatusResponse

Exemplo

Exemplo de postSetCommentApprovalStatus
Copy Copy
1
2async function main() {
3 const commentIdOnly: string = "cmt_1001";
4 const resultOnly: PostSetCommentApprovalStatusResponse = await postSetCommentApprovalStatus(commentIdOnly);
5
6 const commentIdFull: string = "cmt_2002";
7 const approvedFull: boolean = true;
8 const broadcastIdFull: string = "brd_3003";
9 const tenantIdFull: string = "tenant_abc";
10 const ssoFull: string = "sso_token_xyz";
11 const resultFull: PostSetCommentApprovalStatusResponse = await postSetCommentApprovalStatus(
12 commentIdFull,
13 approvedFull,
14 broadcastIdFull,
15 tenantIdFull,
16 ssoFull
17 );
18
19 console.log(resultOnly, resultFull);
20}
21main();
22

Definir status de revisão do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
reviewedbooleanNão
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostSetCommentReviewStatusResponse

Exemplo

postSetCommentReviewStatus Exemplo
Copy Copy
1
2async function updateCommentReviewStatus(): Promise<void> {
3 const commentId: string = "cmt_9f8a7b6c5d4e3f2a1b0c";
4 const reviewed: boolean = true;
5 const broadcastId: string = "broadcast_2024Q1";
6 const tenantId: string = "tenant_1001";
7 const sso: string = "alice@example.com";
8
9 const response: PostSetCommentReviewStatusResponse = await postSetCommentReviewStatus(
10 commentId,
11 reviewed,
12 broadcastId,
13 tenantId,
14 sso
15 );
16
17 console.log(response);
18}
19

Definir status de spam do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
spambooleanNão
permNotSpambooleanNão
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostSetCommentSpamStatusResponse

Exemplo

Exemplo postSetCommentSpamStatus
Copy Copy
1
2async function demoSpamStatus(): Promise<void> {
3 const commentId: string = "cmt_5f2a1b3c4d6e7f8g9h0i";
4
5 // Apenas parâmetro obrigatório
6 const resultSimple: PostSetCommentSpamStatusResponse = await postSetCommentSpamStatus(commentId, true);
7
8 // Todos os parâmetros opcionais fornecidos
9 const resultFull: PostSetCommentSpamStatusResponse = await postSetCommentSpamStatus(
10 commentId,
11 false,
12 true,
13 "brd_1234abcd",
14 "tenant_42",
15 "sso_9876xyz"
16 );
17
18 console.log(resultSimple, resultFull);
19}
20

Definir texto do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
setCommentTextParamsSetCommentTextParamsSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostSetCommentTextResponse

Exemplo

Exemplo postSetCommentText
Copy Copy
1
2(async () => {
3 const commentId: string = "cmt_9f8b7a6d5e4c3b2a1";
4 const setParams: SetCommentTextParams = {
5 text: "Edited comment to correct a typo and add clarification."
6 };
7 const broadcastId: string = "brd_1a2b3c4d5e6f7g8h9";
8 const tenantId: string = "tenant_xyz123";
9 const sso: string = "sso_user_456def";
10
11 const fullResult: PostSetCommentTextResponse = await postSetCommentText(
12 commentId,
13 setParams,
14 broadcastId,
15 tenantId,
16 sso
17 );
18
19 const minimalResult: PostSetCommentTextResponse = await postSetCommentText(
20 commentId,
21 setParams
22 );
23
24 console.log(fullResult, minimalResult);
25})();
26

Remover denúncia do comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Returns: PostUnFlagCommentResponse

Exemplo

postUnFlagComment Exemplo
Copy Copy
1
2async () => {
3 const response: PostUnFlagCommentResponse = await postUnFlagComment(
4 "cmt_12345", // commentId
5 "brd_67890", // broadcastId (opcional)
6 "tenant_abc", // tenantId (opcional)
7 "sso_user_token_789" // sso (opcional)
8 );
9};
10

Enviar voto Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
commentIdstringSim
directionstringNão
broadcastIdstringNão
tenantIdstringNão
ssostringNão

Resposta

Retorna: PostVoteResponse

Exemplo

postVote Exemplo
Copy Copy
1
2let commentId: string = 'cmt_12345';
3let direction: string = 'up';
4let broadcastId: string = 'brd_67890';
5let tenantId: string = 'tenant_abc';
6let sso: string = 'sso_token_xyz';
7
8const fullVote: PostVoteResponse = await postVote(
9 commentId,
10 direction,
11 broadcastId,
12 tenantId,
13 sso
14);
15
16const simpleVote: PostVoteResponse = await postVote('cmt_67890');
17

Conceder insígnia Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: PutAwardBadgeResponse

Exemplo

Exemplo putAwardBadge
Copy Copy
1
2(async () => {
3 const badgeId: string = "badge-superstar"
4 const userId: string = "user-42"
5 const commentId: string = "comment-7f9c3"
6 const broadcastId: string = "broadcast-2023-09"
7 const result: PutAwardBadgeResponse = await putAwardBadge(badgeId, userId, commentId, broadcastId)
8 console.log(result)
9})()
10

Fechar tópico Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
urlIdstringSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: PutCloseThreadResponse

Exemplo

putCloseThread Exemplo
Copy Copy
1
2async function closeThreadDemo(): Promise<void> {
3 const urlId: string = "article-2023-09-15";
4 const tenantId: string = "tenant-42";
5 const sso: string = "sso-token-xyz";
6
7 const response: PutCloseThreadResponse = await putCloseThread(urlId, tenantId, sso);
8 console.log(response);
9}
10
11closeThreadDemo();
12

Remover insígnia Internal Link

Parâmetros

NameTypeRequiredDescription
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: PutRemoveBadgeResponse

Exemplo

Exemplo putRemoveBadge
Copy Copy
1
2const badgeId: string = "badge-12345";
3const userId: string = "user-9876";
4const commentId: string = "comment-5555";
5const broadcastId: string = "broadcast-001";
6
7const result: PutRemoveBadgeResponse = await putRemoveBadge(
8 badgeId,
9 userId,
10 commentId,
11 broadcastId
12);
13

Reabrir tópico Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
urlIdstringSim
tenantIdstringNão
ssostringNão

Resposta

Retorna: PutReopenThreadResponse

Exemplo

Exemplo putReopenThread
Copy Copy
1
2async function exampleUsage() {
3 const urlId: string = "thread-9f8b7c6a";
4 const tenantId: string = "tenant-001";
5 const sso: string = "sso-3f9d2e1a";
6
7 const resultAll: PutReopenThreadResponse = await putReopenThread(urlId, tenantId, sso);
8 console.log(resultAll);
9
10 const resultMinimal: PutReopenThreadResponse = await putReopenThread(urlId);
11 console.log(resultMinimal);
12}
13

Definir fator de confiança Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
userIdstringNo
trustFactorstringNo
tenantIdstringNo
ssostringNo

Resposta

Retorna: SetTrustFactorResponse

Exemplo

Exemplo setTrustFactor
Copy Copy
1
2(async () => {
3 const userId: string = "user_8421";
4 const trustFactor: string = "high";
5 const tenantId: string = "tenant_33";
6 const ssoToken: string = "sso_7d9f";
7
8 const fullResult: SetTrustFactorResponse = await setTrustFactor(userId, trustFactor, tenantId, ssoToken);
9 const minimalResult: SetTrustFactorResponse = await setTrustFactor(userId, trustFactor);
10})();
11

Criar moderador Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createModeratorBodyCreateModeratorBodySim

Resposta

Retorna: CreateModeratorResponse1

Exemplo

Exemplo createModerator
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9876";
4 const moderatorPayload: CreateModeratorBody = {
5 name: "Alice Johnson",
6 email: "alice.johnson@example.com"
7 // campos opcionais como descrição são omitidos
8 };
9 const result: CreateModeratorResponse1 = await createModerator(tenantId, moderatorPayload);
10 console.log(result);
11}
12
13runExample();
14

Excluir moderador Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
sendEmailstringNão

Resposta

Retorna: DeleteModeratorResponse

Exemplo

Exemplo deleteModerator
Copy Copy
1
2async function runDeleteModeratorExample() {
3 const tenantId: string = "tenant_2023";
4 const moderatorId: string = "mod_001";
5 const notificationEmail: string = "admin@mycompany.com";
6
7 const resultWithEmail: DeleteModeratorResponse = await deleteModerator(tenantId, moderatorId, notificationEmail);
8 const resultWithoutEmail: DeleteModeratorResponse = await deleteModerator(tenantId, moderatorId);
9}
10

Obter moderador Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Response

Retorna: GetModeratorResponse1

Example

Exemplo getModerator
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-001";
4 const id: string = "mod-12345";
5
6 const result: GetModeratorResponse1 = await getModerator(tenantId, id);
7
8 const moderatorName: string | undefined = result.moderator?.name;
9 console.log(moderatorName);
10})();
11

Obter moderadores Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetModeratorsResponse1

Exemplo

Exemplo getModerators
Copy Copy
1
2async function fetchModerators(): Promise<void> {
3 const tenantId: string = "tenant-9876";
4 const skip: number = 30; // deslocamento de paginação opcional
5 const moderators: GetModeratorsResponse1 = await getModerators(tenantId, skip);
6 // Exemplo sem paginação:
7 // const allModerators: GetModeratorsResponse1 = await getModerators(tenantId);
8}
9

Enviar convite Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
fromNamestringSim

Resposta

Retorna: SendInviteResponse

Exemplo

Exemplo sendInvite
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const inviteId: string = "invite-12345";
4const fromName: string = "John Doe";
5
6const inviteResult: SendInviteResponse = await sendInvite(tenantId, inviteId, fromName);
7

Atualizar moderador Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

Resposta

Retorna: UpdateModeratorResponse

Exemplo

Exemplo updateModerator
Copy Copy
1
2async function demoUpdateModerator(): Promise<void> {
3 const tenantId: string = "tenant_42abc";
4 const moderatorId: string = "moderator_8f9e";
5 const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 role: "admin",
8 // campo opcional
9 notes: "Promoted to senior moderator"
10 };
11 const result: UpdateModeratorResponse = await updateModerator(tenantId, moderatorId, updateBody);
12 console.log(result);
13}
14
15demoUpdateModerator();
16

Excluir contagem de notificações Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Resposta

Retorna: DeleteNotificationCountResponse

Exemplo

Exemplo deleteNotificationCount
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const notificationId: string = "notif_98765";
5 const result: DeleteNotificationCountResponse = await deleteNotificationCount(tenantId, notificationId);
6 console.log(result);
7}
8run();
9

Obter contagem de notificações em cache Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetCachedNotificationCountResponse1

Exemplo

getCachedNotificationCount Exemplo
Copy Copy
1
2const tenantId: string = "e3f1a9b2-4c5d-6e7f-8a9b-0c1d2e3f4a5b";
3const userId: string = "u-20231101-001";
4
5const notificationResult: GetCachedNotificationCountResponse1 = await getCachedNotificationCount(tenantId, userId);
6
7console.log(notificationResult);
8

Obter contagem de notificações Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo

Resposta

Retorna: GetNotificationCountResponse1

Exemplo

Exemplo getNotificationCount
Copy Copy
1
2async function demoNotificationCount() {
3 const tenantId: string = "tenant_001";
4 const userId: string = "user_42";
5 const urlId: string = "url_9f8e7d";
6 const fromCommentId: string = "comment_12345";
7 const viewed: boolean = false;
8 const type: string = "mention";
9
10 const result: GetNotificationCountResponse1 = await getNotificationCount(
11 tenantId,
12 userId,
13 urlId,
14 fromCommentId,
15 viewed,
16 type
17 );
18
19 console.log(result);
20}
21
22demoNotificationCount();
23

Obter notificações Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo
skipnumberNo

Resposta

Retorna: GetNotificationsResponse1

Exemplo

Exemplo getNotifications
Copy Copy
1
2async function demo() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe";
5
6 const notifications: GetNotificationsResponse1 = await getNotifications(tenantId, userId);
7 console.log(notifications);
8
9 const more: GetNotificationsResponse1 = await getNotifications(
10 tenantId,
11 undefined,
12 "article-5678",
13 undefined,
14 true,
15 "reply",
16 10
17 );
18 console.log(more);
19}
20demo();
21

Atualizar notificação Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateNotificationBodyUpdateNotificationBodySim
userIdstringNão

Resposta

Retorna: UpdateNotificationResponse

Exemplo

Exemplo updateNotification
Copy Copy
1
2const tenantId: string = "tenant_5f4d2c";
3const notificationId: string = "notif_9b8a7c";
4
5const updateBody: UpdateNotificationBody = {
6 enabled: false,
7 sendEmail: true,
8 schedule: "2023-12-01T08:00:00Z"
9};
10
11const userId: string = "user_123e4567";
12
13const responseWithUser: UpdateNotificationResponse = await updateNotification(
14 tenantId,
15 notificationId,
16 updateBody,
17 userId
18);
19
20const responseWithoutUser: UpdateNotificationResponse = await updateNotification(
21 tenantId,
22 notificationId,
23 updateBody
24);
25

Criar reação de página V1 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
titlestringNão

Resposta

Retorna: CreateV1PageReactResponse

Exemplo

Exemplo createV1PageReact
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "article-2024-06-improvements";
4const title: string = "FastComments API Integration Guide";
5
6const responseWithTitle: CreateV1PageReactResponse = await createV1PageReact(tenantId, urlId, title);
7const responseWithoutTitle: CreateV1PageReactResponse = await createV1PageReact(tenantId, urlId);
8

Criar reação de página V2 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo

Resposta

Retorna: CreateV2PageReactResponse

Exemplo

Exemplo createV2PageReact
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "blog/posts/fastcomments-integration";
5 const pageId: string = "page-12345";
6 const title: string = "FastComments API Integration Guide";
7
8 const responseWithoutTitle: CreateV2PageReactResponse = await createV2PageReact(tenantId, urlId, pageId);
9 const responseWithTitle: CreateV2PageReactResponse = await createV2PageReact(tenantId, urlId, pageId, title);
10
11 console.log(responseWithoutTitle, responseWithTitle);
12})();
13

Excluir reação de página V1 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: DeleteV1PageReactResponse

Exemplo

Exemplo deleteV1PageReact
Copy Copy
1
2const tenantId: string = "acme-corp";
3const urlId: string = "article-2024-06-01";
4
5const response: DeleteV1PageReactResponse = await deleteV1PageReact(tenantId, urlId);
6console.log(response);
7

Excluir reação de página V2 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
idstringSim

Resposta

Retorna: DeleteV2PageReactResponse

Exemplo

Exemplo deleteV2PageReact
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "page_98765";
4const reactionId: string = "react_abcde";
5
6const deleteResult: DeleteV2PageReactResponse = await deleteV2PageReact(tenantId, urlId, reactionId);
7

Obter curtidas da página V1 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetV1PageLikesResponse

Exemplo

Exemplo getV1PageLikes
Copy Copy
1
2async function fetchPageLikes() {
3 const tenantId: string = "acme-corp-tenant-42";
4 const urlId: string = "blog-post-2024-06-typescript-best-practices";
5
6 const likes: GetV1PageLikesResponse = await getV1PageLikes(tenantId, urlId);
7 console.log(likes);
8}
9

Obter reações da página V2 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
urlIdstringYes

Resposta

Retorna: GetV2PageReactsResponse

Exemplo

Exemplo getV2PageReacts
Copy Copy
1
2async function demoGetPageReacts(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant";
4 const urlId: string = "article-2024-06-01";
5
6 const reacts: GetV2PageReactsResponse = await getV2PageReacts(tenantId, urlId);
7
8 // exemplo de acesso a propriedade opcional
9 const customConfig: CustomConfigParameters | undefined = reacts.customConfig;
10 console.log(reacts);
11}
12
13demoGetPageReacts();
14

Obter usuários que reagiram à página V2 Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
idstringSim

Resposta

Retorna: GetV2PageReactUsersResponse1

Exemplo

Exemplo getV2PageReactUsers
Copy Copy
1
2async function fetchReactUsers() {
3 const tenantId: string = 'tenant_12345';
4 const urlId: string = 'article-9876';
5 const id: string = 'user_abcde';
6 const response: GetV2PageReactUsersResponse1 = await getV2PageReactUsers(tenantId, urlId, id);
7 console.log(response);
8}
9fetchReactUsers();
10

Adicionar página Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIPageDataCreateAPIPageDataSim

Resposta

Retorna: AddPageAPIResponse

Exemplo

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

Excluir página Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeletePageAPIResponse

Exemplo

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

Obter usuários offline Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
Use this after exhausting /users/online to render a “Members” section.
Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName}
index from afterName forward via $gt, no $skip cost.

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
afterNamestringNão
afterUserIdstringNão

Resposta

Retorna: GetOfflineUsersResponse

Exemplo

Exemplo getOfflineUsers
Copy Copy
1
2async function fetchOfflineUsers(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "thread_9876";
5 const afterName: string = "Jane Smith";
6 const afterUserId: string = "user_7f9b3c";
7
8 const offlineUsers: GetOfflineUsersResponse = await getOfflineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(offlineUsers);
16}
17

Obter usuários online Internal Link

Atualmente, visualizadores online de uma página: pessoas cuja sessão websocket está inscrita na página neste exato momento.
Retorna anonCount + totalCount (assinantes de toda a sala, incluindo visualizadores anônimos que não enumeramos).

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
afterNamestringNão
afterUserIdstringNão

Resposta

Retorna: GetOnlineUsersResponse

Exemplo

Exemplo getOnlineUsers
Copy Copy
1
2async function demoOnlineUsers() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_98765";
5
6 // Com parâmetros de paginação opcionais
7 const pagedResult: GetOnlineUsersResponse = await getOnlineUsers(
8 tenantId,
9 urlId,
10 "alice_smith",
11 "user_9"
12 );
13
14 // Sem parâmetros de paginação opcionais
15 const fullResult: GetOnlineUsersResponse = await getOnlineUsers(tenantId, urlId);
16}
17

Obter página por ID de URL Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetPageByURLIdAPIResponse

Exemplo

Exemplo 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

Obter páginas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetPagesAPIResponse

Exemplo

Exemplo 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

Obter páginas (públicas) Internal Link

Listar páginas para um tenant. Usado pelo cliente desktop FChat para preencher sua lista de salas.
Requer enableFChat ser true na configuração personalizada resolvida para cada página.
Páginas que requerem SSO são filtradas com base no acesso ao grupo do usuário solicitante.

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
cursorstringNão
limitnumberNão
qstringNão
sortByPagesSortByNão
hasCommentsbooleanNão

Resposta

Retorna: GetPagesPublicResponse

Exemplo

Exemplo getPagesPublic
Copy Copy
1
2async function fetchPages() {
3 const tenantId: string = "tenant_12345";
4 const cursor: string = "nextPageToken";
5 const limit: number = 20;
6 const q: string = "blog";
7 const sortBy: PagesSortBy = "createdAt";
8 const hasComments: boolean = true;
9
10 const response: GetPagesPublicResponse = await getPagesPublic(
11 tenantId,
12 cursor,
13 limit,
14 q,
15 sortBy,
16 hasComments
17 );
18
19 console.log(response);
20}
21

Obter informações de usuários Internal Link

Informações de usuário em massa para um tenant. Dado os userIds, retorna informações de exibição do User / SSOUser. Usado pelo widget de comentários para enriquecer usuários que acabaram de aparecer via um evento de presença. Sem contexto de página: a privacidade é aplicada uniformemente (perfís privados são mascarados).

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idsstringSim

Resposta

Retorna: GetUsersInfoResponse

Exemplo

Exemplo getUsersInfo
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const ids: string = "user-1001,user-1002";
4
5const usersInfo: GetUsersInfoResponse = await getUsersInfo(tenantId, ids);
6
7// Optional fields in the response may be undefined
8const firstUser: PageUserEntry | undefined = usersInfo?.users?.[0];
9

Atualizar página (parcial) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateAPIPageDataUpdateAPIPageDataYes

Resposta

Retorna: PatchPageAPIResponse

Exemplo

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

Excluir evento de webhook pendente Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeletePendingWebhookEventResponse

Exemplo

Exemplo deletePendingWebhookEvent
Copy Copy
1
2async function runDemo() {
3 const tenantId: string = 'c3f5e9d2-1a2b-4c3d-9e7f-1234567890ab';
4 const eventId: string = 'event_987654321';
5 const response: DeletePendingWebhookEventResponse = await deletePendingWebhookEvent(tenantId, eventId);
6 console.log(response);
7}
8runDemo();
9

Obter contagem de eventos de webhook pendentes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringNão
externalIdstringNão
eventTypestringNão
typestringNão
domainstringNão
attemptCountGTnumberNão

Resposta

Retorna: GetPendingWebhookEventCountResponse1

Exemplo

Exemplo getPendingWebhookEventCount
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_001";
4
5 const responseAll: GetPendingWebhookEventCountResponse1 = await getPendingWebhookEventCount(
6 tenantId,
7 "comment_456",
8 "ext_789",
9 "comment.updated",
10 "webhook",
11 "mydomain.com",
12 3
13 );
14
15 const responseMinimal: GetPendingWebhookEventCountResponse1 = await getPendingWebhookEventCount(tenantId);
16
17 console.log(responseAll, responseMinimal);
18})();
19

Obter eventos de webhook pendentes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringNão
externalIdstringNão
eventTypestringNão
typestringNão
domainstringNão
attemptCountGTnumberNão
skipnumberNão

Resposta

Retorna: GetPendingWebhookEventsResponse1

Exemplo

Exemplo getPendingWebhookEvents
Copy Copy
1
2async function fetchPendingEvents(): Promise<void> {
3 const tenantId: string = "123e4567-e89b-12d3-a456-426614174000";
4 const commentId: string = "cmt-987654321";
5 const externalId: string = "ext-abc-123";
6 const eventType: string = "comment_created";
7 const type: string = "outbound";
8 const domain: string = "myblog.com";
9 const attemptCountGT: number = 3;
10 const skip: number = 0;
11
12 const pending: GetPendingWebhookEventsResponse1 = await getPendingWebhookEvents(
13 tenantId,
14 commentId,
15 externalId,
16 eventType,
17 type,
18 domain,
19 attemptCountGT,
20 skip
21 );
22
23 console.log(pending);
24}
25
26fetchPendingEvents();
27

Criar configuração de pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createQuestionConfigBodyCreateQuestionConfigBodySim

Resposta

Retorna: CreateQuestionConfigResponse1

Exemplo

createQuestionConfig Exemplo
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const customOption: QuestionConfigCustomOptionsInner = {
5 label: "Option A",
6 value: "a",
7};
8
9const createQuestionConfigBody: CreateQuestionConfigBody = {
10 questionText: "What is your favorite color?",
11 isActive: true,
12 // campos opcionais podem ser omitidos
13 customOptions: [customOption],
14};
15
16const response: CreateQuestionConfigResponse1 = await createQuestionConfig(
17 tenantId,
18 createQuestionConfigBody
19);
20

Excluir configuração de pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes

Resposta

Retorna: DeleteQuestionConfigResponse

Exemplo

Exemplo deleteQuestionConfig
Copy Copy
1
2async function runDeletion(): Promise<void> {
3 const tenantId: string = "tenant_8f5a2c9d";
4 const configId: string = "questionConfig_4b7e1f";
5 const deleteResult: DeleteQuestionConfigResponse = await deleteQuestionConfig(tenantId, configId);
6 console.log(deleteResult);
7}
8void runDeletion();
9

Obter configuração de pergunta Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Resposta

Retorna: GetQuestionConfigResponse1

Exemplo

getQuestionConfig Exemplo
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-42";
3const questionId: string = "question-7f9b3e";
4
5const response: GetQuestionConfigResponse1 = await getQuestionConfig(tenantId, questionId);
6

Obter configurações de perguntas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetQuestionConfigsResponse1

Exemplo

Exemplo getQuestionConfigs
Copy Copy
1
2async function fetchQuestionConfigs() {
3 const tenantId: string = "tenant-9876";
4
5 // Chamada sem o parâmetro opcional 'skip'
6 const configsWithoutSkip: GetQuestionConfigsResponse1 = await getQuestionConfigs(tenantId);
7
8 // Chamada com o parâmetro opcional 'skip'
9 const skip: number = 10;
10 const configsWithSkip: GetQuestionConfigsResponse1 = await getQuestionConfigs(tenantId, skip);
11
12 console.log(configsWithoutSkip, configsWithSkip);
13}
14

Atualizar configuração de pergunta Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateQuestionConfigBodyUpdateQuestionConfigBodySim

Resposta

Retorna: UpdateQuestionConfigResponse

Exemplo

updateQuestionConfig Exemplo
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const questionId: string = "qstn-2023-04";
4
5const updateBody: UpdateQuestionConfigBody = {
6 // campos opcionais demonstrados
7 customOptions: [
8 {
9 id: "opt-001",
10 label: "Extra Details",
11 required: true,
12 },
13 ],
14 renderingType: "markdown",
15};
16
17const response: UpdateQuestionConfigResponse = await updateQuestionConfig(
18 tenantId,
19 questionId,
20 updateBody
21);
22

Criar resultado de pergunta Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
createQuestionResultBodyCreateQuestionResultBodySim

Response

Retorna: CreateQuestionResultResponse1

Example

Exemplo createQuestionResult
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3
4const metaItem: MetaItem = {
5 key: "campaign",
6 value: "spring-launch"
7};
8
9const questionResultBody: CreateQuestionResultBody = {
10 questionId: "question-42",
11 answer: "Positive",
12 metadata: [metaItem]
13 // campos opcionais como notas são omitidos
14};
15
16const result: CreateQuestionResultResponse1 = await createQuestionResult(tenantId, questionResultBody);
17

Excluir resultado de pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeleteQuestionResultResponse

Exemplo

Exemplo de deleteQuestionResult
Copy Copy
1
2async function runDeletion(): Promise<void> {
3 const tenantId: string = "tenant-001";
4 const resultId: string = "c9f2a5b3-7e6d-4c9a-8b1f-2d3e4f5a6b7c";
5 const result: DeleteQuestionResultResponse = await deleteQuestionResult(tenantId, resultId);
6 console.log(result);
7}
8
9runDeletion();
10

Obter resultado de pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetQuestionResultResponse1

Exemplo

Exemplo getQuestionResult
Copy Copy
1
2async function fetchQuestionResult(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const questionId: string = "question-7a9b8c";
5 const result: GetQuestionResultResponse1 = await getQuestionResult(tenantId, questionId);
6
7 const question: QuestionResult | undefined = result.questionResult;
8 const firstMeta: MetaItem | undefined = result.meta?.[0];
9
10 console.log(question?.id, firstMeta?.key);
11}
12

Obter resultados de perguntas Internal Link


Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
urlIdstringNão
userIdstringNão
startDatestringNão
questionIdstringNão
questionIdsstringNão
skipnumberNão

Resposta

Retorna: GetQuestionResultsResponse1

Exemplo

Exemplo getQuestionResults
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const urlId: string = "post-456";
5 const userId: string = "user-789";
6 const startDate: string = "2023-09-01T00:00:00Z";
7 const questionId: string = "q-101";
8 const questionIds: string = "q-102,q-103";
9 const skip: number = 20;
10
11 const results: GetQuestionResultsResponse1 = await getQuestionResults(
12 tenantId,
13 urlId,
14 userId,
15 startDate,
16 questionId,
17 questionIds,
18 skip
19 );
20
21 console.log(results);
22})();
23

Atualizar resultado de pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateQuestionResultBodyUpdateQuestionResultBodySim

Resposta

Retorna: UpdateQuestionResultResponse

Exemplo

Exemplo updateQuestionResult
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "acme-corp-01";
4 const id: string = "qr-20230915-001";
5
6 const updateQuestionResultBody: UpdateQuestionResultBody = {
7 // campos obrigatórios
8 answer: "No",
9 // campos opcionais
10 comment: "User clarified their response",
11 // anotherOptionalField?: value,
12 };
13
14 const result: UpdateQuestionResultResponse = await updateQuestionResult(
15 tenantId,
16 id,
17 updateQuestionResultBody
18 );
19
20 console.log(result);
21}
22
23runUpdate();
24

Agregação de resultados de perguntas Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
timeBucketAggregateTimeBucketNo
startDateDateNo
forceRecalculatebooleanNo

Resposta

Retorna: AggregateQuestionResultsResponse1

Exemplo

Exemplo aggregateQuestionResults
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const questionId: string = "feedback-rating";
5 const questionIds: string[] = ["feedback-rating", "recommendation"];
6 const urlId: string = "https://myblog.com/articles/42";
7 const timeBucket: AggregateTimeBucket = "month";
8 const startDate: Date = new Date("2023-01-01T00:00:00Z");
9 const forceRecalculate: boolean = true;
10
11 const result: AggregateQuestionResultsResponse1 = await aggregateQuestionResults(
12 tenantId,
13 questionId,
14 questionIds,
15 urlId,
16 timeBucket,
17 startDate,
18 forceRecalculate
19 );
20
21 console.log(result);
22})();
23

Agregação em massa de resultados de perguntas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestSim
forceRecalculatebooleanNão

Resposta

Retorna: BulkAggregateQuestionResultsResponse1

Exemplo

Exemplo bulkAggregateQuestionResults
Copy Copy
1
2const tenantId: string = "acme-corp";
3
4const request: BulkAggregateQuestionResultsRequest = {
5 questionIds: ["product-satisfaction", "feature-usage"],
6 startDate: "2024-01-01T00:00:00Z",
7 endDate: "2024-01-31T23:59:59Z",
8 timeBucket: "day"
9};
10
11const result: BulkAggregateQuestionResultsResponse1 = await bulkAggregateQuestionResults(
12 tenantId,
13 request,
14 true
15);
16

Combinar comentários com resultados de perguntas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
questionIdstringNão
questionIdsArrayNão
urlIdstringNão
startDateDateNão
forceRecalculatebooleanNão
minValuenumberNão
maxValuenumberNão
limitnumberNão

Resposta

Retorna: CombineCommentsWithQuestionResultsResponse

Exemplo

Exemplo combineCommentsWithQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const questionIds: string[] = ["question_1", "question_2"];
4const urlId: string = "article-9876";
5const startDate: Date = new Date("2023-01-01T00:00:00Z");
6const forceRecalculate: boolean = false;
7const minValue: number = 1;
8const maxValue: number = 5;
9const limit: number = 50;
10
11const result: CombineCommentsWithQuestionResultsResponse = await combineCommentsWithQuestionResults(
12 tenantId,
13 undefined,
14 questionIds,
15 urlId,
16 startDate,
17 forceRecalculate,
18 minValue,
19 maxValue,
20 limit
21);
22

Adicionar usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPISSOUserDataCreateAPISSOUserDataSim

Resposta

Retorna: AddSSOUserAPIResponse

Exemplo

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

Excluir usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
deleteCommentsbooleanNão
commentDeleteModestringNão

Resposta

Retorna: DeleteSSOUserAPIResponse

Exemplo

Exemplo 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

Obter usuário SSO por e-mail Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
emailstringSim

Resposta

Retorna: GetSSOUserByEmailAPIResponse

Exemplo

Exemplo 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

Obter usuário SSO por ID Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetSSOUserByIdAPIResponse

Exemplo

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

Obter usuários SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetSSOUsersResponse

Exemplo

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

Atualizar usuário SSO (parcial) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsbooleanNo

Resposta

Retorna: PatchSSOUserAPIResponse

Exemplo

Exemplo de 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

Substituir usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPISSOUserDataUpdateAPISSOUserDataSim
updateCommentsbooleanNão

Resposta

Retorna: PutSSOUserAPIResponse

Exemplo

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

Criar assinatura Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataSim

Resposta

Retorna: CreateSubscriptionAPIResponse

Exemplo

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

Excluir assinatura Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Resposta

Retorna: DeleteSubscriptionAPIResponse

Exemplo

Exemplo deleteSubscription
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 // Com userId opcional
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // Sem userId opcional
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

Obter assinaturas Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão

Resposta

Retorna: GetSubscriptionsAPIResponse

Exemplo

Exemplo 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

Atualizar assinatura Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataSim
userIdstringNão

Resposta

Retorna: UpdateSubscriptionAPIResponse

Exemplo

Exemplo 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

Obter uso diário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
yearNumbernumberNão
monthNumbernumberNão
dayNumbernumberNão
skipnumberNão

Resposta

Retorna: GetTenantDailyUsagesResponse1

Exemplo

Exemplo getTenantDailyUsages
Copy Copy
1
2async function fetchDailyUsage() {
3 const tenantId: string = "tenant-9876";
4 const yearNumber: number = 2024;
5 const monthNumber: number = 5; // Maio
6 const dayNumber: number = 12;
7 const skip: number = 0;
8
9 const fullResult: GetTenantDailyUsagesResponse1 = await getTenantDailyUsages(
10 tenantId,
11 yearNumber,
12 monthNumber,
13 dayNumber,
14 skip
15 );
16
17 // Usando apenas o parâmetro obrigatório e um opcional
18 const partialResult: GetTenantDailyUsagesResponse1 = await getTenantDailyUsages(
19 tenantId,
20 yearNumber
21 );
22
23 console.log(fullResult, partialResult);
24}
25
26fetchDailyUsage();
27

Criar pacote do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantPackageBodyCreateTenantPackageBodySim

Resposta

Retorna: CreateTenantPackageResponse1

Exemplo

Exemplo createTenantPackage
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9876";
4
5 const body: CreateTenantPackageBody = {
6 packageName: "Standard",
7 quota: 5000,
8 // campo opcional
9 description: "Standard package for medium traffic",
10 };
11
12 const result: CreateTenantPackageResponse1 = await createTenantPackage(tenantId, body);
13 console.log(result);
14})();
15

Excluir pacote do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeleteTenantPackageResponse

Exemplo

deleteTenantPackage Exemplo
Copy Copy
1
2async function removeTenantPackage(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const packageId: string = "pkg_67890";
5
6 const result: DeleteTenantPackageResponse = await deleteTenantPackage(tenantId, packageId);
7 // use o resultado conforme necessário
8}
9
10removeTenantPackage();
11

Obter pacote do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantPackageResponse1

Exemplo

Exemplo getTenantPackage
Copy Copy
1
2async function fetchTenantPackage(): Promise<void> {
3 const tenantId: string = "acme-tenant-2024";
4 const packageId: string = "premium-package-01";
5 const response: GetTenantPackageResponse1 = await getTenantPackage(tenantId, packageId);
6
7 // Campos opcionais na resposta
8 const tenantPackage: TenantPackage | undefined = response.tenantPackage;
9 const customConfig: CustomConfigParameters | undefined = response.customConfigParameters;
10}
11

Obter pacotes do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetTenantPackagesResponse1

Exemplo

Exemplo getTenantPackages
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_67890';
4 const skip: number = 30;
5
6 const packagesWithSkip: GetTenantPackagesResponse1 = await getTenantPackages(tenantId, skip);
7 const packagesWithoutSkip: GetTenantPackagesResponse1 = await getTenantPackages(tenantId);
8
9 console.log(packagesWithSkip, packagesWithoutSkip);
10})();
11

Substituir pacote do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
replaceTenantPackageBodyReplaceTenantPackageBodyYes

Resposta

Retorna: ReplaceTenantPackageResponse

Exemplo

replaceTenantPackage Exemplo
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant-01";
4 const packageId: string = "pkg-2024-annual";
5
6 const config: CustomConfigParameters = {
7 // campos de configuração personalizados aqui
8 };
9
10 const body: ReplaceTenantPackageBody = {
11 name: "Enterprise Package",
12 // configuração personalizada opcional
13 customConfig: config,
14 };
15
16 const response: ReplaceTenantPackageResponse = await replaceTenantPackage(tenantId, packageId, body);
17 console.log(response);
18})();
19

Atualizar pacote do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

Resposta

Retorna: UpdateTenantPackageResponse

Exemplo

Exemplo updateTenantPackage
Copy Copy
1
2const tenantId: string = "tenant-9876";
3const packageId: string = "pkg-2023";
4
5const customConfig: CustomConfigParameters = {
6 enableSpamFilter: true,
7 spamRatingThreshold: 4,
8};
9
10const updateBody: UpdateTenantPackageBody = {
11 displayName: "Enterprise Pro",
12 customConfig,
13};
14
15const response: UpdateTenantPackageResponse = await updateTenantPackage(
16 tenantId,
17 packageId,
18 updateBody
19);
20

Criar usuário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantUserBodyCreateTenantUserBodySim

Resposta

Retorna: CreateTenantUserResponse1

Exemplo

Exemplo createTenantUser
Copy Copy
1
2const tenantId: string = "a1b2c3d4-5678-90ab-cdef-1234567890ab";
3
4const newUser: CreateTenantUserBody = {
5 email: "jane.doe@example.com",
6 firstName: "Jane",
7 lastName: "Doe",
8 role: "admin",
9 // parâmetros opcionais
10 phoneNumber: "+15551234567",
11 isActive: true,
12};
13
14const result: CreateTenantUserResponse1 = await createTenantUser(tenantId, newUser);
15

Excluir usuário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
deleteCommentsstringNão
commentDeleteModestringNão

Resposta

Returns: DeleteTenantUserResponse

Exemplo

deleteTenantUser Exemplo
Copy Copy
1
2async function demoDeleteTenantUser() {
3 const tenantId: string = "acme-corp-tenant";
4 const userId: string = "user-9876";
5
6 // Exclui o usuário e todos os seus comentários, usando modo hard delete
7 const resultWithOptions: DeleteTenantUserResponse = await deleteTenantUser(
8 tenantId,
9 userId,
10 "true",
11 "hard"
12 );
13
14 // Exclui o usuário sem remover comentários (comportamento padrão)
15 const resultBasic: DeleteTenantUserResponse = await deleteTenantUser(tenantId, userId);
16}
17

Obter usuário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantUserResponse1

Exemplo

Exemplo getTenantUser
Copy Copy
1
2async function fetchUser(): Promise<void> {
3 const tenantId: string = "tenant-01a2b3c";
4 const userId: string = "user-7890";
5 const result: GetTenantUserResponse1 = await getTenantUser(tenantId, userId);
6 console.log(result);
7}
8

Obter usuários do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetTenantUsersResponse1

Exemplo

Exemplo getTenantUsers
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f7a2c";
4 const skip: number = 25;
5
6 const usersPage: GetTenantUsersResponse1 = await getTenantUsers(tenantId, skip);
7 const allUsers: GetTenantUsersResponse1 = await getTenantUsers(tenantId);
8})();
9

Substituir usuário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
replaceTenantUserBodyReplaceTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: ReplaceTenantUserResponse

Exemplo

replaceTenantUser Exemplo
Copy Copy
1
2async function updateUser() {
3 const tenantId: string = "c3d1f2e4-5b6a-4c7d-9f2e-1234567890ab";
4 const userId: string = "u-654321";
5 const replaceBody: ReplaceTenantUserBody = {
6 email: "newuser@example.com",
7 username: "newusername"
8 };
9 const response: ReplaceTenantUserResponse = await replaceTenantUser(
10 tenantId,
11 userId,
12 replaceBody,
13 "true"
14 );
15 console.log(response);
16}
17updateUser();
18

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
redirectURLstringNo

Resposta

Retorna: SendLoginLinkResponse

Exemplo

Exemplo sendLoginLink
Copy Copy
1
2async function demoSendLoginLink() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5 const redirectURL: string = "https://app.acme-corp.com/auth/callback";
6
7 const resultWithRedirect: SendLoginLinkResponse = await sendLoginLink(tenantId, userId, redirectURL);
8 const resultWithoutRedirect: SendLoginLinkResponse = await sendLoginLink(tenantId, userId);
9}
10

Atualizar usuário do locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateTenantUserBodyUpdateTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: UpdateTenantUserResponse

Exemplo

Exemplo updateTenantUser
Copy Copy
1
2let tenantId: string = "5f8f8c1a2e9b3c001c2a9b2d";
3let userId: string = "user_98765";
4
5let updateBody: UpdateTenantUserBody = {
6 email: "jane.smith@example.com",
7 role: "moderator",
8 isActive: false,
9};
10
11let updateComments: string = "Deactivated user due to policy violation.";
12
13let result: UpdateTenantUserResponse = await updateTenantUser(tenantId, userId, updateBody, updateComments);
14

Criar locatário Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantBodyCreateTenantBodySim

Response

Retorna: CreateTenantResponse1

Example

Exemplo createTenant
Copy Copy
1
2async function example() {
3 const tenantId: string = 'tenant-2024-01';
4 const createTenantBody: CreateTenantBody = {
5 // campos obrigatórios
6 name: 'Acme International',
7 // campos opcionais podem ser adicionados conforme necessário, e.g.:
8 // billingInfo: { address: '123 Main St', city: 'Metropolis' } as BillingInfo,
9 };
10 const response: CreateTenantResponse1 = await createTenant(tenantId, createTenantBody);
11 console.log(response);
12}
13

Excluir locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
surestringNo

Resposta

Retorna: DeleteTenantResponse

Exemplo

deleteTenant Exemplo
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const id: string = "resource_98765";
5 const sure: string = "confirm";
6
7 // Chamar com o parâmetro opcional 'sure'
8 const responseWithSure: DeleteTenantResponse = await deleteTenant(tenantId, id, sure);
9 console.log(responseWithSure);
10
11 // Chamar sem o parâmetro opcional 'sure'
12 const responseWithoutSure: DeleteTenantResponse = await deleteTenant(tenantId, id);
13 console.log(responseWithoutSure);
14}
15
16runExample();
17

Obter locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantResponse1

Exemplo

Exemplo getTenant
Copy Copy
1
2async function fetchTenant(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_9876";
5 const tenantInfo: GetTenantResponse1 = await getTenant(tenantId, id);
6 console.log(tenantInfo);
7}
8
9fetchTenant();
10

Obter locatários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
metastringNão
skipnumberNão

Resposta

Retorna: GetTenantsResponse1

Exemplo

Exemplo getTenants
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8e7d6c";
4 const resultOnlyId: GetTenantsResponse1 = await getTenants(tenantId);
5 const resultWithMeta: GetTenantsResponse1 = await getTenants(tenantId, "full");
6 const resultAllParams: GetTenantsResponse1 = await getTenants(tenantId, "full", 15);
7 console.log(resultOnlyId, resultWithMeta, resultAllParams);
8})();
9

Atualizar locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateTenantBodyUpdateTenantBodySim

Resposta

Retorna: UpdateTenantResponse

Exemplo

Exemplo updateTenant
Copy Copy
1
2const tenantId: string = "c8f9e3d2-4b6a-11ee-8c99-0242ac130003";
3const id: string = "tenant-config-01";
4
5const updateBody: UpdateTenantBody = {
6 domain: "mytenant.fastcomments.io",
7 branding: {
8 logoUrl: "https://cdn.mytenant.com/assets/logo.png"
9 },
10 description: "Branding update for Q3"
11};
12
13const response: UpdateTenantResponse = await updateTenant(tenantId, id, updateBody);
14console.log(response);
15

Alterar estado do ticket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Resposta

Retorna: ChangeTicketStateResponse1

Exemplo

Exemplo changeTicketState
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-97123";
4const ticketId: string = "ticket-45001";
5
6const changeTicketStateBody: ChangeTicketStateBody = {
7 state: "closed",
8 // campo opcional no corpo
9 comment: "Issue resolved after code fix"
10};
11
12const response: ChangeTicketStateResponse1 = await changeTicketState(
13 tenantId,
14 userId,
15 ticketId,
16 changeTicketStateBody
17);
18

Criar ticket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim
createTicketBodyCreateTicketBodySim

Resposta

Retorna: CreateTicketResponse1

Exemplo

Exemplo de createTicket
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const userId: string = "user_98765";
4
5const ticketBody: CreateTicketBody = {
6 subject: "Issue with payment processing"
7 // description?: string é opcional e omitido
8};
9
10const response: CreateTicketResponse1 = await createTicket(tenantId, userId, ticketBody);
11// Exemplo de uso de um campo opcional da resposta
12// console.log(response.ticket?.id);
13

Obter ticket Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Response

Retorna: GetTicketResponse1

Example

Exemplo getTicket
Copy Copy
1
2const tenantId: string = "acme-inc";
3const ticketId: string = "ticket-3421";
4const userId: string = "alice.smith";
5
6const ticketWithUser: GetTicketResponse1 = await getTicket(tenantId, ticketId, userId);
7const ticketWithoutUser: GetTicketResponse1 = await getTicket(tenantId, ticketId);
8

Obter tickets Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
statenumberNão
skipnumberNão
limitnumberNão

Resposta

Retorna: GetTicketsResponse1

Exemplo

Exemplo getTickets
Copy Copy
1
2async function loadTickets() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe";
5 const state: number = 2; // por exemplo, fechado
6 const skip: number = 10;
7 const limit: number = 5;
8
9 const ticketsFull: GetTicketsResponse1 = await getTickets(tenantId, userId, state, skip, limit);
10 const ticketsPartial: GetTicketsResponse1 = await getTickets(tenantId);
11}
12
13loadTickets();
14

Obter traduções Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
namespacestringSim
componentstringSim
localestringNão
useFullTranslationIdsbooleanNão

Resposta

Retorna: GetTranslationsResponse1

Exemplo

Exemplo getTranslations
Copy Copy
1
2(async () => {
3 const namespace: string = 'blog';
4 const component: string = 'comment-editor';
5 const locale: string = 'fr-FR';
6 const useFullTranslationIds: boolean = true;
7
8 const basicTranslations: GetTranslationsResponse1 = await getTranslations(namespace, component);
9 const fullTranslations: GetTranslationsResponse1 = await getTranslations(namespace, component, locale, useFullTranslationIds);
10})();
11

Enviar imagem Internal Link

Carregar e redimensionar uma imagem

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
fileBlobSim
sizePresetSizePresetNão
urlIdstringNão

Resposta

Retorna: UploadImageResponse

Exemplo

Exemplo 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

Obter progresso de insígnia do usuário por ID Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes

Resposta

Retorna: GetUserBadgeProgressByIdResponse

Exemplo

Exemplo getUserBadgeProgressById
Copy Copy
1
2async function demo(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-42";
5 const result: GetUserBadgeProgressByIdResponse = await getUserBadgeProgressById(tenantId, userId);
6 const progress: UserBadgeProgress | undefined = result.progress;
7 const earnedAt: Date | undefined = progress?.earnedAt;
8 console.log(`Badge earned at: ${earnedAt?.toISOString() ?? "not earned yet"}`);
9}
10demo();
11

Obter progresso de insígnia por ID de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim

Resposta

Retorna: GetUserBadgeProgressByUserIdResponse

Exemplo

Exemplo getUserBadgeProgressByUserId
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-12345";
5
6 const badgeProgress: GetUserBadgeProgressByUserIdResponse = await getUserBadgeProgressByUserId(tenantId, userId);
7 console.log(badgeProgress);
8})();
9

Obter lista de progresso de insígnias do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
userIdstringNo
limitnumberNo
skipnumberNo

Resposta

Retorna: GetUserBadgeProgressListResponse

Exemplo

Exemplo getUserBadgeProgressList
Copy Copy
1
2async function fetchBadgeProgress() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe@example.com";
5 const limit: number = 10;
6 const skip: number = 5;
7
8 const fullList: GetUserBadgeProgressListResponse = await getUserBadgeProgressList(
9 tenantId,
10 userId,
11 limit,
12 skip
13 );
14
15 const simpleList: GetUserBadgeProgressListResponse = await getUserBadgeProgressList(tenantId);
16}
17
18fetchBadgeProgress();
19

Criar insígnia de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createUserBadgeParamsCreateUserBadgeParamsSim

Resposta

Retorna: CreateUserBadgeResponse

Exemplo

Exemplo createUserBadge
Copy Copy
1
2const tenantId: string = "company-42";
3
4const badgeParams: CreateUserBadgeParams = {
5 name: "Community Champion",
6 iconUrl: "https://assets.example.com/badges/champion.png",
7 // descrição é opcional e omitida aqui
8};
9
10const result: CreateUserBadgeResponse = await createUserBadge(tenantId, badgeParams);
11

Excluir insígnia de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeleteUserBadgeResponse

Exemplo

deleteUserBadge Exemplo
Copy Copy
1
2async function exampleDeleteBadge(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6a";
4 const badgeId: string = "badge_4e3d2c1b";
5 const result: DeleteUserBadgeResponse = await deleteUserBadge(tenantId, badgeId);
6 console.log(result);
7}
8exampleDeleteBadge();
9

Obter insígnia de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUserBadgeResponse

Exemplo

Exemplo getUserBadge
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant-001";
4 const badgeId: string = "badge-5f9d3a2b";
5
6 const badgeResponse: GetUserBadgeResponse = await getUserBadge(tenantId, badgeId);
7
8 // Acesse campos opcionais com segurança
9 const badgeName: string | undefined = badgeResponse.userBadge?.name;
10 console.log(`Badge ID: ${badgeId}, Name: ${badgeName ?? "Unnamed"}`);
11}
12
13runExample();
14

Obter insígnias de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
badgeIdstringNão
typenumberNão
displayedOnCommentsbooleanNão
limitnumberNão
skipnumberNão

Resposta

Retorna: GetUserBadgesResponse

Exemplo

Exemplo getUserBadges
Copy Copy
1
2async function example() {
3 const tenantId: string = "tenant-01";
4 const userId: string = "user-42";
5 const badgeId: string = "badge-gold";
6 const type: number = 1;
7 const displayedOnComments: boolean = true;
8 const limit: number = 10;
9 const skip: number = 5;
10
11 const fullResult: GetUserBadgesResponse = await getUserBadges(
12 tenantId,
13 userId,
14 badgeId,
15 type,
16 displayedOnComments,
17 limit,
18 skip
19 );
20
21 const minimalResult: GetUserBadgesResponse = await getUserBadges(tenantId);
22}
23example();
24

Atualizar insígnia de usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateUserBadgeParamsUpdateUserBadgeParamsYes

Resposta

Retorna: UpdateUserBadgeResponse

Exemplo

updateUserBadge Exemplo
Copy Copy
1
2async function applyBadge() {
3 const tenantId: string = "acme-corp-tenant";
4 const userId: string = "user-98765";
5
6 const params: UpdateUserBadgeParams = {
7 badgeId: "gold-contributor",
8 // optional field example
9 expiresAt: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
10 };
11
12 const result: UpdateUserBadgeResponse = await updateUserBadge(tenantId, userId, params);
13 console.log(result);
14}
15
16applyBadge();
17

Obter contagem de notificações do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: GetUserNotificationCountResponse1

Exemplo

Exemplo getUserNotificationCount
Copy Copy
1
2async function demoGetUserNotificationCount() {
3 const tenantId: string = "acme-corp-01";
4
5 // Chamada com token SSO opcional
6 const countWithSSO: GetUserNotificationCountResponse1 = await getUserNotificationCount(
7 tenantId,
8 "sso-token-abc123"
9 );
10
11 // Chamada sem token SSO
12 const countWithoutSSO: GetUserNotificationCountResponse1 = await getUserNotificationCount(
13 tenantId
14 );
15
16 console.log(countWithSSO, countWithoutSSO);
17}
18

Obter notificações do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringNão
pageSizenumberNão
afterIdstringNão
includeContextbooleanNão
afterCreatedAtnumberNão
unreadOnlybooleanNão
dmOnlybooleanNão
noDmbooleanNão
includeTranslationsbooleanNão
includeTenantNotificationsbooleanNão
ssostringNão

Resposta

Retorna: GetUserNotificationsResponse

Exemplo

Exemplo getUserNotifications
Copy Copy
1
2async function fetchUserNotifications() {
3 const tenantId: string = "tenant_9f4b2c";
4 const urlId: string = "post_1234";
5 const pageSize: number = 25;
6 const afterId: string = "notif_5678";
7 const includeContext: boolean = true;
8 const unreadOnly: boolean = false;
9 const dmOnly: boolean = false;
10 const includeTranslations: boolean = true;
11
12 const notifications: GetUserNotificationsResponse = await getUserNotifications(
13 tenantId,
14 urlId,
15 pageSize,
16 afterId,
17 includeContext,
18 undefined,
19 unreadOnly,
20 dmOnly,
21 undefined,
22 includeTranslations,
23 undefined,
24 undefined
25 );
26
27 console.log(notifications);
28}
29

Redefinir contagem de notificações do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: ResetUserNotificationCountResponse

Exemplo

Exemplo resetUserNotificationCount
Copy Copy
1
2async function demoResetCount() {
3 const tenantId: string = "acme-corp-tenant";
4 const sso: string = "sso-user-9876";
5
6 // Chamada com parâmetro sso opcional
7 const resultWithSso: ResetUserNotificationCountResponse = await resetUserNotificationCount(tenantId, sso);
8
9 // Chamada sem parâmetro sso opcional
10 const resultWithoutSso: ResetUserNotificationCountResponse = await resetUserNotificationCount(tenantId);
11
12 console.log(resultWithSso, resultWithoutSso);
13}
14

Redefinir notificações do usuário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
ssostringNo

Resposta

Retorna: ResetUserNotificationsResponse1

Exemplo

Exemplo resetUserNotifications
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-001";
4 const afterId: string = "notif-123";
5 const afterCreatedAt: number = 1697049600; // exemplo de timestamp UNIX
6 const unreadOnly: boolean = true;
7 const dmOnly: boolean = false;
8 const noDm: boolean = false;
9 const sso: string = "sso-token-xyz";
10
11 const result: ResetUserNotificationsResponse1 = await resetUserNotifications(
12 tenantId,
13 afterId,
14 afterCreatedAt,
15 unreadOnly,
16 dmOnly,
17 noDm,
18 sso
19 );
20
21 console.log(result);
22})();
23

Atualizar status de assinatura de notificações por comentário do usuário Internal Link

Enable or disable notifications for a specific comment.

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

Resposta

Retorna: UpdateUserNotificationCommentSubscriptionStatusResponse

Exemplo

updateUserNotificationCommentSubscriptionStatus Exemplo
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const notificationId: string = "notif_9876";
4const commentId: string = "comment_abc123";
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum =
6 UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
7const sso: string = "ssoTokenXYZ";
8
9const responseWithSso: UpdateUserNotificationCommentSubscriptionStatusResponse =
10 await updateUserNotificationCommentSubscriptionStatus(
11 tenantId,
12 notificationId,
13 optedInOrOut,
14 commentId,
15 sso
16 );
17
18const responseWithoutSso: UpdateUserNotificationCommentSubscriptionStatusResponse =
19 await updateUserNotificationCommentSubscriptionStatus(
20 tenantId,
21 notificationId,
22 optedInOrOut,
23 commentId
24 );
25

Atualizar status de assinatura de notificações por página do usuário Internal Link

Enable ou desative notificações para uma página. Quando os usuários estão inscritos em uma página, notificações são criadas para novos comentários raiz, e também

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
urlIdstringYes
urlstringYes
pageTitlestringYes
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumYes
ssostringNo

Resposta

Retorna: UpdateUserNotificationPageSubscriptionStatusResponse

Exemplo

Exemplo updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-2024";
4 const urlId: string = "page-5678";
5 const url: string = "https://example.com/articles/typescript-tips";
6 const pageTitle: string = "Top TypeScript Tips";
7 const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum =
8 UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
9 const sso: string = "sso-token-xyz";
10
11 const resultWithSso: UpdateUserNotificationPageSubscriptionStatusResponse = await updateUserNotificationPageSubscriptionStatus(
12 tenantId,
13 urlId,
14 url,
15 pageTitle,
16 subscribedOrUnsubscribed,
17 sso
18 );
19
20 const resultWithoutSso: UpdateUserNotificationPageSubscriptionStatusResponse = await updateUserNotificationPageSubscriptionStatus(
21 tenantId,
22 urlId,
23 url,
24 pageTitle,
25 subscribedOrUnsubscribed
26 );
27})();
28

Atualizar status de notificação do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
notificationIdstringSim
newStatusUpdateUserNotificationStatusNewStatusEnumSim
ssostringNão

Resposta

Retorna: UpdateUserNotificationStatusResponse

Exemplo

Exemplo de updateUserNotificationStatus
Copy Copy
1
2const tenantId: string = "acme-corp";
3const notificationId: string = "notif-20231101-001";
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Dismissed;
5const ssoToken: string = "sso-9f8e7d6c5b4a";
6
7const result: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
8 tenantId,
9 notificationId,
10 newStatus,
11 ssoToken
12);
13

Obter status de presença do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdWSstringSim
userIdsstringSim

Resposta

Retorna: GetUserPresenceStatusesResponse1

Exemplo

getUserPresenceStatuses Exemplo
Copy Copy
1
2async function fetchUserPresences() {
3 const tenantId: string = "tenant_9f8e2d";
4 const urlIdWS: string = "blog.mycompany.com/thread/12345";
5 const userIds: string = "alice,bob,carol";
6
7 const result: GetUserPresenceStatusesResponse1 = await getUserPresenceStatuses(
8 tenantId,
9 urlIdWS,
10 userIds
11 );
12
13 console.log(result);
14}
15

Pesquisar usuários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
usernameStartsWithstringNão
mentionGroupIdsArrayNão
ssostringNão
searchSectionSearchUsersSearchSectionEnumNão

Resposta

Retorna: SearchUsersResponse1

Exemplo

Exemplo de searchUsers
Copy Copy
1
2async function demoSearch(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const usernameStartsWith: string = "john";
6 const mentionGroupIds: string[] = ["groupA", "groupB"];
7 const sso: string = "sso_abc123";
8 const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.Users;
9
10 const response: SearchUsersResponse1 = await searchUsers(
11 tenantId,
12 urlId,
13 usernameStartsWith,
14 mentionGroupIds,
15 sso,
16 searchSection
17 );
18
19 console.log(response);
20}
21
22demoSearch();
23

Obter usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUserResponse1

Exemplo

Exemplo getUser
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_98765";
5 const result: GetUserResponse1 = await getUser(tenantId, userId);
6})();
7

Criar voto Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
directionCreateVoteDirectionEnumSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: CreateVoteResponse

Exemplo

Exemplo createVote
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "comment_987654";
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Upvote;
5const userId: string = "user_7f9a2b";
6
7const voteResult: CreateVoteResponse = await createVote(
8 tenantId,
9 commentId,
10 direction,
11 userId
12);
13

Excluir voto Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
editKeystringNão

Resposta

Retorna: DeleteVoteResponse

Exemplo

Exemplo deleteVote
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-9876";
5 const editKey: string = "edit-key-123";
6
7 const resultWithEdit: DeleteVoteResponse = await deleteVote(tenantId, commentId, editKey);
8 const resultWithoutEdit: DeleteVoteResponse = await deleteVote(tenantId, commentId);
9})();
10

Obter votos Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetVotesResponse1

Exemplo

Exemplo getVotes
Copy Copy
1
2async function fetchVotes(): Promise<void> {
3 const tenantId: string = "acme-corp-01";
4 const urlId: string = "article-2024-05-15";
5
6 const response: GetVotesResponse1 = await getVotes(tenantId, urlId);
7
8 // Exemplo de acesso a um campo opcional na resposta
9 const firstVoteId: string | undefined = response?.votes?.[0]?.id;
10}
11

Obter votos do usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: GetVotesForUserResponse1

Exemplo

Exemplo getVotesForUser
Copy Copy
1
2async function demo() {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "post-9f8b7c";
5 const userId: string = "user-42";
6 const anonUserId: string = "anon-123";
7
8 const votesRequiredOnly: GetVotesForUserResponse1 = await getVotesForUser(tenantId, urlId);
9 const votesWithUserId: GetVotesForUserResponse1 = await getVotesForUser(tenantId, urlId, userId);
10 const votesWithAnonId: GetVotesForUserResponse1 = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
11}
12demo();
13

Precisa de ajuda?

Se você encontrar algum problema ou tiver dúvidas sobre o JavaScript/TypeScript SDK, por favor:

Contribuindo

Contribuições são bem-vindas! Por favor, visite o repositório no GitHub para diretrizes de contribuição.