FastComments.com

FastComments 자바스크립트/타입스크립트 SDK


FastComments의 공식 JavaScript/TypeScript SDK입니다.

Node.js 또는 브라우저에서 댓글, 사용자, SSO 및 중재를 관리합니다.

저장소

GitHub에서 보기


설치 Internal Link

npm

npm install fastcomments-sdk

API 문서 Internal Link


전체 API 참조: docs/api/README.md

브라우저 vs 서버 호환성 Internal Link

이 SDK는 최적의 호환성을 보장하고 런타임 오류를 방지하기 위해 이중 진입점을 사용합니다:

  • fastcomments-sdk/browser - 네이티브 fetch를 사용하는 브라우저 안전 버전
  • fastcomments-sdk/server - SSO를 지원하는 전체 Node.js 버전
  • fastcomments-sdk (기본) - 타입 전용, 어디서나 안전하게 임포트 가능

공개 API vs 보안 API Internal Link

The SDK는 세 가지 주요 API 클래스를 제공합니다:

  • DefaultApi - 인증을 위해 API 키가 필요한 보안 엔드포인트입니다. 서버 측 작업에 사용하세요.
  • PublicApi - API 키 없이 접근 가능한 공개 엔드포인트입니다. 브라우저/모바일 기기 등에서 직접 호출할 수 있습니다.
  • HiddenApi - 고급 사용 사례를 위한 내부/관리자용 엔드포인트입니다.

예시: Public API 사용 (브라우저에서 안전하게 사용)

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

const publicApi = new PublicApi();

// 페이지의 댓글을 가져옵니다 (API 키 필요 없음)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

예시: Default API 사용 (서버 측 전용)

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

const config = new Configuration({
  apiKey: 'your-api-key' // 비밀로 유지하세요!
});
const defaultApi = new DefaultApi(config);

// 전체 관리자 권한으로 댓글을 가져옵니다
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO(싱글 사인온) 통합 Internal Link

FastComments는 기존 사용자 인증 시스템과 통합하기 위해 SSO를 지원합니다. SSO 기능은 Node.js의 crypto 기능을 필요로 하기 때문에 서버 내보내기에서만 사용할 수 있습니다.

간단한 SSO (서버 전용)

간단한 SSO는 서버 측에서 생성되어 클라이언트로 전송되어야 합니다:

// 서버 측 코드 (Node.js/백엔드)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Create simple SSO using the built-in helper  
const userData = {
  username: 'john_doe',
  email: 'john@example.com',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg'
};

const sso = FastCommentsSSO.createSimple(userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoToken = sso.createToken();

// ssoToken을 클라이언트 측 코드로 전송
// 클라이언트 측 코드는 이 토큰을 브라우저 SDK와 함께 사용할 수 있음

보안 SSO (서버 측, 권장)

보안 SSO는 서버 측에 구현되어야 하며 더 나은 보안을 제공합니다:

// 서버 측 코드 (Node.js/백엔드)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Create secure SSO using the built-in helper
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

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

const ssoConfig = sso.prepareToSend();

// 서버에서 API 호출과 함께 사용
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// 또는 브라우저 사용을 위해 ssoConfig를 클라이언트로 전송

브라우저에서 SSO 사용 (서버 생성 토큰 포함)

// 클라이언트 측 코드 (브라우저)
import { PublicApi } from 'fastcomments-sdk/browser';

// 서버 엔드포인트에서 SSO 토큰 가져오기
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 // 서버에서 생성된 SSO 토큰 사용
});

댓글 생성과 함께하는 SSO

// 서버 측: SSO 및 댓글 생성
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)
});

일반적인 사용 사례 Internal Link

페이지의 댓글 가져오기

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

댓글 생성

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

댓글에 투표하기

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1은 찬성(업보트), -1은 반대(다운보트)
  }
});

사용자 관리 (API 키 필요)

// 사용자 검색 (DefaultApi 필요)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

실시간 이벤트 (실시간 업데이트) Internal Link

댓글, 투표 및 기타 활동에 대한 실시간 업데이트를 받기 위해 라이브 이벤트를 구독하세요.

페이지 수준 이벤트

특정 페이지의 라이브 이벤트(댓글, 투표 등)를 수신합니다:

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

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

// 특정 페이지의 라이브 이벤트를 구독합니다
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (getComments 응답에서 가져옵니다)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // 새 댓글로 UI를 업데이트합니다
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // UI의 투표 수를 업데이트합니다
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // 이벤트가 처리되었으면 true를 반환합니다
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// 완료되면 구독을 닫습니다
subscription.close();

사용자 이벤트 구독

사용자별 이벤트(알림, 멘션 등)를 수신합니다:

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

const userConfig = {
  userIdWS: 'user-session-id', // getComments 응답에서 가져옵니다
};

// 사용자의 개인 피드를 구독합니다
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // 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');
  }
);

// 완료되면 닫습니다
userSubscription.close();

userIdWS 가져오기

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

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

// 응답에서 userIdWS를 추출합니다
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // 이제 라이브 이벤트를 구독할 수 있습니다
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

브로드캐스트 ID Internal Link

일부 API 호출에서는 broadcastId를 전달해야 한다는 것을 보게 될 것입니다. 이벤트를 수신하면 이 ID가 반환되므로, 클라이언트에서 낙관적으로 변경을 적용하려는 경우(가장 좋은 경험을 제공하므로 아마도 그렇게 하게 될 것입니다) 해당 이벤트를 무시해야 할지 알 수 있습니다. 여기에는 UUID를 전달하세요. 이 ID는 브라우저 세션에서 두 번 발생하지 않을 정도로 충분히 고유해야 합니다.

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

에러 처리 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);
  }
}

집계 Internal Link

그룹화(groupBy가 제공된 경우)하고 여러 연산을 적용하여 문서를 집계합니다. 다양한 연산(예: sum, countDistinct, avg 등)을 지원합니다.

매개변수

이름형식필수설명
tenantIdstring
aggregationRequestAggregationRequest
parentTenantIdstring아니요
includeStatsboolean아니요

응답

반환: Aggregate200Response

예제

aggregate 예제
Copy Copy
1
2const tenantId: string = 'tenant_78a9';
3const parentTenantId: string = 'parent_tenant_01';
4const includeStats: boolean = true;
5const aggregationRequest: AggregationRequest = {
6 operation: { type: 'COUNT' },
7 groupBy: ['pageUrl'],
8 predicate: { field: 'status', operator: 'EQUALS', value: 'approved' },
9 sort: [{ field: 'count', direction: 'DESC' }],
10 limit: 25
11};
12const result: Aggregate200Response = await aggregate(tenantId, aggregationRequest, parentTenantId, includeStats);
13

감사 로그 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
limitnumber아니오
skipnumber아니오
orderSORTDIR아니오
afternumber아니오
beforenumber아니오

응답

반환: GetAuditLogs200Response

예제

getAuditLogs 예제
Copy Copy
1
2const tenantId: string = 'tenant_5f8d7c3a';
3const limit: number = 100;
4const skip: number = 0;
5const order: SORTDIR = 'DESC' as SORTDIR;
6const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // 일주일 전
7const before: number = Date.now();
8const result: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after, before);
9

댓글에서 차단 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParams
ssostring아니요

응답

반환: BlockFromCommentPublic200Response

예제

blockFromCommentPublic 예제
Copy Copy
1
2const tenantId: string = 'tenant_6b3f9a2d';
3const commentId: string = 'cmt_8f4b12a9';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'Repeated promotional links',
6 durationMinutes: 60 * 24 * 30, // 30일
7 escalateToModeration: true
8};
9const sso: string = 'sso_token_3fH7kLw';
10
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

댓글 차단 해제 (공개) Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParams
ssostring아니오

응답

반환: UnBlockCommentPublic200Response

예제

unBlockCommentPublic 예제
Copy Copy
1
2const tenantId: string = "tenant-42-production";
3const commentId: string = "comment_7f3b2a9d";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "flag reviewed and determined not to violate policy",
6 restoredBy: "moderator_jane",
7 restoredAt: new Date().toISOString()
8};
9const sso: string = "sso_token_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
10const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
11

차단된 댓글 확인 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdsstring
ssostring아니오

응답

반환: CheckedCommentsForBlocked200Response

예제

checkedCommentsForBlocked 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_fa3b2c9e';
4 const commentIds: string = 'cmt_112233,cmt_445566';
5 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0Njc4IiwidGVuYW50IjoidGVuYW50X2ZhM2IifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6 const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, sso);
7 const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
8 console.log(resultWithSSO, resultWithoutSSO);
9})();
10

댓글에서 사용자 차단 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
blockFromCommentParamsBlockFromCommentParams
userIdstring아니오
anonUserIdstring아니오

응답

반환: BlockFromCommentPublic200Response

예제

blockUserFromComment 예제
Copy Copy
1
2const tenantId: string = "tenant_7f3b4c";
3const id: string = "comment_9a8b7c6d";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated spam links",
6 durationHours: 168,
7 notifyModerators: true
8};
9const userId: string | undefined = "user_42";
10const anonUserId: string | undefined = undefined;
11const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
12

공개 댓글 생성 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdstring
broadcastIdstring
commentDataCommentData
sessionIdstring아니오
ssostring아니오

응답

반환: CreateCommentPublic200Response

예제

createCommentPublic 예제
Copy Copy
1
2const tenantId: string = 'tenant_9a1b2c';
3const urlId: string = 'https://www.news-site.com/article/67890';
4const broadcastId: string = 'broadcast_2026-06-15-01';
5const sessionId: string | undefined = 'sess_abc123xyz';
6const sso: string | undefined = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiam9yZGFuIiwiaWF0IjoxNjI0MDAwMDB9.signature';
7const commentData: CommentData = {
8 content: 'Insightful piece — I appreciated the data-backed points and sources cited.',
9 authorDisplayName: 'Jordan Miles'
10} as CommentData;
11const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
12

댓글 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
contextUserIdstring아니오
isLiveboolean아니오

응답

반환: DeleteComment200Response

예제

deleteComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_84a9f2';
3const id: string = 'comment_5f3b21';
4const contextUserId: string | undefined = 'user_1122';
5const isLive: boolean | undefined = true;
6
7async function run(): Promise<void> {
8 const result: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
9 console.log(result);
10}
11
12run();
13

공개 댓글 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
commentIdstring
broadcastIdstring
editKeystring아니요
ssostring아니요

응답

반환: DeleteCommentPublic200Response

예제

deleteCommentPublic 예제
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const commentId: string = 'c0mment-9f8b7a6';
4const broadcastId: string = 'site_homepage_2026-06-15';
5const editKey: string = 'ek_3b7a1f59-4d2c-11eb-8dcd-0242ac130003';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
9

댓글 투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdstring
voteIdstring
urlIdstring
broadcastIdstring
editKeystring아니요
ssostring아니요

응답

반환: DeleteCommentVote200Response

예제

deleteCommentVote 예제
Copy Copy
1
2const tenantId: string = 'tenant_8f3a2b7c';
3const commentId: string = 'cmt-5a1f3d92';
4const voteId: string = 'vote-3b9c7e1a';
5const urlId: string = 'articles/2026/06/typescript-best-practices';
6const broadcastId: string = 'broadcast-77f4d2';
7const editKey: string = 'edk-9b2f4c';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
9const result: DeleteCommentVote200Response = await deleteCommentVote(tenantId, commentId, voteId, urlId, broadcastId, editKey, sso);
10

댓글 신고 Internal Link


매개변수

이름형식필수설명
tenantIdstring
idstring
userIdstring아니요
anonUserIdstring아니요

응답

반환: FlagComment200Response

예제

flagComment 예제
Copy Copy
1
2const tenantId: string = "tenant_4f21c9a";
3const commentId: string = "cmt_7a12b3e9";
4const userId: string = "user_82bd123";
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

댓글 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetComment200Response

예제

getComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_6f1a2b';
3const commentId: string = 'cmt_4d9e8f';
4const includeReplies: boolean | undefined = true; // 선택적 매개변수 예시 (getComment에 전달되지 않음)
5const result: GetComment200Response = await getComment(tenantId, commentId);
6console.log('Fetched comment for tenant:', tenantId, 'comment id:', commentId);
7console.log('API response received:', result);
8

댓글들 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
pagenumber아니오
limitnumber아니오
skipnumber아니오
asTreeboolean아니오
skipChildrennumber아니오
limitChildrennumber아니오
maxTreeDepthnumber아니오
urlIdstring아니오
userIdstring아니오
anonUserIdstring아니오
contextUserIdstring아니오
hashTagstring아니오
parentIdstring아니오
directionSortDirections아니오
fromDatenumber아니오
toDatenumber아니오

응답

반환: GetComments200Response

Example

getComments 예제
Copy Copy
1
2const tenantId: string = "tenant_9a12b3";
3const response: GetComments200Response = await getComments(tenantId, 1, 20, 0, true, 0, 3, 2, "https://mysite.com/posts/678", undefined, undefined, undefined, undefined, "parent_987", undefined, 1716873600000, 1719552000000);
4

공개 댓글 조회 Internal Link

req tenantId urlId

매개변수

이름타입필수설명
tenantIdstring
urlIdstring
pagenumber아니요
directionSortDirections아니요
ssostring아니요
skipnumber아니요
skipChildrennumber아니요
limitnumber아니요
limitChildrennumber아니요
countChildrenboolean아니요
fetchPageForCommentIdstring아니요
includeConfigboolean아니요
countAllboolean아니요
includei10nboolean아니요
localestring아니요
modulesstring아니요
isCrawlerboolean아니요
includeNotificationCountboolean아니요
asTreeboolean아니요
maxTreeDepthnumber아니요
useFullTranslationIdsboolean아니요
parentIdstring아니요
searchTextstring아니요
hashTagsArray아니요
userIdstring아니요
customConfigStrstring아니요
afterCommentIdstring아니요
beforeCommentIdstring아니요

응답

반환: GetCommentsPublic200Response

예제

getCommentsPublic 예제
Copy Copy
1
2const tenantId: string = 'acme-news';
3const urlId: string = '/articles/2026/fastcomments-update';
4const page: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const countChildren: boolean = true;
8const includeConfig: boolean = true;
9const result: GetCommentsPublic200Response = await getCommentsPublic(
10 tenantId,
11 urlId,
12 page,
13 undefined,
14 undefined,
15 skip,
16 undefined,
17 limit,
18 undefined,
19 countChildren,
20 undefined,
21 includeConfig
22);
23

댓글 텍스트 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
commentIdstring
editKeystring아니요
ssostring아니요

응답

반환: GetCommentText200Response

예제

getCommentText 예제
Copy Copy
1
2const tenantId: string = 'tenant_42b7e9';
3const commentId: string = 'cmt_9f3a2b';
4const editKey: string = 'edk_3f1b7c9d';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

댓글 투표 사용자명 조회 Internal Link


매개변수

이름형식필수설명
tenantIdstring
commentIdstring
dirnumber
ssostring아니오

응답

반환: GetCommentVoteUserNames200Response

예제

getCommentVoteUserNames 예제
Copy Copy
1
2const tenantId: string = "tenant_67890";
3const commentId: string = "comment_abc123";
4const dir: number = 1;
5const ssoToken: string = "sso-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
6
7const responseWithoutSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
8const responseWithSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9

댓글 잠그기 Internal Link

매개변수

이름형식필수설명
tenantIdstring
commentIdstring
broadcastIdstring
ssostring아니요

응답

반환: LockComment200Response

예제

lockComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_42f6c1';
3const commentId: string = 'cmt-9a8b7c';
4const broadcastId: string = 'brd_2026_06_15';
5const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTY1MDAwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6
7const lockedWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
8const lockedWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
9

댓글 고정 Internal Link

매개변수

이름형식필수설명
tenantIdstring
commentIdstring
broadcastIdstring
ssostring아니요

응답

반환: PinComment200Response

예제

pinComment 예제
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-72";
3const commentId: string = "cmt_8f3a2b4c9d";
4const broadcastId: string = "live_2026-06-15_21z";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.payload.signature";
6
7const responseNoSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId);
8const responseWithSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, ssoToken);
9

댓글 저장 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createCommentParamsCreateCommentParams
isLiveboolean아니오
doSpamCheckboolean아니오
sendEmailsboolean아니오
populateNotificationsboolean아니오

응답

반환: SaveComment200Response

예제

saveComment 예제
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-42";
3const createCommentParams: CreateCommentParams = {
4 threadId: "article-2026-06-0142",
5 content: "Great write-up — I followed the migration steps and everything worked as described.",
6 userId: "u_9c72b",
7 userName: "Ava R.",
8 userAvatarUrl: "https://cdn.example.com/avatars/u_9c72b.png",
9 metadata: { platform: "web", locale: "en-US" }
10};
11const isLive: boolean = true;
12const doSpamCheck: boolean = true;
13const sendEmails: boolean = false;
14const populateNotifications: boolean = true;
15const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
16

댓글 일괄 저장 Internal Link


매개변수

이름형식필수설명
tenantIdstring
createCommentParamsArray
isLiveboolean아니요
doSpamCheckboolean아니요
sendEmailsboolean아니요
populateNotificationsboolean아니요

응답

반환: Array<SaveComment200Response

예제

saveCommentsBulk 예제
Copy Copy
1
2const tenantId: string = "tenant_42a1b7";
3const mentions: CommentUserMentionInfo[] = [{ userId: "user_2b9", displayName: "Alex Chen" }];
4const hashtags: CommentUserHashTagInfo[] = [{ tag: "performance" }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: "Thanks for the detailed article — the alternative approach worked for me.",
8 authorId: "user_8f3c2",
9 authorName: "Maya Patel",
10 authorEmail: "maya.patel@example.com",
11 url: "/articles/optimizing-ts-performance",
12 createdAt: new Date().toISOString(),
13 mentions,
14 hashtags
15 }
16];
17const isLive: boolean = true;
18const doSpamCheck: boolean = false;
19const sendEmails: boolean = true;
20const populateNotifications: boolean = true;
21const result: Array<SaveComment200Response> = await saveCommentsBulk(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
22

댓글 텍스트 설정 Internal Link


매개변수

이름유형필수설명
tenantIdstring
commentIdstring
broadcastIdstring
commentTextUpdateRequestCommentTextUpdateRequest
editKeystring아니오
ssostring아니오

응답

반환: SetCommentText200Response

예제

setCommentText 예제
Copy Copy
1
2const tenantId: string = 'tenant_4f9a2b'
3const commentId: string = 'cmt-8421'
4const broadcastId: string = 'brd-2026-06-15'
5const commentTextUpdateRequest: CommentTextUpdateRequest = { text: 'Updated comment text to clarify the schedule.', mentions: [], hashtags: [] }
6const editKey: string = 'editkey_9b12'
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso.signature'
8const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso)
9

댓글에서 사용자 차단 해제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
unBlockFromCommentParamsUnBlockFromCommentParams
userIdstring아니오
anonUserIdstring아니오

응답

반환: UnBlockCommentPublic200Response

예제

unBlockUserFromComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_7b9c2a';
3const id: string = 'comment_4f8e1d';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'User submitted appeal and provided additional context',
6 effectiveAt: new Date().toISOString()
7};
8const userId: string = 'user_92a3f6';
9const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId);
10

댓글 신고 취소 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
userIdstring아니오
anonUserIdstring아니오

응답

반환: FlagComment200Response

예제

unFlagComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2a1f';
3const commentId: string = 'cmt_20250614_01';
4const userId: string = 'user_47d2b9';
5const result: FlagComment200Response = await unFlagComment(tenantId, commentId, userId);
6

댓글 잠금 해제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
commentIdstring
broadcastIdstring
ssostring아니요

응답

반환: LockComment200Response

예제

unLockComment 예제
Copy Copy
1
2const tenantId: string = "tenant-8f3b2c4a";
3const commentId: string = "cmt_92a7f3e6";
4const broadcastId: string = "brd_1b4c9d20";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
7

댓글 고정 해제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
commentIdstring
broadcastIdstring
ssostring아니오

응답

반환: PinComment200Response

예제

unPinComment 예제
Copy Copy
1
2const tenantId: string = "tenant_9f3b2c1a";
3const commentId: string = "comment_4d2e8a7f";
4const broadcastId: string = "broadcast_live_2026_06_15_18";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.invalid-signature";
6const response: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
7console.log(response);
8

댓글 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updatableCommentParamsUpdatableCommentParams
contextUserIdstring아니요
doSpamCheckboolean아니요
isLiveboolean아니요

응답

반환: FlagCommentPublic200Response

예제

updateComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f3c1b2a';
3const commentId: string = 'cmt_8d9f2a4b';
4const updatableCommentParams: UpdatableCommentParams = {
5 body: 'Updating this comment to clarify the feature behavior and include a timestamp.',
6 metadata: { category: 'support', editedReason: 'clarify instructions' },
7 visible: true
8};
9const contextUserId: string = 'user_42';
10const doSpamCheck: boolean = true;
11const result: FlagCommentPublic200Response = await updateComment(tenantId, commentId, updatableCommentParams, contextUserId, doSpamCheck);
12

댓글에 투표 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdstring
urlIdstring
broadcastIdstring
voteBodyParamsVoteBodyParams
sessionIdstring아니요
ssostring아니요

응답

반환: VoteComment200Response

예제

voteComment 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2e';
3const commentId: string = '5a1d3f9b-2c4e-4a2b-bf7b-1234567890ab';
4const urlId: string = 'articles/2026/06/15/typescript-api-patterns';
5const broadcastId: string = 'broadcast-20260615-01';
6const voteBodyParams: VoteBodyParams = { vote: 'up' };
7const sessionId: string = 'sess_9d2f3b45';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY5NzE2MDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
9
10const response: VoteComment200Response = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBodyParams,
16 sessionId,
17 sso
18);
19

사용자별 댓글 조회 Internal Link

매개변수

이름유형필수설명
userIdstring아니요
directionSortDirections아니요
repliesToUserIdstring아니요
pagenumber아니요
includei10nboolean아니요
localestring아니요
isCrawlerboolean아니요

응답

반환: GetCommentsForUser200Response

예제

getCommentsForUser 예제
Copy Copy
1
2const userId: string = "550e8400-e29b-41d4-a716-446655440000";
3const page: number = 2;
4const includei10n: boolean = true;
5const locale: string = "en-US";
6const isCrawler: boolean = false;
7
8const comments: GetCommentsForUser200Response = await getCommentsForUser(
9 userId,
10 undefined, // direction omitted
11 undefined, // repliesToUserId omitted
12 page,
13 includei10n,
14 locale,
15 isCrawler
16);
17
18console.log(comments);
19

도메인 설정 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstring
addDomainConfigParamsAddDomainConfigParams

응답

반환: AddDomainConfig200Response


도메인 설정 삭제 Internal Link


매개변수

이름형식필수설명
tenantIdstring
domainstring

응답

반환: DeleteDomainConfig200Response


도메인 설정 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
domainstring

응답

반환: GetDomainConfig200Response


도메인 설정들 조회 Internal Link


매개변수

이름형식필수설명
tenantIdstring

응답

반환: GetDomainConfigs200Response


도메인 설정 부분 수정 Internal Link


매개변수

이름형식필수설명
tenantIdstring
domainToUpdatestring
patchDomainConfigParamsPatchDomainConfigParams

응답

반환: GetDomainConfig200Response


도메인 설정 교체 Internal Link

매개변수

이름유형필수설명
tenantIdstring
domainToUpdatestring
updateDomainConfigParamsUpdateDomainConfigParams

응답

반환: GetDomainConfig200Response


이메일 템플릿 생성 Internal Link

매개변수

이름타입필수설명
tenantIdstring
createEmailTemplateBodyCreateEmailTemplateBody

응답

반환: CreateEmailTemplate200Response

예제

createEmailTemplate 예제
Copy Copy
1
2const tenantId: string = "tenant_4f2b1c9e";
3const createEmailTemplateBody: CreateEmailTemplateBody = {
4 name: "New Comment Notification",
5 subject: "Someone replied to your discussion",
6 fromName: "Community Team",
7 fromAddress: "no-reply@community.example.com",
8 htmlBody: "<p>\{{comment.author}} replied: \{{comment.text}}</p>",
9 plaintextBody: "\{{comment.author}} replied: \{{comment.text}}",
10 previewText: "A new reply on a discussion you follow",
11 isDefault: false // 선택적 매개변수 사용을 보여주는 플래그
12};
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

이메일 템플릿 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deleteEmailTemplate 예제
Copy Copy
1
2const tenantId: string = "tenant_9c4f1b2a";
3const id: string = "emailtmpl_4d2b9a5e";
4const requestorNote: string | undefined = undefined; // 선택적 메타데이터 (함수에 필요하지 않음)
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, id);
6

이메일 템플릿 렌더 오류 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes
errorIdstringYes

응답

반환: FlagCommentPublic200Response

예제

deleteEmailTemplateRenderError 예제
Copy Copy
1
2const tenantId: string = 'tenant-72f3b4';
3const templateId: string = 'email_template-9c3a1';
4let providedErrorId: string | undefined = undefined; // 선택적 값, 다른 곳에서 설정될 수 있음
5const errorId: string = providedErrorId ?? 'render_err-5d2f7';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
7

이메일 템플릿 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetEmailTemplate200Response

예제

getEmailTemplate 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c';
3const templateId: string = 'welcome-email-2024';
4const includeDrafts: boolean | undefined = undefined;
5const emailTemplate: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
6

이메일 템플릿 정의 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring

응답

반환: GetEmailTemplateDefinitions200Response

예제

getEmailTemplateDefinitions 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_001';
4 const options: { includeDrafts?: boolean } = { includeDrafts: true }; // 선택적 매개변수 예시
5 const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId, options);
6 console.log(templates);
7})();
8

이메일 템플릿 렌더 오류 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
skipnumber아니오

응답

반환: GetEmailTemplateRenderErrors200Response

예제

getEmailTemplateRenderErrors 예제
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const id: string = 'tmpl_7f9a2b4c';
4const skip: number = 20;
5
6const errorsWithSkip: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7const errorsFirstPage: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id);
8

이메일 템플릿들 조회 Internal Link


매개변수

이름형식필수설명
tenantIdstring
skipnumber아니오

응답

반환: GetEmailTemplates200Response

예제

getEmailTemplates 예제
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-marketing-tenant-001";
4 const templatesDefault: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const templatesPaged: GetEmailTemplates200Response = await getEmailTemplates(tenantId, 25);
6 console.log(templatesDefault, templatesPaged);
7}
8run();
9

이메일 템플릿 렌더링 Internal Link


매개변수

이름타입필수설명
tenantIdstring
renderEmailTemplateBodyRenderEmailTemplateBody
localestring아니오

응답

반환: RenderEmailTemplate200Response

예제

renderEmailTemplate 예제
Copy Copy
1
2const tenantId: string = '7f7e2b90-3a2b-4d9b-9df1-5f0b6b2e8a1c';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'welcome_email',
5 recipient: { email: 'jordan.smith@acme.co', name: 'Jordan Smith' },
6 variables: { siteName: 'Acme Forum', verificationUrl: 'https://acme.forum/verify?code=abc123' }
7};
8const locale: string = 'en-US';
9const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
10

이메일 템플릿 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updateEmailTemplateBodyUpdateEmailTemplateBody

응답

반환: FlagCommentPublic200Response

예제

updateEmailTemplate 예제
Copy Copy
1
2const tenantId: string = 'acme-corp-123';
3const id: string = 'template-789';
4const locale: string | undefined = 'en-US';
5const updateEmailTemplateBody: UpdateEmailTemplateBody = {
6 subject: 'Welcome to Acme — Get started',
7 bodyHtml: '<p>Hi \{{firstName}}, welcome to Acme. Start by visiting your dashboard.</p>',
8 fromName: 'Acme Support',
9 fromEmail: 'support@acme.com',
10 enabled: true,
11 ...(locale ? { locale } : {})
12};
13const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
14

이벤트 로그 조회 Internal Link

req tenantId urlId userIdWS

매개변수

이름형식필수설명
tenantIdstring
urlIdstring
userIdWSstring
startTimenumber
endTimenumber아니오

응답

반환: GetEventLog200Response

예제

getEventLog 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2b';
3const urlId: string = 'news/2026/06/fastcomments-release';
4const userIdWS: string = 'ws_user_48291';
5const startTime: number = Date.now() - 86_400_000;
6const endTime: number = Date.now();
7const result: GetEventLog200Response = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
8

전체 이벤트 로그 조회 Internal Link

req tenantId urlId userIdWS

매개변수

이름형식필수설명
tenantIdstring
urlIdstring
userIdWSstring
startTimenumber
endTimenumber아니요

응답

반환: GetEventLog200Response

예제

getGlobalEventLog 예제
Copy Copy
1
2const tenantId: string = "tenant_639b7f12";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/important-update-987";
4const userIdWS: string = "user_ws_42b7";
5const startTime: number = new Date("2026-06-14T00:00:00Z").getTime();
6const endTime: number = Date.now();
7
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

피드 게시물 생성 Internal Link

매개변수

이름타입필수설명
tenantIdstring
createFeedPostParamsCreateFeedPostParams
broadcastIdstring아니오
isLiveboolean아니오
doSpamCheckboolean아니오
skipDupCheckboolean아니오

응답

반환: CreateFeedPost200Response

예제

createFeedPost 예제
Copy Copy
1
2const tenantId: string = 'tenant_4f2b1c';
3const createFeedPostParams: CreateFeedPostParams = {
4 content: 'Launching our summer collection today — check it out!',
5 authorId: 'user_879',
6 media: [
7 {
8 type: 'image',
9 assets: [
10 { url: 'https://cdn.myshop.com/uploads/summer-look.jpg', width: 1200, height: 800 } as FeedPostMediaItemAsset
11 ]
12 } as FeedPostMediaItem
13 ],
14 links: [
15 { url: 'https://myshop.com/new-arrival', title: 'Summer Collection' } as FeedPostLink
16 ],
17 allowComments: true
18};
19const broadcastId: string = 'broadcast-2026-06-15-001';
20const isLive: boolean = false;
21const doSpamCheck: boolean = true;
22const skipDupCheck: boolean = false;
23const response: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
24

공개 피드 게시물 생성 Internal Link


Parameters

이름타입필수설명
tenantIdstring
createFeedPostParamsCreateFeedPostParams
broadcastIdstring아니요
ssostring아니요

응답

반환: CreateFeedPostPublic200Response

예제

createFeedPostPublic 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f8b7c";
4 const media: FeedPostMediaItem[] = [{ type: "image", assets: [{ url: "https://cdn.example.com/roadmap.jpg", mimeType: "image/jpeg" }] }];
5 const links: FeedPostLink[] = [{ url: "https://company.example.com/roadmap", title: "Full roadmap" }];
6 const createFeedPostParams: CreateFeedPostParams = {
7 title: "Weekly Product Roadmap Update",
8 body: "This week we shipped enhancements to search relevance and fixed top customer bugs.",
9 authorId: "user_8321",
10 media,
11 links,
12 visibility: "public"
13 };
14 const broadcastId: string = "broadcast_2026_06_15";
15 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload";
16 const response: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
17 console.log(response);
18})();
19

공개 피드 게시물 삭제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
postIdstring
broadcastIdstring아니오
ssostring아니오

응답

반환: DeleteFeedPostPublic200Response

예제

deleteFeedPostPublic 예제
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const postId: string = 'post_8f3d2a7c';
4const broadcastId: string = 'broadcast_2026-06-15_01';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6const response: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
7

피드 게시물 조회 Internal Link

req tenantId afterId

매개변수

NameTypeRequiredDescription
tenantIdstring
afterIdstring아니오
limitnumber아니오
tagsArray아니오

응답

반환: GetFeedPosts200Response

예제

getFeedPosts 예제
Copy Copy
1
2const tenantId: string = "tenant_74321";
3const afterId: string = "post_20250610_9b2f3";
4const limit: number = 25;
5const tags: Array<string> = ["product-updates", "announcements"];
6
7const response: GetFeedPosts200Response = await getFeedPosts(tenantId, afterId, limit, tags);
8

공개 피드 게시물 조회 Internal Link

req tenantId afterId

매개변수

이름유형필수설명
tenantIdstring
afterIdstring아니요
limitnumber아니요
tagsArray아니요
ssostring아니요
isCrawlerboolean아니요
includeUserInfoboolean아니요

응답

반환: GetFeedPostsPublic200Response

예제

getFeedPostsPublic 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_01';
4 const afterId: string = 'post_20250610_842';
5 const limit: number = 25;
6 const tags: string[] = ['news', 'technology'];
7 const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1Ni';
8 const isCrawler: boolean = false;
9 const includeUserInfo: boolean = true;
10
11 const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(
12 tenantId,
13 afterId,
14 limit,
15 tags,
16 sso,
17 isCrawler,
18 includeUserInfo
19 );
20
21 console.log(response);
22})();
23

피드 게시물 통계 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
postIdsArray
ssostring아니오

응답

반환: GetFeedPostsStats200Response

예제

getFeedPostsStats 예제
Copy Copy
1
2const tenantId: string = "tenant_98765";
3const postIds: string[] = ["post_a1b2c3", "post_d4e5f6"];
4const ssoToken: string = "sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
5
6const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
7const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, ssoToken);
8

공개 사용자 리액트 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
postIdsArray아니요
ssostring아니요

응답

반환: GetUserReactsPublic200Response

예제

getUserReactsPublic 예제
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-4f2b9c';
3const postIds: Array<string> = ['post_7a1f9e', 'post_2b3c88'];
4const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTYwOTQ0MDAwMH0.signature';
5
6const response: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
7

공개 피드 게시물에 리액트 Internal Link

매개변수

이름타입필수설명
tenantIdstring
postIdstring
reactBodyParamsReactBodyParams
isUndoboolean아니요
broadcastIdstring아니요
ssostring아니요

응답

반환: ReactFeedPostPublic200Response

예제

reactFeedPostPublic 예제
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const postId: string = 'feedpost_78901';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast_2026_06_15_01';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8
9const response: ReactFeedPostPublic200Response = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 isUndo,
14 broadcastId,
15 sso
16);
17

피드 게시물 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
feedPostFeedPost

응답

반환: FlagCommentPublic200Response

예제

updateFeedPost 예제
Copy Copy
1
2const tenantId: string = "tenant_72f3b4c9";
3const id: string = "post_ba4f6e18-2d3c-4b7a-91f2-8c0e3a6b5d4f";
4
5const feedPost: FeedPost = {
6 title: "June feature rollout",
7 body: "Announcing performance improvements and moderation updates available to all sites.",
8 authorName: "Platform Team",
9 mediaItems: [
10 {
11 type: "image",
12 caption: "Release banner",
13 asset: { url: "https://cdn.fastcomments.com/assets/june-banner.jpg", mimeType: "image/jpeg", width: 1200, height: 600 }
14 }
15 ],
16 links: [{ title: "Release notes", url: "https://docs.fastcomments.com/releases/june-2026" }]
17} as FeedPost;
18
19const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
20

공개 피드 게시물 업데이트 Internal Link


매개변수

이름형식필수설명
tenantIdstring
postIdstring
updateFeedPostParamsUpdateFeedPostParams
broadcastIdstring아니오
ssostring아니오

응답

반환: CreateFeedPostPublic200Response

예제

updateFeedPostPublic 예제
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const postId: string = 'post_20260615_001';
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: 'Weekly Update: Product Launch',
6 content: 'We shipped the 2.0 release today — highlights and links below.',
7 media: [{ url: 'https://cdn.acme.com/releases/launch.jpg', type: 'image' }],
8 tags: ['release', 'product'],
9 isPublic: true
10};
11const broadcastId: string = 'broadcast_live_42';
12const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
13const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
14

공개 댓글 신고 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdstring
isFlaggedboolean
ssostring아니오

응답

반환: FlagCommentPublic200Response

예제

flagCommentPublic 예제
Copy Copy
1
2const tenantId: string = "tenant_4f1b2a9c";
3const commentId: string = "comment_8d3e6f12";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

대형 GIF 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
largeInternalURLSanitizedstring

응답

반환: GetGifLarge200Response

예제

getGifLarge 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/07d3f6_large.gif";
4const preferWebP: boolean | undefined = true; // 선택적 선호
5const urlToUse: string = preferWebP ? largeInternalURLSanitized.replace(".gif", ".webp") : largeInternalURLSanitized;
6const response: GetGifLarge200Response = await getGifLarge(tenantId, urlToUse);
7

GIF 검색 Internal Link

매개변수

이름유형필수설명
tenantIdstring
searchstring
localestring아니오
ratingstring아니오
pagenumber아니오

응답

반환: GetGifsSearch200Response

예제

getGifsSearch 예제
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const search: string = "cat playing piano";
4const locale: string = "en-US";
5const rating: string = "pg";
6const page: number = 1;
7const result: GetGifsSearch200Response = await getGifsSearch(tenantId, search, locale, rating, page);
8

인기 GIF 가져오기 Internal Link

매개변수

이름형식필수설명
tenantIdstring
localestring아니오
ratingstring아니오
pagenumber아니오

응답

반환: GetGifsTrending200Response

예제

getGifsTrending 예제
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_8b3f2c';
4 const locale: string = 'en-US';
5 const rating: string = 'pg';
6 const page: number = 1;
7 const result: GetGifsTrending200Response = await getGifsTrending(tenantId, locale, rating, page);
8 console.log(result);
9}
10main();
11

해시태그 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstring아니오
createHashTagBodyCreateHashTagBody아니오

응답

반환: AddHashTag200Response

예제

addHashTag 예제
Copy Copy
1
2const tenantId: string | undefined = "tenant_3c9f7b";
3const createHashTagBody: CreateHashTagBody = {
4 name: "support",
5 title: "Support",
6 description: "Questions about product usage, bugs, and account issues",
7 color: "#0066CC",
8 isActive: true,
9 aliases: ["help", "customer-service"]
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
12

해시태그 일괄 추가 Internal Link


매개변수

이름형식필수설명
tenantIdstringNo
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

응답

반환: AddHashTagsBulk200Response

예제

addHashTagsBulk 예제
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_987";
3const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
4 tags: [
5 { name: "product-update", description: "Announcements about new product releases", visible: true },
6 { name: "customer-support", description: "Customer support related discussions", visible: false }
7 ],
8 createdBy: "moderator_jane"
9};
10const resultWithTenant: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
11const resultWithoutTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBody);
12

해시태그 삭제 Internal Link


Parameters

NameTypeRequiredDescription
tagstring
tenantIdstring아니요
deleteHashTagRequestDeleteHashTagRequest아니요

Response

반환: FlagCommentPublic200Response

Example

deleteHashTag 예제
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_72a1";
4const deleteHashTagRequest: DeleteHashTagRequest = {
5 reason: "consolidate-duplicates",
6 requestedBy: "moderator@dailypress.com",
7 forceDelete: true
8};
9const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteHashTagRequest);
10

해시태그 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
pagenumber아니오

반환

반환: GetHashTags200Response

예제

getHashTags 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f4b2c3a';
3const tagsFirstPage: GetHashTags200Response = await getHashTags(tenantId);
4const tagsSecondPage: GetHashTags200Response = await getHashTags(tenantId, 2);
5console.log(tagsFirstPage, tagsSecondPage);
6

해시태그 부분 수정 Internal Link

매개변수

NameTypeRequiredDescription
tagstringYes
tenantIdstringNo
updateHashTagBodyUpdateHashTagBodyNo

응답

반환: PatchHashTag200Response

예제

patchHashTag 예제
Copy Copy
1
2const tag: string = "feature-request";
3const tenantId: string = "tenant_8f7a3b2c";
4const updateHashTagBody: UpdateHashTagBody = {
5 displayName: "Feature Request",
6 description: "Use this tag for requests to add new features to the product",
7 enabled: true
8};
9const result: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
10

모더레이터 생성 Internal Link


매개변수

NameTypeRequiredDescription
tenantIdstring
createModeratorBodyCreateModeratorBody

응답

반환: CreateModerator200Response

예제

createModerator 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b21';
3const createModeratorBody: CreateModeratorBody = {
4 moderator: {
5 name: 'Alex Rivera',
6 email: 'alex.rivera@fastcomments.io',
7 role: 'global_moderator',
8 enabled: true,
9 },
10 // 선택적 매개변수 예시:
11 notifyUser: true,
12 permissions: ['delete_comment', 'edit_comment', 'ban_user'],
13 customConfig: { dashboardTheme: 'dark' } as unknown as CustomConfigParameters
14};
15const result: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
16

모더레이터 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
sendEmailstring아니요

응답

반환: FlagCommentPublic200Response

예제

deleteModerator 예제
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2c9a';
3const id: string = 'mod_9c2d1f7b';
4const sendEmail: string = 'true';
5const response: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6console.log(response);
7

모더레이터 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetModerator200Response

예제

getModerator 예제
Copy Copy
1
2const tenantId: string = 'acme-media-58';
3const id: string = 'mod-82f3b9c1';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

모더레이터들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
skipnumber아니요

응답

반환: GetModerators200Response

예제

getModerators 예제
Copy Copy
1
2const tenantId: string = 'tenant_0a1b2c3d';
3const moderators: GetModerators200Response = await getModerators(tenantId);
4const skip: number = 20;
5const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, skip);
6

초대 전송 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
fromNamestring

응답

반환: FlagCommentPublic200Response

예제

sendInvite 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_acme_42";
4 const id: string = "cmt_8f3b21";
5 const fromName: string = "Ava Thompson";
6 const inviteResult: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7 console.log(inviteResult);
8})();
9

모더레이터 업데이트 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring
updateModeratorBodyUpdateModeratorBody

응답

반환: FlagCommentPublic200Response

예제

updateModerator 예제
Copy Copy
1
2const tenantId: string = 'acme-tenant-81';
3const id: string = 'mod_7f3a2b';
4const updateModeratorBody: UpdateModeratorBody = {
5 email: 'j.reyes@acme-corp.com',
6 displayName: 'Jordan Reyes',
7 roles: ['moderator', 'content_reviewer'],
8 active: true,
9 notes: 'Promoted to senior moderator; monitor flagged content weekly'
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

알림 수 삭제 Internal Link


매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deleteNotificationCount 예제
Copy Copy
1
2const tenantId: string = 'tenant_5f3d2e1b';
3const id: string = 'notification_9a4b1c2';
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5

캐시된 알림 수 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetCachedNotificationCount200Response

예제

getCachedNotificationCount 예제
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-23';
3const id: string = 'user_987654';
4const cachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
5
6const maybeId: string | undefined = Math.random() > 0.5 ? 'user_123456' : undefined;
7if (maybeId) {
8 const optionalCachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, maybeId);
9}
10

알림 수 조회 Internal Link


매개변수

NameTypeRequiredDescription
tenantIdstring
userIdstring아니요
urlIdstring아니요
fromCommentIdstring아니요
viewedboolean아니요
typestring아니요

응답

반환: GetNotificationCount200Response

예제

getNotificationCount 예제
Copy Copy
1
2const tenantId: string = 'tenant_82a3b9f';
3const userId: string = 'user_43721';
4const urlId: string = 'https://news.example.com/articles/2026/06/15/coverage-123';
5const fromCommentId: string = 'comment_98765';
6const viewed: boolean = false;
7const notificationType: string = 'mention';
8
9const result: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, notificationType);
10

알림 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
userIdstring아니오
urlIdstring아니오
fromCommentIdstring아니오
viewedboolean아니오
typestring아니오
skipnumber아니오

응답

반환: GetNotifications200Response

예제

getNotifications 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6a';
3const userId: string = 'user_5a4b3c2d';
4const urlId: string = 'post_84f2a1b9';
5const fromCommentId: string = 'cmt_0a1b2c3d';
6const viewed: boolean = false;
7const type: string = 'reply';
8const skip: number = 0;
9
10const notifications: GetNotifications200Response = await getNotifications(
11 tenantId,
12 userId,
13 urlId,
14 fromCommentId,
15 viewed,
16 type,
17 skip
18);
19

알림 업데이트 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring
updateNotificationBodyUpdateNotificationBody
userIdstring아니오

응답

반환: FlagCommentPublic200Response

예제

updateNotification 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const id: string = 'notification_4a1d2e';
4const updateNotificationBody: UpdateNotificationBody = {
5 enabled: true,
6 channels: ['email', 'push'],
7 frequency: 'immediate',
8 templateId: 'tmpl_77aa'
9} as UpdateNotificationBody;
10const userId: string = 'user_2468';
11const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
12

V1 페이지 리액트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
titlestring아니오

응답

반환: CreateV1PageReact200Response

예제

createV1PageReact 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'b12f3c4d-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'https://www.news-site.com/world/2026/election-results';
5 const title: string = 'Election results: key takeaways and analysis';
6 const responseWithTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId, title);
7 const responseWithoutTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId);
8 console.log(responseWithTitle, responseWithoutTitle);
9})();
10

V2 페이지 리액트 생성 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdstring
idstring
titlestring아니요

응답

반환: CreateV2PageReact200Response

예제

createV2PageReact 예제
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-72";
3const urlId: string = "articles/2026/06/15/product-update";
4const id: string = "page-8f3b2a";
5const title: string = "Product Update: June 15, 2026";
6
7(async function run(): Promise<void> {
8 const response: CreateV2PageReact200Response = await createV2PageReact(tenantId, urlId, id, title);
9 console.log(response);
10})();
11

V1 페이지 리액트 삭제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdstring

응답

반환: DeleteV1PageReact200Response

예제

deleteV1PageReact 예제
Copy Copy
1
2const tenantId: string = process.env.TENANT_ID ?? 'd3b07384-9f6a-4c2b-8c3e-0a1b2c3d4e5f';
3const urlId: string = 'https://acme.com/articles/2026/06/fastcomments-integration';
4const result: DeleteV1PageReact200Response = await deleteV1PageReact(tenantId, urlId);
5

V2 페이지 리액트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
idstring

응답

반환: DeleteV2PageReact200Response

예제

deleteV2PageReact 예제
Copy Copy
1
2const tenantId: string = "tenant_79021";
3const urlId: string = "blog/my-first-post";
4const id: string = "reaction_9f8b7c";
5let includeHistory: boolean | undefined = undefined; // 선택적 플래그, 일부 호출에서 사용됨
6
7const result: DeleteV2PageReact200Response = await deleteV2PageReact(tenantId, urlId, id);
8console.log(result);
9

V1 페이지 좋아요 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdstring

응답

반환: GetV1PageLikes200Response

예제

getV1PageLikes 예제
Copy Copy
1
2const tenantId: string = 'fastcomments-742';
3const urlId: string = 'sports/2026/06/15/world-cup-preview';
4const pageLikes: GetV1PageLikes200Response = await getV1PageLikes(tenantId, urlId);
5

V2 페이지 리액트 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
urlIdstring

응답

반환: GetV2PageReacts200Response

예제

getV2PageReacts 예제
Copy Copy
1
2const tenantId: string = "tenant_82f4b3a9";
3const urlId: string = "https://news.site.com/articles/2026/06/15/product-launch";
4const response: GetV2PageReacts200Response = await getV2PageReacts(tenantId, urlId);
5console.log(response);
6

V2 페이지 리액트 사용자 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
urlIdstring
idstring

응답

반환: GetV2PageReactUsers200Response

예제

getV2PageReactUsers 예제
Copy Copy
1
2const tenantId: string = "7421";
3const urlId: string = "sports/london-marathon";
4const id: string = "reactUser-3fa85f64-5717-4562-b3fc-2c963f66afa6";
5const includeDeleted: boolean | undefined = undefined; // 선택적 플래그 (예시)
6
7const result: GetV2PageReactUsers200Response = await getV2PageReactUsers(tenantId, urlId, id);
8

페이지 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createAPIPageDataCreateAPIPageData

응답

반환: AddPageAPIResponse

페이지 삭제 Internal Link


매개변수

이름형식필수설명
tenantIdstring
idstring

응답

반환: DeletePageAPIResponse


오프라인 사용자 조회 Internal Link

페이지에서 현재 온라인 상태가 아닌 이전 댓글 작성자입니다. displayName으로 정렬됩니다. 이것은 /users/online을 모두 사용한 후 'Members' 섹션을 렌더링하기 위해 사용하세요. commenterName에 대한 커서 기반 페이징: 서버는 부분 인덱스 {tenantId, urlId, commenterName}를 사용하여 afterName 이후부터 $gt로 앞으로 순회하며 $skip 비용이 발생하지 않습니다.

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
afterNamestring아니요
afterUserIdstring아니요

응답

반환: GetOfflineUsers200Response

예제

getOfflineUsers 예제
Copy Copy
1
2const tenantId: string = 'tenant_prod_001';
3const urlId: string = 'article-2026-06-15-how-ai-impacts';
4const afterName: string = 'michael.smith';
5const afterUserId: string = 'user_72b9';
6
7const response: GetOfflineUsers200Response = await getOfflineUsers(tenantId, urlId, afterName, afterUserId);
8

온라인 사용자 조회 Internal Link

페이지의 현재 온라인 뷰어: 웹소켓 세션이 현재 해당 페이지를 구독 중인 사람들. anonCount + totalCount을 반환합니다 (룸 전체 구독자, 우리가 개별적으로 열거하지 않는 익명 뷰어 포함).

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
afterNamestring아니오
afterUserIdstring아니오

응답

반환: GetOnlineUsers200Response

예제

getOnlineUsers 예제
Copy Copy
1
2const tenantId: string = 'tenant_14f9c3';
3const urlId: string = 'article_20250615';
4const afterName: string = 'marie.curie';
5const afterUserId: string = 'u_92b7';
6const result: GetOnlineUsers200Response = await getOnlineUsers(tenantId, urlId, afterName, afterUserId);
7

URL ID로 페이지 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
urlIdstring

응답

반환: GetPageByURLIdAPIResponse


페이지들 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring

응답

반환: GetPagesAPIResponse


공개 페이지 조회 Internal Link

테넌트의 페이지를 나열합니다. FChat 데스크탑 클라이언트가 룸 목록을 채우기 위해 사용합니다. 각 페이지에 대해 해결된 커스텀 구성에서 enableFChat이 true여야 합니다. SSO를 요구하는 페이지는 요청 사용자 그룹 접근 권한에 따라 필터링됩니다.

매개변수

이름유형필수설명
tenantIdstringYes
cursorstringNo
limitnumberNo
qstringNo
sortByPagesSortByNo
hasCommentsbooleanNo

응답

반환: GetPagesPublic200Response

예제

getPagesPublic 예제
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2c';
3const cursor: string = 'eyJwYWdlIjoiMTIwIn0';
4const limit: number = 25;
5const q: string = 'homepage hero';
6const hasComments: boolean = true;
7
8const response: GetPagesPublic200Response = await getPagesPublic(
9 tenantId,
10 cursor,
11 limit,
12 q,
13 undefined,
14 hasComments
15);
16

사용자 정보 조회 Internal Link


테넌트에 대한 대량 사용자 정보입니다. userIds가 주어지면 User / SSOUser에서 표시 정보를 반환합니다. 댓글 위젯에서 presence 이벤트를 통해 방금 나타난 사용자들을 보강하는 데 사용됩니다. 페이지 컨텍스트 없음: 개인정보 보호가 일관되게 적용됩니다(비공개 프로필은 가려집니다).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idsstringYes

Response

반환: GetUsersInfo200Response

Example

getUsersInfo 예제
Copy Copy
1
2const tenantId: string = 'acme-tenant-007';
3const userIdsList: string[] = ['user_12a', 'user_34b', 'user_56c'];
4const separator: string | undefined = undefined; // 선택 사항; undefined이면 기본값은 쉼표
5const ids: string = userIdsList.join(separator ?? ',');
6const usersInfo: GetUsersInfo200Response = await getUsersInfo(tenantId, ids);
7

페이지 부분 수정 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
updateAPIPageDataUpdateAPIPageData

응답

반환: PatchPageAPIResponse


대기중인 웹훅 이벤트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deletePendingWebhookEvent 예제
Copy Copy
1
2const tenantId: string = "tenant_5f8d7a34";
3const id: string = "webhook_evt_987654321";
4const requestNote: string | undefined = undefined;
5const response: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
6

대기중인 웹훅 이벤트 수 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
commentIdstring아니요
externalIdstring아니요
eventTypestring아니요
typestring아니요
domainstring아니요
attemptCountGTnumber아니요

응답

반환: GetPendingWebhookEventCount200Response

예제

getPendingWebhookEventCount 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f8b3b';
3const commentId: string = 'cmt_1a2b3c';
4const eventType: string = 'comment.created';
5const domain: string = 'news-site.com';
6const attemptCountGT: number = 2;
7
8const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined, // externalId 생략
12 eventType,
13 undefined, // type 생략
14 domain,
15 attemptCountGT
16);
17

대기중인 웹훅 이벤트 조회 Internal Link


매개변수

이름타입필수설명
tenantIdstring
commentIdstring아니오
externalIdstring아니오
eventTypestring아니오
typestring아니오
domainstring아니오
attemptCountGTnumber아니오
skipnumber아니오

응답

반환: GetPendingWebhookEvents200Response

예제

getPendingWebhookEvents 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const commentId: string = 'cmt_8a7d1';
4const eventType: string = 'comment.created';
5const domain: string = 'reviews.myshop.com';
6const attemptCountGT: number = 1;
7const skip: number = 0;
8
9const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
10 tenantId,
11 commentId,
12 undefined,
13 eventType,
14 undefined,
15 domain,
16 attemptCountGT,
17 skip
18);
19

질문 설정 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createQuestionConfigBodyCreateQuestionConfigBody

응답

반환: CreateQuestionConfig200Response

예제

createQuestionConfig 예제
Copy Copy
1
2const tenantId: string = "tenant_9f3b1c2a";
3
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 name: "Product feedback",
6 key: "product_quality",
7 description: "Short survey question shown after posting a comment",
8 required: true,
9 renderingType: "singleChoice",
10 customOptions: [
11 { label: "Excellent", value: "5" },
12 { label: "Good", value: "4" },
13 { label: "Fair", value: "3" }
14 ] as QuestionConfigCustomOptionsInner[],
15 notifyModerators: false // 선택적 매개변수 예시
16};
17
18const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
19

질문 설정 삭제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deleteQuestionConfig 예제
Copy Copy
1
2const tenantId: string = 'acme-corp-47a9';
3const id: string = 'qcfg_20260615_001';
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

질문 설정 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring

응답

반환: GetQuestionConfig200Response

예제

getQuestionConfig 예제
Copy Copy
1
2const tenantId: string = "acme-corp-47";
3const questionId: string = "q-4f2b9a";
4const includeDrafts: boolean | undefined = undefined; // 선택적 매개변수 자리표시자
5const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
6console.log(result);
7

질문 설정들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
skipnumber아니오

응답

반환: GetQuestionConfigs200Response

예제

getQuestionConfigs 예제
Copy Copy
1
2const tenantId: string = "tenant_4c9f2b";
3const responseWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const skip: number = 50;
5const responseWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, skip);
6

질문 설정 업데이트 Internal Link


매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updateQuestionConfigBodyUpdateQuestionConfigBody

응답

반환: FlagCommentPublic200Response

예제

updateQuestionConfig 예제
Copy Copy
1
2const tenantId: string = "tenant_9f3b8a2e-4c6d-4b4f-a1b2-9e8f7d6c5b3a";
3const id: string = "q_7c2e1b4a-5d6f-4a8b-9c3d-2e1f0b9a4c5d";
4const options: QuestionConfigCustomOptionsInner[] = [
5 { value: "1", label: "Very dissatisfied" },
6 { value: "2", label: "Dissatisfied" },
7 { value: "3", label: "Neutral" },
8 { value: "4", label: "Satisfied" },
9 { value: "5", label: "Very satisfied" }
10];
11const updateQuestionConfigBody: UpdateQuestionConfigBody = {
12 label: "How satisfied are you with the article?",
13 enabled: true,
14 required: false, // 선택적 매개변수 예시
15 options
16};
17const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
18

질문 결과 생성 Internal Link


매개변수

NameTypeRequiredDescription
tenantIdstring
createQuestionResultBodyCreateQuestionResultBody

응답

반환: CreateQuestionResult200Response

예제

createQuestionResult 예제
Copy Copy
1
2const tenantId: string = 'fc-tenant-512';
3const meta: MetaItem[] = [{ key: 'source', value: 'article' }];
4const body: CreateQuestionResultBody = {
5 questionId: 'q-94',
6 userId: 'user_332',
7 answers: [{ optionId: 'opt_a', score: 1 }],
8 meta, // 제공된 선택적 메타데이터
9} as CreateQuestionResultBody;
10const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, body);
11

질문 결과 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deleteQuestionResult 예제
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-01";
3const id: string = "qres_9f8b7c3a";
4const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
5const optionalResponse: FlagCommentPublic200Response | undefined = response;
6

질문 결과 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetQuestionResult200Response

예제

getQuestionResult 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a7c9';
3const questionId: string = 'q_8d4f1b2c3a';
4const options: { includeMeta?: boolean } = { includeMeta: true }; // 선택적 매개변수 예시
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
6const apiStatus: APIStatus | undefined = (result as unknown as { apiStatus?: APIStatus }).apiStatus;
7const question: QuestionResult | undefined = (result as unknown as { question?: QuestionResult }).question;
8

질문 결과들 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
urlIdstring아니오
userIdstring아니오
startDatestring아니오
questionIdstring아니오
questionIdsstring아니오
skipnumber아니오

응답

반환: GetQuestionResults200Response

예제

getQuestionResults 예제
Copy Copy
1
2const tenantId: string = 'fc-tenant-7a9c';
3const urlId: string = 'news/article-2026-06-15';
4const userId: string = 'user-8421';
5const startDate: string = '2026-05-01T00:00:00Z';
6const questionId: string = 'q-13';
7const questionIds: string = 'q-13,q-14';
8const skip: number = 20;
9const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
10

질문 결과 업데이트 Internal Link


매개변수

이름유형필수설명
tenantIdstring
idstring
updateQuestionResultBodyUpdateQuestionResultBody

응답

반환: FlagCommentPublic200Response

예제

updateQuestionResult 예제
Copy Copy
1
2const tenantId: string = "tenant_prod_84b2";
3const id: string = "question_9f3a";
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 outcome: "accepted",
6 confidence: 0.88,
7 moderatorId: "moderator_17",
8 notes: "Validated by automated review" // 선택적 필드 포함
9};
10const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
11

질문 결과 집계 Internal Link


매개변수

이름형식필수설명
tenantIdstring
questionIdstring아니요
questionIdsArray아니요
urlIdstring아니요
timeBucketAggregateTimeBucket아니요
startDateDate아니요
forceRecalculateboolean아니요

응답

반환: AggregateQuestionResults200Response

예제

aggregateQuestionResults 예제
Copy Copy
1
2const tenantId: string = 'tenant_6f2b3c';
3const questionIds: Array<string> = ['q-7a1b2c', 'q-8d3e4f'];
4const urlId: string = 'url_9f8e7d';
5const startDate: Date = new Date('2025-01-01T00:00:00Z');
6const result: AggregateQuestionResults200Response = await aggregateQuestionResults(tenantId, undefined, questionIds, urlId, undefined, startDate, true);
7

질문 결과 일괄 집계 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestYes
forceRecalculatebooleanNo

응답

반환: BulkAggregateQuestionResults200Response

예제

bulkAggregateQuestionResults 예제
Copy Copy
1
2const tenantId: string = "tenant_0012";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 {
6 questionId: "quality_score",
7 startTime: "2026-06-01T00:00:00Z",
8 endTime: "2026-06-14T00:00:00Z",
9 timeBucket: "day",
10 dimensions: ["threadId"]
11 }
12 ],
13 includeTotals: true
14};
15const forceRecalculate: boolean = false;
16const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
17

댓글을 질문 결과와 결합 Internal Link

매개변수

NameType필수설명
tenantIdstring
questionIdstring아니오
questionIdsArray아니오
urlIdstring아니오
startDateDate아니오
forceRecalculateboolean아니오
minValuenumber아니오
maxValuenumber아니오
limitnumber아니오

응답

반환: CombineCommentsWithQuestionResults200Response

예제

combineCommentsWithQuestionResults 예제
Copy Copy
1
2const tenantId: string = 'tenant_12345';
3const questionId: string = 'q_98765';
4const questionIds: string[] = ['q_98765', 'q_12345'];
5const urlId: string = 'url_abc123';
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8const minValue: number = 0;
9const maxValue: number = 5;
10const limit: number = 50;
11const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
12 tenantId,
13 questionId,
14 questionIds,
15 urlId,
16 startDate,
17 forceRecalculate,
18 minValue,
19 maxValue,
20 limit
21);
22

SSO 사용자 추가 Internal Link


매개변수

이름형식필수설명
tenantIdstring
createAPISSOUserDataCreateAPISSOUserData

응답

반환: AddSSOUserAPIResponse


SSO 사용자 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
deleteCommentsboolean아니오
commentDeleteModestring아니오

응답

반환: DeleteSSOUserAPIResponse


이메일로 SSO 사용자 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
emailstring

응답

반환: GetSSOUserByEmailAPIResponse


ID로 SSO 사용자 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetSSOUserByIdAPIResponse


SSO 사용자들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
skipnumber아니오

응답

반환: GetSSOUsers200Response


SSO 사용자 부분 수정 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
updateAPISSOUserDataUpdateAPISSOUserData
updateCommentsboolean아니요

응답

반환: PatchSSOUserAPIResponse

SSO 사용자 교체 Internal Link


매개변수

이름형식필수설명
tenantIdstring
idstring
updateAPISSOUserDataUpdateAPISSOUserData
updateCommentsboolean아니오

응답

반환: PutSSOUserAPIResponse

예제

putSSOUser 예제
Copy Copy
1
2const tenantId: string = 'acme-enterprises-42';
3const id: string = 'usr-73a1b2';
4const updateAPISSOUserData: UpdateAPISSOUserData = {
5 email: 'marcus.ingram@acme.com',
6 givenName: 'Marcus',
7 familyName: 'Ingram',
8 roles: ['editor', 'project_owner'],
9 enabled: true
10};
11const result: PutSSOUserAPIResponse = await putSSOUser(tenantId, id, updateAPISSOUserData, true);
12

구독 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstring
createAPIUserSubscriptionDataCreateAPIUserSubscriptionData

응답

반환: CreateSubscriptionAPIResponse

예제

createSubscription 예제
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "user_98765",
5 planId: "pro_monthly",
6 paymentMethod: { type: "card", cardId: "card_abc123" },
7 autoRenew: true,
8 trialDays: 14, // 선택적 매개변수 예시
9 metadata: { campaign: "spring_launch" } // 선택적 매개변수 예시
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

구독 삭제 Internal Link


매개변수

이름형식필수설명
tenantIdstring
idstring
userIdstring아니요

응답

반환: DeleteSubscriptionAPIResponse


구독들 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstring
userIdstring아니오

응답

반환: GetSubscriptionsAPIResponse

예제

getSubscriptions 예제
Copy Copy
1
2const tenantId: string = "contoso-9a1b2c";
3const userId: string = "u-482f6";
4const subscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
5const userSubscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
6

구독 업데이트 Internal Link


매개변수

이름형식필수설명
tenantIdstring
idstring
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionData
userIdstring아니요

응답

반환: UpdateSubscriptionAPIResponse

예제

updateSubscription 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const subscriptionId: string = 'sub_7641a2b3';
4const updateData: UpdateAPIUserSubscriptionData = {
5 status: 'active',
6 planId: 'pro_annual',
7 autoRenew: true,
8 renewalDate: '2026-04-15T00:00:00Z',
9 metadata: { upgradedBy: 'billing-team' }
10};
11const userId: string = 'user_215';
12const result: UpdateSubscriptionAPIResponse = await updateSubscription(tenantId, subscriptionId, updateData, userId);
13

테넌트 일별 사용량 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
yearNumbernumber아니요
monthNumbernumber아니요
dayNumbernumber아니요
skipnumber아니요

응답

반환: GetTenantDailyUsages200Response

예제

getTenantDailyUsages 예제
Copy Copy
1
2const tenantId: string = 'tenant_7a3c2e';
3const dailyUsages: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, 2026, 6, undefined, 0);
4

테넌트 패키지 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstring
createTenantPackageBodyCreateTenantPackageBody

응답

반환: CreateTenantPackage200Response

예제

createTenantPackage 예제
Copy Copy
1
2const tenantId: string = "tenant_7890";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: "Growth Plan",
5 maxSeats: 2500,
6 features: {
7 moderation: true,
8 analytics: true,
9 sso: { enabled: true, provider: "saml" }
10 },
11 billing: { interval: "monthly", priceCents: 19900 },
12 // 선택적 매개변수 예시: notes는 필수가 아니지만 제공됨
13 notes: "Onboarding bundle with priority support"
14};
15const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
16

테넌트 패키지 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring

응답

반환: FlagCommentPublic200Response

예제

deleteTenantPackage 예제
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const packageId: string = 'pkg-2026-06-15-001';
4const dryRun: boolean | undefined = undefined; // 선택적 플래그 예시 (함수에서 필수 아님)
5const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6

테넌트 패키지 조회 Internal Link


매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetTenantPackage200Response

예제

getTenantPackage 예제
Copy Copy
1
2const tenantId: string = 'tenant_4b8c2a9f';
3const packageId: string = 'pkg_7d3e1b5c';
4const includeMetadata: boolean | undefined = true;
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

테넌트 패키지들 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
skipnumberNo

응답

반환: GetTenantPackages200Response

예제

getTenantPackages 예제
Copy Copy
1
2const tenantId: string = 'tenant_8421';
3const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, 25);
4const packagesWithoutSkip: GetTenantPackages200Response = await getTenantPackages(tenantId);
5

테넌트 패키지 교체 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring
replaceTenantPackageBodyReplaceTenantPackageBody

응답

반환: FlagCommentPublic200Response

예제

replaceTenantPackage 예제
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-114";
3const id: string = "pkg-enterprise-2026-06";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 name: "EnterpriseModeration",
6 version: "2.4.7",
7 enabled: true,
8 apiStatus: { state: "active", lastUpdated: "2026-06-10T12:00:00Z" },
9 customConfigParameters: { maxCommentLength: 1200, allowImages: true }, // 선택적 설정 포함
10 voteStyle: { style: "updown" }
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

테넌트 패키지 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
updateTenantPackageBodyUpdateTenantPackageBody

응답

반환: FlagCommentPublic200Response

예제

updateTenantPackage 예제
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const id: string = 'pkg_pro_2026';
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: 'Pro Plan',
6 monthlyPriceUsd: 49,
7 isActive: true,
8 features: ['moderation', 'analytics', 'sso'],
9 trialDays: 14 // 선택적 매개변수 예시
10};
11const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12

테넌트 사용자 생성 Internal Link


매개변수

이름유형필수설명
tenantIdstring
createTenantUserBodyCreateTenantUserBody

응답

반환: CreateTenantUser200Response

예제

createTenantUser 예제
Copy Copy
1
2const tenantId: string = "tenant_7f4a2b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@example.com",
5 firstName: "Jane",
6 lastName: "Doe",
7 role: "commenter",
8 approved: true,
9 displayName: "Jane D." // 선택 사항: 친근한 이름 제공
10};
11const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
12console.log(result);
13

테넌트 사용자 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring
deleteCommentsstring아니요
commentDeleteModestring아니요

응답

반환: FlagCommentPublic200Response

예제

deleteTenantUser 예제
Copy Copy
1
2const tenantId: string = "tenant_8f3a2b1c4d";
3const id: string = "user_62a4f9e0b7";
4const deleteComments: string = "true";
5const commentDeleteMode: string = "permanent";
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
7

테넌트 사용자 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetTenantUser200Response

예제

getTenantUser 예제
Copy Copy
1
2const tenantId: string = 'tenant_ab12c3';
3const id: string = 'user_9f8e7d';
4const response: GetTenantUser200Response = await getTenantUser(tenantId, id);
5console.log(response);
6

테넌트 사용자들 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
skipnumber아니오

응답

반환: GetTenantUsers200Response

예제

getTenantUsers 예제
Copy Copy
1
2const tenantId: string = 'tenant_7b8f3a2c-9e4d-4f1a';
3const skip: number = 50;
4const usersResponseDefault: GetTenantUsers200Response = await getTenantUsers(tenantId);
5const usersResponsePaged: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
6

테넌트 사용자 교체 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
replaceTenantUserBodyReplaceTenantUserBody
updateCommentsstring아니요

응답

반환: FlagCommentPublic200Response

예제

replaceTenantUser 예제
Copy Copy
1
2const tenantId: string = "f3b9a2d1-8b4e-4c6a-9f2b-1d5c4e6a7b8c";
3const id: string = "user_92f7c3b1";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: "auth0|1234567890",
6 email: "jane.doe@company.com",
7 displayName: "Jane Doe",
8 roles: ["moderator"],
9 metadata: { department: "support" }
10};
11const updateComments: string = "reassign-comments-to-new-user";
12const response: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
13

매개변수

이름형식필수설명
tenantIdstring
idstring
redirectURLstring아니오

응답

반환: FlagCommentPublic200Response

예제

sendLoginLink 예제
Copy Copy
1
2const tenantId: string = "tenant_0a1b2c3d";
3const id: string = "user_984321";
4const redirectURL: string = "https://app.acme-corp.com/welcome";
5const responseWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
6const responseWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
7

테넌트 사용자 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updateTenantUserBodyUpdateTenantUserBody
updateCommentsstring아니오

응답

반환: FlagCommentPublic200Response

예제

updateTenantUser 예제
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const userId: string = 'u_72b9f4';
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: 'jane.doe@acme.com',
6 displayName: 'Jane Doe',
7 roles: ['moderator'],
8 suspended: false
9};
10const updateComments: string = 'Promoted to moderator after review of activity and community feedback';
11const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, userId, updateTenantUserBody, updateComments);
12

테넌트 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstring
createTenantBodyCreateTenantBody

응답

반환: CreateTenant200Response

예제

createTenant 예제
Copy Copy
1
2const tenantId: string = 'acme-news-01';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme News',
5 domainConfiguration: { primaryDomain: 'news.acme.com', redirectHttps: true } as APIDomainConfiguration,
6 importedSites: [{ siteId: 'site-92', url: 'https://news.acme.com' }] as ImportedSiteType[],
7 billingInfo: { planId: 'business_monthly', contactEmail: 'billing@acme.com' } as BillingInfo
8};
9const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
10

테넌트 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
surestring아니오

응답

반환: FlagCommentPublic200Response

예제

deleteTenant 예제
Copy Copy
1
2const tenantId: string = 'tenant_742b9c';
3const flagId: string = 'flag_1a2b3c';
4const resultWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId);
5const sureConfirmation: string = 'confirmed';
6const resultWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId, sureConfirmation);
7

테넌트 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetTenant200Response

예제

getTenant 예제
Copy Copy
1
2const tenantId: string = 'fc_tenant_6b3e2a';
3const id: string = 'site_42f1';
4const tenantResponse: GetTenant200Response = await getTenant(tenantId, id);
5const tenant: APITenant | undefined = tenantResponse.tenant;
6const primaryDomain: APIDomainConfiguration | undefined = tenant?.domainConfiguration?.[0];
7

테넌트들 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
metastring아니요
skipnumber아니요

응답

반환: GetTenants200Response

예제

getTenants 예제
Copy Copy
1
2const tenantId: string = "fcom-tenant-8b4f2a1c";
3const meta: string = "include=domains,billing&status=active";
4const skip: number = 20;
5const response: GetTenants200Response = await getTenants(tenantId, meta, skip);
6console.log(response);
7

테넌트 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updateTenantBodyUpdateTenantBody

응답

반환: FlagCommentPublic200Response

예제

updateTenant 예제
Copy Copy
1
2const tenantId: string = 'tenant_84f12';
3const id: string = 'flag_192b';
4const updateTenantBody: UpdateTenantBody = {
5 name: 'Acme Media',
6 billingInfo: { plan: 'enterprise', seats: 25, nextBillingDate: '2026-07-01' },
7 apiDomainConfiguration: { primaryDomain: 'comments.acme.com', additionalDomains: ['acme.com'] },
8 importedSites: [{ siteUrl: 'https://blog.acme.com', archived: false }], // 선택 사항
9 commentSettings: { htmlRenderingMode: 'sanitized', deletionMode: 'soft' } // 선택 사항
10} as UpdateTenantBody;
11const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
12

티켓 상태 변경 Internal Link

매개변수

이름형식필수설명
tenantIdstring
userIdstring
idstring
changeTicketStateBodyChangeTicketStateBody

응답

반환: ChangeTicketState200Response

예제

changeTicketState 예제
Copy Copy
1
2const tenantId: string = 'tenant_8a7d3f4b';
3const userId: string = 'user_5d1a9b2c';
4const id: string = 'ticket_1024';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'closed',
7 notifyParticipants: true, // 선택적 매개변수 예시
8 comment: 'Resolved by support — follow-up not required.'
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

티켓 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
userIdstring
createTicketBodyCreateTicketBody

응답

반환: CreateTicket200Response

예제

createTicket 예제
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp';
3const userId: string = 'moderator_jane';
4const createTicketBody: CreateTicketBody = {
5 subject: 'Mass spam reports on article 789',
6 description: 'Multiple identical spam comments posted under article 789. Needs moderation and bulk removal.',
7 priority: 'high',
8 contactEmail: 'jane@acme-corp.com',
9 metadata: { articleId: '789', reportedCount: 12 } // 선택적 메타데이터 예시
10};
11const ticket: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

티켓 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
userIdstring아니요

응답

반환: GetTicket200Response

예제

getTicket 예제
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const ticketId: string = 'TCKT-20250615-42';
4const userId: string = 'user_84b2';
5
6const ticketWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8
9console.log(ticketWithUser.id, ticketWithoutUser.id);
10

티켓들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
userIdstring아니오
statenumber아니오
skipnumber아니오
limitnumber아니오

응답

반환: GetTickets200Response

예제

getTickets 예제
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_87b3';
4const state: number = 2;
5const skip: number = 0;
6const limit: number = 50;
7
8const tickets: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
9

번역 조회 Internal Link

매개변수

이름유형필수설명
namespacestring
componentstring
localestring아니요
useFullTranslationIdsboolean아니요

응답

반환: GetTranslations200Response

예제

getTranslations 예제
Copy Copy
1
2const namespaceName: string = 'site-ui';
3const componentName: string = 'comment-widget';
4const locale: string = 'fr-FR';
5const useFullTranslationIds: boolean = true;
6const translationsWithLocale: GetTranslations200Response = await getTranslations(namespaceName, componentName, locale, useFullTranslationIds);
7const translationsDefault: GetTranslations200Response = await getTranslations(namespaceName, componentName);
8

이미지 업로드 Internal Link


이미지 업로드 및 크기 조정

매개변수

이름유형필수설명
tenantIdstring
fileBlob
sizePresetSizePreset아니요
urlIdstring아니요

응답

반환: UploadImageResponse


ID로 사용자 배지 진행상황 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetUserBadgeProgressById200Response

예제

getUserBadgeProgressById 예제
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-241';
3const badgeId: string = 'user-78b3d-badge-3';
4const response: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, badgeId);
5const progress: UserBadgeProgress | undefined = (response as unknown as { progress?: UserBadgeProgress }).progress;
6const percentComplete: number | undefined = progress?.percentage;
7console.log('Badge progress percent complete:', percentComplete);
8

사용자 ID로 배지 진행상황 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
userIdstring

응답

반환: GetUserBadgeProgressById200Response

예제

getUserBadgeProgressByUserId 예제
Copy Copy
1
2const tenantId: string = 'acme-inc-tenant-01';
3const userId: string = 'user_73c9b2';
4const progress: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
5
6async function maybeFetchProgress(tenant: string, user?: string): Promise<GetUserBadgeProgressById200Response | null> {
7 if (!user) return null;
8 return await getUserBadgeProgressByUserId(tenant, user);
9}
10
11const optionalResult: GetUserBadgeProgressById200Response | null = await maybeFetchProgress(tenantId, userId);
12

사용자 배지 진행 목록 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
userIdstring아니오
limitnumber아니오
skipnumber아니오

응답

반환: GetUserBadgeProgressList200Response

예제

getUserBadgeProgressList 예제
Copy Copy
1
2const tenantId: string = 'tenant_4f3a2b9c';
3const userId: string = 'user_7721d';
4const limit: number = 20;
5const skip: number = 0;
6const result: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
7

사용자 배지 생성 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
createUserBadgeParamsCreateUserBadgeParams

응답

반환: CreateUserBadge200Response

예제

createUserBadge 예제
Copy Copy
1
2const tenantId: string = "tenant_7f4b2a";
3const createUserBadgeParams: CreateUserBadgeParams = {
4 code: "top_contributor",
5 title: "Top Contributor",
6 description: "Awarded for 100 high-quality comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top_contributor.svg",
8 isActive: true,
9 criteria: { commentsRequired: 100 },
10 customConfig: { displayOnProfile: true } // 선택적 매개변수 예시
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
13

사용자 배지 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: UpdateUserBadge200Response

예제

deleteUserBadge 예제
Copy Copy
1
2const tenantId: string = "tenant_8b3f2c7a";
3const badgeIdOptional: string | undefined = Math.random() > 0.5 ? "badge_4f9a21" : undefined;
4const id: string = badgeIdOptional ?? "badge_backup_01";
5const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
6

사용자 배지 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetUserBadge200Response

예제

getUserBadge 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_6b8f2a1c';
4 const id: string = 'badge_9f3d4b2a';
5 const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
6 const badge: UserBadge | undefined = response.userBadge;
7 const badgeName: string | undefined = badge?.name;
8 console.log('Retrieved badge name:', badgeName);
9})();
10

사용자 배지들 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
userIdstring아니오
badgeIdstring아니오
typenumber아니오
displayedOnCommentsboolean아니오
limitnumber아니오
skipnumber아니오

응답

반환: GetUserBadges200Response

예제

getUserBadges 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f9a12';
3const userId: string = 'user_42b7';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 2;
6const displayedOnComments: boolean = true;
7const limit: number = 25;
8const skip: number = 0;
9const badges: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
10

사용자 배지 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring
updateUserBadgeParamsUpdateUserBadgeParams

응답

반환: UpdateUserBadge200Response

예제

updateUserBadge 예제
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const id: string = "badge_a1b2c3";
4const updateUserBadgeParams: UpdateUserBadgeParams = {
5 title: "Community Helper",
6 description: "Awarded for providing 50 helpful answers",
7 iconUrl: "https://cdn.fastcomments.com/badges/community-helper.png",
8 isActive: true,
9 expiryDate: undefined
10};
11const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
12

사용자 알림 수 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstring
ssostring아니오

응답

반환: GetUserNotificationCount200Response

예제

getUserNotificationCount 예제
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
4const notificationCountNoSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
5const notificationCountWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6

사용자 알림 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring아니요
pageSizenumber아니요
afterIdstring아니요
includeContextboolean아니요
afterCreatedAtnumber아니요
unreadOnlyboolean아니요
dmOnlyboolean아니요
noDmboolean아니요
includeTranslationsboolean아니요
includeTenantNotificationsboolean아니요
ssostring아니요

응답

반환: GetUserNotifications200Response

예제

getUserNotifications 예제
Copy Copy
1
2const tenantId: string = "tenant_8271";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/ai-updates";
4const pageSize: number = 25;
5const afterId: string = "notif_abc123";
6const includeContext: boolean = true;
7const afterCreatedAt: number = Date.now() - 86_400_000;
8const unreadOnly: boolean = true;
9const dmOnly: boolean = false;
10const noDm: boolean = false;
11const includeTranslations: boolean = true;
12const includeTenantNotifications: boolean = true;
13const sso: string = "sso_token_xyz_987";
14
15const notifications: GetUserNotifications200Response = await getUserNotifications(
16 tenantId,
17 urlId,
18 pageSize,
19 afterId,
20 includeContext,
21 afterCreatedAt,
22 unreadOnly,
23 dmOnly,
24 noDm,
25 includeTranslations,
26 includeTenantNotifications,
27 sso
28);
29

사용자 알림 수 초기화 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
ssostringNo

응답

반환: ResetUserNotifications200Response

예제

resetUserNotificationCount 예제
Copy Copy
1
2const tenantId: string = "tenant_8a3f2b6c";
3const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyX2QxMjM0IiwiaWF0IjoxNjI1MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
4const resetResponseWithSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
5const resetResponseWithoutSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
6

사용자 알림 초기화 Internal Link

매개변수

이름유형필수설명
tenantIdstring
afterIdstring아니오
afterCreatedAtnumber아니오
unreadOnlyboolean아니오
dmOnlyboolean아니오
noDmboolean아니오
ssostring아니오

응답

반환: ResetUserNotifications200Response

예제

resetUserNotifications 예제
Copy Copy
1
2const tenantId: string = "tenant_9b1f2";
3const afterId: string = "notification_0001";
4const afterCreatedAt: number = Date.now() - 60 * 60 * 1000; // 한 시간 전
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const noDm: boolean = false;
8const sso: string = "sso_session_7f2d";
9const result: ResetUserNotifications200Response = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly,
15 noDm,
16 sso
17);
18

사용자 댓글 구독 상태 업데이트 Internal Link


특정 댓글에 대한 알림을 활성화하거나 비활성화합니다.

매개변수

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

응답

반환: UpdateUserNotificationStatus200Response

예제

updateUserNotificationCommentSubscriptionStatus 예제
Copy Copy
1
2const tenantId: string = 'f3a9c8b0-4d2e-4f8a-9c3b-1234567890ab';
3const notificationId: string = '62a1f4d2-8c7b-4e1a-aaa1-abcdef123456';
4const commentId: string = '7e4a2b1c-1234-5678-90ab-cdef12345678';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptedIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
7const response: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

사용자 페이지 구독 상태 업데이트 Internal Link

페이지에 대한 알림을 활성화하거나 비활성화합니다. 사용자가 페이지를 구독하면 새 루트 댓글에 대해 알림이 생성되며, 또한

매개변수

이름타입필수설명
tenantIdstring
urlIdstring
urlstring
pageTitlestring
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum
ssostring아니요

응답

반환: UpdateUserNotificationStatus200Response

예제

updateUserNotificationPageSubscriptionStatus 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2';
3const urlId: string = 'article_987';
4const url: string = 'https://www.news-site.com/articles/2026/pasta-guide';
5const pageTitle: string = 'The Definitive Guide to Cooking Pasta';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso-token-62b9f1';
8const result: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

사용자 알림 상태 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring
notificationIdstring
newStatusUpdateUserNotificationStatusNewStatusEnum
ssostring아니요

응답

반환: UpdateUserNotificationStatus200Response

예제

updateUserNotificationStatus 예제
Copy Copy
1
2const tenantId: string = 'tenant_5f2a8b9c';
3const notificationId: string = 'notif_987654321';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.payload.signature';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

사용자 접속 상태 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdWSstring
userIdsstring

응답

반환: GetUserPresenceStatuses200Response

예제

getUserPresenceStatuses 예제
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlIdWS: string = 'wss://comments.fastsite.com/ws/tenant_42';
4const userIds: string = 'user_9012,user_3478';
5const includePresenceMetadata: boolean | undefined = true; // 선택적 매개변수 예시
6const presenceStatuses: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

사용자 검색 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
usernameStartsWithstring아니오
mentionGroupIdsArray아니오
ssostring아니오
searchSectionSearchUsersSearchSectionEnum아니오

응답

반환: SearchUsers200Response

예제

searchUsers 예제
Copy Copy
1
2const tenantId: string = 'tenant_7890';
3const urlId: string = 'news/2026-06-15-world-cup-final';
4const usernameStartsWith: string = 'mar';
5const mentionGroupIds: string[] = ['staff', 'trusted-commenters'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0NTY3OCJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.Commenters;
8const response: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

사용자 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
idstring

응답

반환: GetUser200Response

예제

getUser 예제
Copy Copy
1
2const tenantId: string = 'fastcomments_corp';
3const id: string = 'user_9f8b7c6d-5e4a-3b2c-1f0e-123456789abc';
4const response: GetUser200Response = await getUser(tenantId, id);
5const userEmail: string | undefined = response.user?.email;
6const displayName: string | undefined = response.user?.displayName
7

투표 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstring
commentIdstring
directionCreateVoteDirectionEnum
userIdstring아니오
anonUserIdstring아니오

응답

반환: VoteComment200Response

예제

createVote 예제
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-001';
3const commentId: string = 'cmt_8f3b2a9d';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const userId: string = 'user_5021';
6const anonUserId: string = 'anon_7a9c';
7
8const voteResponse: VoteComment200Response = await createVote(tenantId, commentId, direction, userId, anonUserId);
9

투표 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes
editKeystringNo

응답

반환: DeleteCommentVote200Response

예제

deleteVote 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_8421';
4 const id: string = 'vote_3f9b7c2a';
5 const editKey: string = 'edit_7Xk9LpQ';
6 const responseWithoutEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id);
7 const responseWithEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
8 console.log(responseWithoutEdit, responseWithEdit);
9})();
10

투표 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring

응답

반환: GetVotes200Response

예제

getVotes 예제
Copy Copy
1
2const tenantId: string = 'tenant_7f8e91c2';
3const urlId: string = 'https://www.sportsdaily.com/news/2026/06/15/championship-game-recap';
4const votes: GetVotes200Response = await getVotes(tenantId, urlId);
5console.log(votes);
6

사용자별 투표 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
urlIdstring
userIdstring아니오
anonUserIdstring아니오

응답

반환: GetVotesForUser200Response

예제

getVotesForUser 예제
Copy Copy
1
2const tenantId: string = 'tenant_9b8f7c6d';
3const urlId: string = 'articles/product-update-2026';
4const userId: string = 'user_c12345';
5const anonUserId: string = 'anon_7f4e2a';
6const votes: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
7

도움을 원하십니까?

JavaScript/TypeScript SDK에 문제가 있거나 질문이 있는 경우, 다음을 이용해 주세요:

기여

기여는 언제나 환영합니다! 기여 지침은 GitHub 저장소를 방문하세요.