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

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

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

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

공개 API와 보안 API Internal Link

The SDK provides these API classes:

  • DefaultApi - 인증을 위해 API 키가 필요한 보안 엔드포인트입니다. 서버 측 작업에 사용하세요.
  • PublicApi - API 키 없이 접근할 수 있는 공개 엔드포인트입니다. 브라우저/모바일 디바이스 등에서 직접 호출할 수 있습니다.
  • ModerationApi - 모더레이터 대시보드 엔드포인트(댓글 관리, 차단, 배지, 신뢰도, 검색). 모더레이터의 세션으로 인증됩니다; SSO로 인증된 모더레이터의 경우 sso 쿼리 파라미터를 전달하세요.
  • HiddenApi - 고급 사용 사례를 위한 내부/관리자용 엔드포인트입니다.

예제: Using 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'
});

예제: Using 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'
});

예제: Using Moderation API

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

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

// 모더레이터 인증 호출(세션 쿠키 또는 SSO 모더레이터의 경우 `sso` 전달).
const comments = await sdk.moderationApi.getApiComments({
  tenantId: 'your-tenant-id'
});

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

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

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

Parameters

이름유형필수설명
tenantIdstring
aggregationRequestAggregationRequest
parentTenantIdstring아니오
includeStatsboolean아니오

응답

반환: AggregateResponse

예시

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

감사 로그 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
limitnumberNo
skipnumberNo
orderSORTDIRNo
afternumberNo
beforenumberNo

응답

반환: GetAuditLogsResponse1

예제

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

댓글 공개 차단 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

응답

반환: BlockFromCommentPublicResponse

예시

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

공개 댓글 차단 해제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsYes
ssostringNo

응답

반환: UnBlockCommentPublicResponse

예제

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

차단된 댓글 확인 Internal Link


매개변수

이름형식필수설명
tenantIdstringYes
commentIdsstringYes
ssostringNo

응답

반환: CheckedCommentsForBlockedResponse

예시

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

댓글에서 사용자 차단 Internal Link

매개변수

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

응답

반환: BlockUserFromCommentResponse

예시

blockUserFromComment 예시
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const commentId: string = 'cmt_20231101';
4
5const blockParams: BlockFromCommentParams = {
6 reason: 'spam',
7 blockDurationHours: 24,
8};
9
10const userId: string = 'user_123'; // 선택적 매개변수
11
12const response: BlockUserFromCommentResponse = await blockUserFromComment(
13 tenantId,
14 commentId,
15 blockParams,
16 userId
17);
18

공개 댓글 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
broadcastIdstring
commentDataCommentData
sessionIdstring아니오
ssostring아니오

응답

반환: CreateCommentPublicResponse

예시

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

댓글 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring
contextUserIdstring아니오
isLiveboolean아니오

응답

반환: DeleteCommentResponse

예시

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

공개 댓글 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

응답

반환: DeleteCommentPublicResponse

예시

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

댓글 투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
voteIdstringYes
urlIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

응답

반환: DeleteCommentVoteResponse

예시

deleteCommentVote 예시
Copy Copy
1
2async function removeVote() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const voteId: string = "vote_abcde";
6 const urlId: string = "url_56789";
7 const broadcastId: string = "brd_001";
8 const editKey: string = "edit_456";
9 // sso는 선택 사항이며 생략되었습니다
10
11 const response: DeleteCommentVoteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18 );
19
20 console.log(response);
21}
22
23removeVote();
24

댓글 신고 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

Response

반환: FlagCommentResponse1

Example

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

댓글 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring

응답

반환: GetCommentResponse

예시

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

댓글 목록 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
pagenumber아니오
limitnumber아니오
skipnumber아니오
asTreeboolean아니오
skipChildrennumber아니오
limitChildrennumber아니오
maxTreeDepthnumber아니오
urlIdstring아니오
userIdstring아니오
anonUserIdstring아니오
contextUserIdstring아니오
hashTagstring아니오
parentIdstring아니오
directionSortDirections아니오
fromDatenumber아니오
toDatenumber아니오

응답

반환: GetCommentsResponse

예시

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

공개 댓글 조회 Internal Link


요청
tenantId
urlId

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
pagenumberNo
directionSortDirectionsNo
ssostringNo
skipnumberNo
skipChildrennumberNo
limitnumberNo
limitChildrennumberNo
countChildrenbooleanNo
fetchPageForCommentIdstringNo
includeConfigbooleanNo
countAllbooleanNo
includei10nbooleanNo
localestringNo
modulesstringNo
isCrawlerbooleanNo
includeNotificationCountbooleanNo
asTreebooleanNo
maxTreeDepthnumberNo
useFullTranslationIdsbooleanNo
parentIdstringNo
searchTextstringNo
hashTagsArrayNo
userIdstringNo
customConfigStrstringNo
afterCommentIdstringNo
beforeCommentIdstringNo

응답

반환: GetCommentsPublicResponse

예시

getCommentsPublic 예시
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = 'acme-corp';
4 const urlId: string = 'blog/post-789';
5 const page: number = 1;
6 const direction: SortDirections = SortDirections.Desc;
7 const limit: number = 25;
8 const includeConfig: boolean = true;
9 const locale: string = 'en-GB';
10 const modules: string = 'reactions,attachments';
11 const isCrawler: boolean = false;
12 const includeNotificationCount: boolean = true;
13 const asTree: boolean = true;
14 const maxTreeDepth: number = 4;
15 const searchText: string = 'TypeScript';
16 const hashTags: string[] = ['typescript', 'api'];
17 const response: GetCommentsPublicResponse = await getCommentsPublic(
18 tenantId,
19 urlId,
20 page,
21 direction,
22 undefined,
23 undefined,
24 undefined,
25 limit,
26 undefined,
27 undefined,
28 undefined,
29 includeConfig,
30 undefined,
31 undefined,
32 locale,
33 modules,
34 isCrawler,
35 includeNotificationCount,
36 asTree,
37 maxTreeDepth,
38 undefined,
39 undefined,
40 searchText,
41 hashTags,
42 undefined,
43 undefined,
44 undefined,
45 undefined
46 );
47}
48

댓글 텍스트 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

응답

반환: GetCommentTextResponse1

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
dirnumberYes
ssostringNo

응답

반환: GetCommentVoteUserNamesResponse

예시

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

댓글 잠금 Internal Link

매개변수

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

응답

반환: LockCommentResponse

예제

lockComment 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6
7 // 옵션 SSO 토큰 포함
8 const ssoToken: string = "user-abc123";
9 const lockedWithSso: LockCommentResponse = await lockComment(tenantId, commentId, broadcastId, ssoToken);
10
11 // 옵션 SSO 토큰 없이
12 const lockedWithoutSso: LockCommentResponse = await lockComment(tenantId, commentId, broadcastId);
13})();
14

댓글 고정 Internal Link

매개변수

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

응답

반환: PinCommentResponse

예시

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

댓글 저장 Internal Link

매개변수

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

응답

반환: SaveCommentResponse

예시

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

댓글 일괄 저장 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createCommentParamsArrayYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

응답

반환: Array<SaveCommentsBulkResponse

예제

saveCommentsBulk 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const bulkComments: CreateCommentParams[] = [
5 {
6 content: "Welcome to the new forum thread!",
7 authorId: "user_42",
8 mentions: [{ userId: "user_84", username: "alice" }],
9 hashtags: [{ tag: "intro" }]
10 },
11 {
12 content: "Please review the updated guidelines.",
13 authorId: "moderator_1",
14 mentions: [],
15 hashtags: [{ tag: "guidelines" }, { tag: "update" }]
16 }
17];
18
19const results: SaveCommentsBulkResponse[] = await saveCommentsBulk(
20 tenantId,
21 bulkComments,
22 true, // 실시간 여부
23 false, // 스팸 검사
24 true, // 이메일 전송
25 undefined // populateNotifications (기본값 사용)
26);
27

댓글 텍스트 설정 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
commentTextUpdateRequestCommentTextUpdateRequestYes
editKeystringNo
ssostringNo

응답

반환: SetCommentTextResponse1

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
unBlockFromCommentParamsUnBlockFromCommentParamsYes
userIdstringNo
anonUserIdstringNo

응답

반환: UnBlockUserFromCommentResponse

예시

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

댓글 신고 취소 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
userIdstringNo
anonUserIdstringNo

응답

반환: UnFlagCommentResponse

예제

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

댓글 잠금 해제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

응답

반환: UnLockCommentResponse

예제

unLockComment 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const broadcastId: string = "brd_001";
5const ssoToken: string | undefined = "sso_token_abc";
6
7async function run() {
8 const unlocked: UnLockCommentResponse = await unLockComment(tenantId, commentId, broadcastId, ssoToken);
9 console.log(unlocked);
10
11 // 선택적 sso 매개변수 없이 호출
12 const unlockedWithoutSso: UnLockCommentResponse = await unLockComment(tenantId, commentId, broadcastId);
13 console.log(unlockedWithoutSso);
14}
15
16run();
17

댓글 고정 해제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

응답

반환: UnPinCommentResponse

예시

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

댓글 업데이트 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updatableCommentParamsUpdatableCommentParamsYes
contextUserIdstringNo
doSpamCheckbooleanNo
isLivebooleanNo

Response

반환: UpdateCommentResponse

Example

updateComment 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4
5const updatableCommentParams: UpdatableCommentParams = {
6 // 예시 필드; 실제 형태는 API 정의에 따라 다릅니다
7 // 예: body: "Edited comment content",
8};
9
10const contextUserId: string = "user_abcde";
11const doSpamCheck: boolean = true;
12const isLive: boolean = false;
13
14const result: UpdateCommentResponse = await updateComment(
15 tenantId,
16 commentId,
17 updatableCommentParams,
18 contextUserId,
19 doSpamCheck,
20 isLive
21);
22

댓글 투표 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
sessionIdstringNo
ssostringNo

Response

Returns: VoteCommentResponse

Example

voteComment 예시
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_9f8e7d6c";
4const urlId: string = "url_123456";
5const broadcastId: string = "bcast_2024_01";
6
7const voteBodyParams: VoteBodyParams = {
8 vote: "up", // 예: "up" | "down"
9 weight: 1, // 투표의 가중치 (옵션)
10};
11
12const sessionId: string = "sess_abc123def";
13const sso: string = "sso_token_xyz";
14
15const result: VoteCommentResponse = await voteComment(
16 tenantId,
17 commentId,
18 urlId,
19 broadcastId,
20 voteBodyParams,
21 sessionId,
22 sso
23);
24

사용자별 댓글 조회 Internal Link

매개변수

이름유형필수설명
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagenumberNo
includei10nbooleanNo
localestringNo
isCrawlerbooleanNo

응답

반환: GetCommentsForUserResponse1

예시

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

도메인 설정 추가 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsYes

응답

Returns: AddDomainConfigResponse

예시

addDomainConfig 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // 설명은 선택 사항이며 여기서는 생략되었습니다
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

도메인 설정 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
domainstringYes

응답

반환: DeleteDomainConfigResponse

예제

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

도메인 설정 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
domainstringYes

응답

반환: GetDomainConfigResponse

예시

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

도메인 설정들 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes

응답

반환값: GetDomainConfigsResponse

예시

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

도메인 설정 부분 수정 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
domainToUpdatestringYes
patchDomainConfigParamsPatchDomainConfigParamsYes

응답

Returns: PatchDomainConfigResponse

예제

patchDomainConfig 예제
Copy Copy
1
2async function updateDomainConfig() {
3 const tenantId: string = "tenant_98765";
4 const domainToUpdate: string = "forum.mycompany.com";
5 const patchParams: PatchDomainConfigParams = {
6 enableComments: true,
7 moderationLevel: "strict",
8 allowAnonymous: false, // 선택적 매개변수 시연
9 };
10 const response: PatchDomainConfigResponse = await patchDomainConfig(tenantId, domainToUpdate, patchParams);
11 console.log(response);
12}
13
14updateDomainConfig();
15

도메인 설정 전체 대체 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringYes
updateDomainConfigParamsUpdateDomainConfigParamsYes

응답

반환: PutDomainConfigResponse

예시

putDomainConfig 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = 'tenant-9f8c7b1a';
4 const domainToUpdate: string = 'comments.mywebsite.org';
5 const updateDomainConfigParams: UpdateDomainConfigParams = {
6 enableModeration: true,
7 // 선택적 필드가 생략됨, 예: maxCommentLength?: number
8 };
9 const result: PutDomainConfigResponse = await putDomainConfig(
10 tenantId,
11 domainToUpdate,
12 updateDomainConfigParams,
13 );
14 console.log(result);
15}
16runExample();
17

이메일 템플릿 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createEmailTemplateBodyCreateEmailTemplateBody

응답

반환: CreateEmailTemplateResponse1

예시

createEmailTemplate 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8e7d6c";
3
4const emailTemplate: CreateEmailTemplateBody = {
5 name: "Account Activation",
6 subject: "Activate Your New Account",
7 htmlContent: "<p>Welcome! Please click <a href=\"\{{activationLink}}\">here</a> to activate.</p>",
8 // textContent, isActive와 같은 선택적 필드는 선택적 매개변수를 보여주기 위해 생략되었습니다
9};
10
11const result: CreateEmailTemplateResponse1 = await createEmailTemplate(
12 tenantId,
13 emailTemplate
14);
15
16console.log(result);
17

이메일 템플릿 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: DeleteEmailTemplateResponse

예시

deleteEmailTemplate 예시
Copy Copy
1
2async () => {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_abcde";
5
6 const response: DeleteEmailTemplateResponse = await deleteEmailTemplate(tenantId, templateId);
7
8 // 응답에서 선택적 속성에 접근하는 예시
9 const statusCode: number | undefined = response.status?.code;
10}();
11

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

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes
errorIdstringYes

응답

반환: DeleteEmailTemplateRenderErrorResponse

예시

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

이메일 템플릿 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetEmailTemplateResponse1

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes

응답

반환: GetEmailTemplateDefinitionsResponse1

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
skipnumberNo

응답

반환: GetEmailTemplateRenderErrorsResponse1

예시

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

이메일 템플릿들 조회 Internal Link

매개변수

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

응답

반환: GetEmailTemplatesResponse1

예시

getEmailTemplates 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4
5 // 선택적 'skip' 없이 호출
6 const templates: GetEmailTemplatesResponse1 = await getEmailTemplates(tenantId);
7
8 // 선택적 'skip' 매개변수와 함께 호출
9 const pagedTemplates: GetEmailTemplatesResponse1 = await getEmailTemplates(tenantId, 20);
10})();
11

이메일 템플릿 렌더링 Internal Link

매개변수

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

응답

반환: RenderEmailTemplateResponse1

예시

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

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

Parameters

이름타입필수설명
tenantIdstring
idstring
updateEmailTemplateBodyUpdateEmailTemplateBody

Response

반환: UpdateEmailTemplateResponse

예제

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

이벤트 로그 조회 Internal Link

req tenantId urlId userIdWS

매개변수

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

응답

반환: GetEventLogResponse1

예시

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

글로벌 이벤트 로그 조회 Internal Link

req tenantId urlId userIdWS

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
userIdWSstringYes
startTimenumberYes
endTimenumberNo

응답

반환: GetGlobalEventLogResponse

예시

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

피드 게시물 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
isLivebooleanNo
doSpamCheckbooleanNo
skipDupCheckbooleanNo

응답

반환: CreateFeedPostResponse1

예제

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

공개 피드 게시물 생성 Internal Link

매개변수

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

응답

반환: CreateFeedPostPublicResponse

예시

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

공개 피드 게시물 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
postIdstringYes
broadcastIdstringNo
ssostringNo

응답

반환: DeleteFeedPostPublicResponse

예시

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

피드 게시물 조회 Internal Link

req tenantId afterId

매개변수

이름타입필수설명
tenantIdstring
afterIdstring아니오
limitnumber아니오
tagsArray아니오

응답

반환: GetFeedPostsResponse1

예제

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

공개 피드 게시물 조회 Internal Link

req tenantId afterId

매개변수

이름형식필수설명
tenantIdstringYes
afterIdstringNo
limitnumberNo
tagsArrayNo
ssostringNo
isCrawlerbooleanNo
includeUserInfobooleanNo

응답

반환: GetFeedPostsPublicResponse

예시

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

피드 게시물 통계 조회 Internal Link

매개변수

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

응답

반환: GetFeedPostsStatsResponse

예제

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

사용자 반응(공개) 조회 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
postIdsArrayNo
ssostringNo

Response

반환: GetUserReactsPublicResponse

Example

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

공개 피드 게시물에 반응 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
postIdstringYes
reactBodyParamsReactBodyParamsYes
isUndobooleanNo
broadcastIdstringNo
ssostringNo

응답

반환: ReactFeedPostPublicResponse

예시

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

피드 게시물 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
feedPostFeedPostYes

응답

반환: UpdateFeedPostResponse

예시

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

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

매개변수

NameTypeRequiredDescription
tenantIdstringYes
postIdstringYes
updateFeedPostParamsUpdateFeedPostParamsYes
broadcastIdstringNo
ssostringNo

응답

반환: UpdateFeedPostPublicResponse

예시

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

공개 댓글 신고 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
isFlaggedbooleanYes
ssostringNo

응답

반환: FlagCommentPublicResponse

예제

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

큰 GIF 조회 Internal Link

Parameters

이름유형필수설명
tenantIdstring
largeInternalURLSanitizedstring

Response

반환: GetGifLargeResponse

예시

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

GIF 검색 Internal Link

매개변수

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

응답

반환: GetGifsSearchResponse

예시

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

인기 GIF 조회 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
localestringNo
ratingstringNo
pagenumberNo

Response

반환: GetGifsTrendingResponse

Example

getGifsTrending 예시
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const locale: string = "en-US";
5 const rating: string = "PG-13";
6 const page: number = 1;
7
8 const trendingAll: GetGifsTrendingResponse = await getGifsTrending(tenantId, locale, rating, page);
9 console.log(trendingAll);
10
11 // 필수 파라미터만 사용
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

해시태그 추가 Internal Link

매개변수

이름유형필수설명
tenantIdstringNo
createHashTagBodyCreateHashTagBodyNo

응답

반환: AddHashTagResponse

예시

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

해시태그 일괄 추가 Internal Link

매개변수

이름형식필수설명
tenantIdstringNo
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

응답

반환: AddHashTagsBulkResponse

예시

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

해시태그 삭제 Internal Link

매개변수

이름형식필수설명
tagstringYes
tenantIdstringNo
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

응답

반환: DeleteHashTagResponse

예시

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

해시태그 조회 Internal Link

매개변수

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

응답

반환: GetHashTagsResponse1

예제

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

해시태그 부분 수정 Internal Link

매개변수

이름형식필수설명
tagstringYes
tenantIdstringNo
updateHashTagBodyUpdateHashTagBodyNo

응답

반환: PatchHashTagResponse

예시

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

중재 투표 삭제 Internal Link

Parameters

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

Response

반환: DeleteModerationVoteResponse

예시

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

API 댓글 조회 Internal Link

매개변수

이름유형필수설명
pagenumberNo
countnumberNo
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

응답

Returns: GetApiCommentsResponse

예시

getApiComments 예시
Copy Copy
1
2async function loadComments() {
3 const fullResult: GetApiCommentsResponse = await getApiComments(
4 2, // 페이지
5 25, // 카운트
6 "feedback", // 텍스트 검색
7 "192.168.1.100", // 댓글 IP
8 "approved", // 필터
9 "hasReplies", // 검색 필터
10 "dateDesc", // 정렬
11 false, // 데모
12 "tenant-abc123", // 테넌트 ID
13 "sso-token-xyz" // SSO
14 );
15
16 const minimalResult: GetApiCommentsResponse = await getApiComments(undefined, 5);
17}
18

API 내보내기 상태 조회 Internal Link

매개변수

이름형식필수설명
batchJobIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: GetApiExportStatusResponse

예제

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

API ID 조회 Internal Link

Parameters

NameTypeRequiredDescription
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

Response

반환: GetApiIdsResponse

Example

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

댓글로부터 차단된 사용자 조회 Internal Link

매개변수

이름타입필수설명
commentIdstringYes
tenantIdstringNo
ssostringNo

응답

반환값: GetBanUsersFromCommentResponse

예시

getBanUsersFromComment 예시
Copy Copy
1
2async function demoGetBanUsers() {
3 const commentId: string = "cmt_5f8e3a9b2d";
4 const tenantId: string = "tenant_42";
5 const sso: string = "sso_token_abc123";
6
7 // 모든 매개변수로 호출
8 const fullResult: GetBanUsersFromCommentResponse = await getBanUsersFromComment(commentId, tenantId, sso);
9 console.log(fullResult);
10
11 // 필수 매개변수만 사용하여 호출
12 const minimalResult: GetBanUsersFromCommentResponse = await getBanUsersFromComment(commentId);
13 console.log(minimalResult);
14}
15
16demoGetBanUsers();
17

댓글 차단 상태 조회 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
tenantIdstringNo
ssostringNo

응답

반환: GetCommentBanStatusResponse1

예시

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

댓글 자식(답글) 조회 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
tenantIdstringNo
ssostringNo

응답

반환: GetCommentChildrenResponse

예시

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

카운트 조회 Internal Link


매개변수

NameTypeRequiredDescription
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demobooleanNo
tenantIdstringNo
ssostringNo

응답

Returns: GetCountResponse

예시

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

여러 카운트 조회 Internal Link

매개변수

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

응답

반환: GetCountsResponse

예시

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

로그 조회 Internal Link

매개변수

이름타입필수설명
commentIdstringYes
tenantIdstringNo
ssostringNo

응답

반환: GetLogsResponse

예제

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

수동 배지 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringNo
ssostringNo

응답

반환: GetManualBadgesResponse

예제

getManualBadges 예제
Copy Copy
1
2async function fetchBadges() {
3 const tenantId: string = "tenant_987654321";
4 const ssoToken: string = "sso_ABCdef123456";
5
6 // 선택적 매개변수를 모두 사용하여 호출
7 const responseFull: GetManualBadgesResponse = await getManualBadges(tenantId, ssoToken);
8 console.log(responseFull);
9
10 // tenantId만 사용하여 호출
11 const responseTenantOnly: GetManualBadgesResponse = await getManualBadges(tenantId);
12 console.log(responseTenantOnly);
13}
14
15fetchBadges();
16

사용자용 수동 배지 조회 Internal Link

매개변수

이름유형필수설명
badgesUserIdstringNo
commentIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: GetManualBadgesForUserResponse

예시

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

중재용 댓글 조회 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
includeEmailbooleanNo
includeIPbooleanNo
tenantIdstringNo
ssostringNo

응답

반환: GetModerationCommentResponse

예시

getModerationComment 예제
Copy Copy
1
2async function fetchCommentDetails() {
3 // 전체 매개변수 집합
4 const commentId: string = "cmt_12345abc";
5 const includeEmail: boolean = true;
6 const includeIP: boolean = false;
7 const tenantId: string = "tenant_9876";
8 const sso: string = "sso_token_xyz";
9
10 const fullResult: GetModerationCommentResponse = await getModerationComment(
11 commentId,
12 includeEmail,
13 includeIP,
14 tenantId,
15 sso
16 );
17
18 // 필수 인수만 사용한 최소 호출
19 const minimalResult: GetModerationCommentResponse = await getModerationComment("cmt_67890def");
20
21 // 결과를 필요에 따라 사용...
22}
23

중재용 댓글 텍스트 조회 Internal Link

Parameters

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

Response

반환: GetModerationCommentTextResponse

Example

getModerationCommentText 예시
Copy Copy
1
2async function exampleUsage(): Promise<void> {
3 const commentId: string = "cmt_9f8e7d6c5b4a3b2c1d0e";
4 const tenantId: string = "tenant_67890";
5 const sso: string = "sso_token_abc123";
6
7 // 필수 매개변수만 사용하여 호출
8 const result1: GetModerationCommentTextResponse = await getModerationCommentText(commentId);
9
10 // 선택적 매개변수와 함께 호출
11 const result2: GetModerationCommentTextResponse = await getModerationCommentText(commentId, tenantId, sso);
12}
13

사전 차단 요약 조회 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
includeByUserIdAndEmailbooleanNo
includeByIPbooleanNo
includeByEmailDomainbooleanNo
tenantIdstringNo
ssostringNo

응답

Returns: GetPreBanSummaryResponse

예시

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

검색 댓글 요약 조회 Internal Link

매개변수

NameTypeRequiredDescription
valuestringNo
filtersstringNo
searchFiltersstringNo
tenantIdstringNo
ssostringNo

응답

반환: GetSearchCommentsSummaryResponse

예시

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

검색 페이지 조회 Internal Link

매개변수

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

응답

반환: GetSearchPagesResponse

예시

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

검색 사이트 조회 Internal Link

매개변수

NameTypeRequiredDescription
valuestringNo
tenantIdstringNo
ssostringNo

응답

반환: GetSearchSitesResponse

예시

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

검색 추천 조회 Internal Link

매개변수

NameTypeRequiredDescription
textSearchstringNo
tenantIdstringNo
ssostringNo

응답

반환: GetSearchSuggestResponse

예시

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

검색 사용자 조회 Internal Link

매개변수

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

응답

반환: GetSearchUsersResponse

예시

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

신뢰 지수 조회 Internal Link

매개변수

이름유형필수설명
userIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: GetTrustFactorResponse

예제

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

사용자 차단 설정 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstringNo
ssostringNo

응답

반환: GetUserBanPreferenceResponse

예시

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

사용자 내부 프로필 조회 Internal Link

Parameters

NameTypeRequiredDescription
commentIdstringNo
tenantIdstringNo
ssostringNo

Response

반환: GetUserInternalProfileResponse1

Example

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

댓글 투표 조정 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsYes
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PostAdjustCommentVotesResponse

예제

postAdjustCommentVotes 예제
Copy Copy
1
2const commentId: string = "cmt_9f8b7a6d";
3
4const adjustParams: AdjustCommentVotesParams = {
5 voteDelta: 1,
6 // AdjustCommentVotesParams에 필요한 추가 필드
7};
8
9const broadcastId: string = "brd_20230915";
10const tenantId: string = "tenant_42";
11const sso: string = "sso-token-abc123";
12
13const result: PostAdjustCommentVotesResponse = await postAdjustCommentVotes(
14 commentId,
15 adjustParams,
16 broadcastId,
17 tenantId,
18 sso
19);
20

API 내보내기 요청 Internal Link

매개변수

이름타입필수설명
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
sortsstringNo
tenantIdstringNo
ssostringNo

응답

Returns: PostApiExportResponse

예시

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

댓글에서 사용자 차단 Internal Link

매개변수

이름유형필수설명
commentIdstring
banEmailboolean아니오
banEmailDomainboolean아니오
banIPboolean아니오
deleteAllUsersCommentsboolean아니오
bannedUntilstring아니오
isShadowBanboolean아니오
updateIdstring아니오
banReasonstring아니오
tenantIdstring아니오
ssostring아니오

응답

반환: PostBanUserFromCommentResponse

예시

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

사용자 차단 취소 Internal Link

매개변수

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

응답

반환: PostBanUserUndoResponse

예시

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

일괄 사전 차단 요약 요청 Internal Link

매개변수

이름유형필수설명
bulkPreBanParamsBulkPreBanParams
includeByUserIdAndEmailboolean아니오
includeByIPboolean아니오
includeByEmailDomainboolean아니오
tenantIdstring아니오
ssostring아니오

응답

반환: PostBulkPreBanSummaryResponse

예제

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

ID로 댓글 조회 Internal Link

매개변수

이름타입필수설명
commentsByIdsParamsCommentsByIdsParamsYes
tenantIdstringNo
ssostringNo

응답

반환: PostCommentsByIdsResponse

예시

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

댓글 신고 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PostFlagCommentResponse

예시

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

댓글 제거 Internal Link

매개변수

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

응답

반환: PostRemoveCommentResponse

예제

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

삭제된 댓글 복원 Internal Link

매개변수

NameTypeRequiredDescription
commentIdstring
broadcastIdstring아니오
tenantIdstring아니오
ssostring아니오

응답

반환: PostRestoreDeletedCommentResponse

예시

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

댓글 승인 상태 설정 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
approvedbooleanNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

Returns: PostSetCommentApprovalStatusResponse

예제

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

댓글 검토 상태 설정 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
reviewedbooleanNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PostSetCommentReviewStatusResponse

예시

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

댓글 스팸 상태 설정 Internal Link

매개변수

NameTypeRequiredDescription
commentIdstringYes
spambooleanNo
permNotSpambooleanNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

Returns: PostSetCommentSpamStatusResponse

예제

postSetCommentSpamStatus 예제
Copy Copy
1
2async function demoSpamStatus(): Promise<void> {
3 const commentId: string = "cmt_5f2a1b3c4d6e7f8g9h0i";
4
5 // 필수 매개변수만
6 const resultSimple: PostSetCommentSpamStatusResponse = await postSetCommentSpamStatus(commentId, true);
7
8 // 모든 선택적 매개변수가 제공됨
9 const resultFull: PostSetCommentSpamStatusResponse = await postSetCommentSpamStatus(
10 commentId,
11 false,
12 true,
13 "brd_1234abcd",
14 "tenant_42",
15 "sso_9876xyz"
16 );
17
18 console.log(resultSimple, resultFull);
19}
20

댓글 텍스트 설정 Internal Link

매개변수

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

응답

반환: PostSetCommentTextResponse

예시

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

댓글 신고 취소 Internal Link

매개변수

이름유형필수설명
commentIdstringYes
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PostUnFlagCommentResponse

예시

postUnFlagComment 예시
Copy Copy
1
2async () => {
3 const response: PostUnFlagCommentResponse = await postUnFlagComment(
4 "cmt_12345", // 댓글 ID
5 "brd_67890", // broadcastId (선택사항)
6 "tenant_abc", // tenantId (선택사항)
7 "sso_user_token_789" // sso (선택사항)
8 );
9};
10

투표 Internal Link

매개변수

이름타입필수설명
commentIdstringYes
directionstringNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PostVoteResponse

예시

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

배지 수여 Internal Link

매개변수

이름유형필수설명
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

응답

반환: PutAwardBadgeResponse

예시

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

스레드 닫기 Internal Link

Parameters

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

Response

반환: PutCloseThreadResponse

Example

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

배지 제거 Internal Link

Parameters

NameTypeRequiredDescription
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
tenantIdstringNo
ssostringNo

Response

Returns: PutRemoveBadgeResponse

Example

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

스레드 재개 Internal Link

매개변수

이름유형필수설명
urlIdstringYes
tenantIdstringNo
ssostringNo

응답

반환: PutReopenThreadResponse

예제

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

신뢰 지수 설정 Internal Link

매개변수

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

응답

반환값: SetTrustFactorResponse

예제

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

중재자 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createModeratorBodyCreateModeratorBody

응답

반환: CreateModeratorResponse1

예시

createModerator 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9876";
4 const moderatorPayload: CreateModeratorBody = {
5 name: "Alice Johnson",
6 email: "alice.johnson@example.com"
7 // optional fields like description are omitted
8 };
9 const result: CreateModeratorResponse1 = await createModerator(tenantId, moderatorPayload);
10 console.log(result);
11}
12
13runExample();
14

중재자 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
sendEmailstringNo

응답

반환: DeleteModeratorResponse

예제

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

중재자 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetModeratorResponse1

예시

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

중재자들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
skipnumberNo

응답

반환: GetModeratorsResponse1

예시

getModerators 예시
Copy Copy
1
2async function fetchModerators(): Promise<void> {
3 const tenantId: string = "tenant-9876";
4 const skip: number = 30; // 선택적 페이지네이션 오프셋
5 const moderators: GetModeratorsResponse1 = await getModerators(tenantId, skip);
6 // 페이지네이션 없이 예시:
7 // const allModerators: GetModeratorsResponse1 = await getModerators(tenantId);
8}
9

초대 전송 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
fromNamestringYes

응답

반환: SendInviteResponse

예시

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

중재자 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
updateModeratorBodyUpdateModeratorBody

응답

반환: UpdateModeratorResponse

예시

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

알림 수 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes

응답

반환: DeleteNotificationCountResponse

예제

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

캐시된 알림 수 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetCachedNotificationCountResponse1

예시

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

알림 수 조회 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo

응답

반환: GetNotificationCountResponse1

예시

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

알림 조회 Internal Link

매개변수

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

응답

반환: GetNotificationsResponse1

예시

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

알림 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateNotificationBodyUpdateNotificationBodyYes
userIdstringNo

응답

반환: UpdateNotificationResponse

예제

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

V1 페이지 반응 생성 Internal Link

매개변수

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

응답

반환: CreateV1PageReactResponse

예시

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

V2 페이지 반응 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
urlIdstringYes
idstringYes
titlestringNo

응답

반환: CreateV2PageReactResponse

예제

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

V1 페이지 반응 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring

응답

반환: DeleteV1PageReactResponse

예시

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

V2 페이지 반응 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring
idstring

응답

반환: DeleteV2PageReactResponse

예제

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

V1 페이지 좋아요 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes

응답

반환: GetV1PageLikesResponse

예시

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

V2 페이지 반응 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
urlIdstring

응답

반환: GetV2PageReactsResponse

예시

getV2PageReacts 예시
Copy Copy
1
2async function demoGetPageReacts(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant";
4 const urlId: string = "article-2024-06-01";
5
6 const reacts: GetV2PageReactsResponse = await getV2PageReacts(tenantId, urlId);
7
8 // 선택적 속성 접근 예시
9 const customConfig: CustomConfigParameters | undefined = reacts.customConfig;
10 console.log(reacts);
11}
12
13demoGetPageReacts();
14

V2 페이지 반응 사용자 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
idstringYes

응답

Returns: GetV2PageReactUsersResponse1

예시

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

페이지 추가 Internal Link


매개변수

이름유형필수설명
tenantIdstringYes
createAPIPageDataCreateAPIPageDataYes

응답

반환: AddPageAPIResponse

예시

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

페이지 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: DeletePageAPIResponse

예시

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

오프라인 사용자 조회 Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
페이지에 과거에 댓글을 남겼지만 현재 온라인이 아닌 댓글 작성자들. displayName 순으로 정렬됩니다.

Use this after exhausting /users/online to render a "Members" section.
/users/online을 모두 사용한 후에 "Members" 섹션을 렌더링하기 위해 사용합니다.

Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.
commenterName에 대한 커서 페이지네이션: 서버가 부분 {tenantId, urlId, commenterName} 인덱스를 afterName 이후로 $gt를 사용해 이동하며, $skip 비용이 없습니다.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
afterNamestringNo
afterUserIdstringNo

Response

Returns: GetOfflineUsersResponse

Example

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

온라인 사용자 조회 Internal Link

현재 페이지에 실시간으로 접속 중인 사용자: 현재 웹소켓 세션이 페이지에 구독돼 있는 사람들입니다.
익명 사용자 수(anonCount)와 총 사용자 수(totalCount)를 반환합니다(방 전체 구독자 수, 열거되지 않은 익명 뷰어 포함).

매개변수

이름타입필수설명
tenantIdstring
urlIdstring
afterNamestring아니오
afterUserIdstring아니오

응답

반환: GetOnlineUsersResponse

예시

getOnlineUsers 예시
Copy Copy
1
2async function demoOnlineUsers() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_98765";
5
6 // 선택적 페이지 매김 매개변수가 있는 경우
7 const pagedResult: GetOnlineUsersResponse = await getOnlineUsers(
8 tenantId,
9 urlId,
10 "alice_smith",
11 "user_9"
12 );
13
14 // 선택적 페이지 매김 매개변수가 없는 경우
15 const fullResult: GetOnlineUsersResponse = await getOnlineUsers(tenantId, urlId);
16}
17

URL ID로 페이지 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring
urlIdstring

응답

반환: GetPageByURLIdAPIResponse

예제

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

페이지들 조회 Internal Link


매개변수

이름유형필수설명
tenantIdstringYes

응답

반환: GetPagesAPIResponse

예제

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

공개 페이지 조회 Internal Link


테넌트의 페이지를 나열합니다. FChat 데스크톱 클라이언트가 방 목록을 채우는 데 사용됩니다.
각 페이지에 대해 해결된 커스텀 구성에서 enableFChat이 true이어야 합니다.
SSO가 필요한 페이지는 요청한 사용자의 그룹 액세스를 기준으로 필터링됩니다.

매개변수

이름형식필수설명
tenantIdstring
cursorstring아니오
limitnumber아니오
qstring아니오
sortByPagesSortBy아니오
hasCommentsboolean아니오

응답

반환: GetPagesPublicResponse

예시

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

사용자 정보 조회 Internal Link

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

Parameters

NameTypeRequiredDescription
tenantIdstring
idsstring

Response

Returns: GetUsersInfoResponse

Example

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

페이지 부분 수정 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateAPIPageDataUpdateAPIPageDataYes

응답

Returns: PatchPageAPIResponse

예시

patchPage 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const pageId: string = "page_98765";
5
6 const updateData: UpdateAPIPageData = {
7 title: "Updated FAQ Page"
8 // description?: string 은 생략할 수 있습니다
9 };
10
11 const response: PatchPageAPIResponse = await patchPage(tenantId, pageId, updateData);
12})();
13

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

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: DeletePendingWebhookEventResponse

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo

응답

반환: GetPendingWebhookEventCountResponse1

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo
skipnumberNo

응답

반환: GetPendingWebhookEventsResponse1

예시

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

질문 설정 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyYes

응답

반환: CreateQuestionConfigResponse1

예시

createQuestionConfig 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const customOption: QuestionConfigCustomOptionsInner = {
5 label: "Option A",
6 value: "a",
7};
8
9const createQuestionConfigBody: CreateQuestionConfigBody = {
10 questionText: "What is your favorite color?",
11 isActive: true,
12 // 선택적 필드는 생략할 수 있습니다
13 customOptions: [customOption],
14};
15
16const response: CreateQuestionConfigResponse1 = await createQuestionConfig(
17 tenantId,
18 createQuestionConfigBody
19);
20

질문 설정 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: DeleteQuestionConfigResponse

예시

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

질문 설정 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetQuestionConfigResponse1

예시

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

질문 설정들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
skipnumberNo

응답

반환: GetQuestionConfigsResponse1

예시

getQuestionConfigs 예제
Copy Copy
1
2async function fetchQuestionConfigs() {
3 const tenantId: string = "tenant-9876";
4
5 // 선택적 'skip' 매개변수 없이 호출
6 const configsWithoutSkip: GetQuestionConfigsResponse1 = await getQuestionConfigs(tenantId);
7
8 // 선택적 'skip' 매개변수와 함께 호출
9 const skip: number = 10;
10 const configsWithSkip: GetQuestionConfigsResponse1 = await getQuestionConfigs(tenantId, skip);
11
12 console.log(configsWithoutSkip, configsWithSkip);
13}
14

질문 설정 업데이트 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

응답

반환: UpdateQuestionConfigResponse

예제

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

질문 결과 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyYes

응답

Returns: CreateQuestionResultResponse1

예시

createQuestionResult 예제
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3
4const metaItem: MetaItem = {
5 key: "campaign",
6 value: "spring-launch"
7};
8
9const questionResultBody: CreateQuestionResultBody = {
10 questionId: "question-42",
11 answer: "Positive",
12 metadata: [metaItem]
13 // notes와 같은 선택적 필드는 생략되었습니다
14};
15
16const result: CreateQuestionResultResponse1 = await createQuestionResult(tenantId, questionResultBody);
17

질문 결과 삭제 Internal Link

매개변수

이름형식필수설명
tenantIdstring
idstring

응답

반환: DeleteQuestionResultResponse

예시

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

질문 결과 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetQuestionResultResponse1

예시

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

질문 결과들 조회 Internal Link

Parameters

이름타입필수설명
tenantIdstringYes
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

Response

반환: GetQuestionResultsResponse1

Example

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

질문 결과 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

응답

Returns: UpdateQuestionResultResponse

예제

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

질문 결과 집계 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
timeBucketAggregateTimeBucketNo
startDateDateNo
forceRecalculatebooleanNo

응답

반환: AggregateQuestionResultsResponse1

예제

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

질문 결과 일괄 집계 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstring
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequest
forceRecalculateboolean아니오

Response

반환: BulkAggregateQuestionResultsResponse1

Example

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

댓글과 질문 결과 결합 Internal Link

매개변수

이름유형필수설명
tenantIdstring
questionIdstring아니오
questionIdsArray아니오
urlIdstring아니오
startDateDate아니오
forceRecalculateboolean아니오
minValuenumber아니오
maxValuenumber아니오
limitnumber아니오

응답

반환: CombineCommentsWithQuestionResultsResponse

예시

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

SSO 사용자 추가 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
createAPISSOUserDataCreateAPISSOUserDataYes

응답

Returns: AddSSOUserAPIResponse

예시

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

SSO 사용자 삭제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
deleteCommentsbooleanNo
commentDeleteModestringNo

응답

Returns: DeleteSSOUserAPIResponse

예시

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

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

매개변수

이름타입필수설명
tenantIdstringYes
emailstringYes

응답

반환: GetSSOUserByEmailAPIResponse

예시

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

ID로 SSO 사용자 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes

응답

Returns: GetSSOUserByIdAPIResponse

예제

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

SSO 사용자들 조회 Internal Link

매개변수

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

응답

Returns: GetSSOUsersResponse

예시

getSSOUsers 예시
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4
5 // 옵션 `skip` 없이 호출
6 const firstPage: GetSSOUsersResponse = await getSSOUsers(tenantId);
7
8 // 옵션 `skip`와 함께 호출
9 const secondPage: GetSSOUsersResponse = await getSSOUsers(tenantId, 100);
10
11 console.log(firstPage, secondPage);
12}
13
14runExample();
15

SSO 사용자 부분 수정 Internal Link

매개변수

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

응답

반환: PatchSSOUserAPIResponse

예시

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

SSO 사용자 전체 대체 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes
updateAPISSOUserDataUpdateAPISSOUserDataYes
updateCommentsbooleanNo

응답

반환: PutSSOUserAPIResponse

예시

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

구독 생성 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataYes

Response

반환: CreateSubscriptionAPIResponse

Example

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

구독 삭제 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
userIdstringNo

Response

Returns: DeleteSubscriptionAPIResponse

Example

deleteSubscription 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9876";
4 const subscriptionId: string = "sub_54321";
5 const userId: string = "user_abc123";
6
7 // 선택적 userId 포함
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // 선택적 userId 없이
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

구독들 조회 Internal Link

매개변수

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

응답

반환: GetSubscriptionsAPIResponse

예시

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

구독 업데이트 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

응답

반환: UpdateSubscriptionAPIResponse

예시

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

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

매개변수

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

응답

반환: GetTenantDailyUsagesResponse1

예시

getTenantDailyUsages 예시
Copy Copy
1
2async function fetchDailyUsage() {
3 const tenantId: string = "tenant-9876";
4 const yearNumber: number = 2024;
5 const monthNumber: number = 5; // 5월
6 const dayNumber: number = 12;
7 const skip: number = 0;
8
9 const fullResult: GetTenantDailyUsagesResponse1 = await getTenantDailyUsages(
10 tenantId,
11 yearNumber,
12 monthNumber,
13 dayNumber,
14 skip
15 );
16
17 // 필수 매개변수와 하나의 선택 매개변수만 사용
18 const partialResult: GetTenantDailyUsagesResponse1 = await getTenantDailyUsages(
19 tenantId,
20 yearNumber
21 );
22
23 console.log(fullResult, partialResult);
24}
25
26fetchDailyUsage();
27

테넌트 패키지 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

응답

반환: CreateTenantPackageResponse1

예시

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

테넌트 패키지 삭제 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

Returns: DeleteTenantPackageResponse

Example

deleteTenantPackage 예시
Copy Copy
1
2async function removeTenantPackage(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const packageId: string = "pkg_67890";
5
6 const result: DeleteTenantPackageResponse = await deleteTenantPackage(tenantId, packageId);
7 // 필요에 따라 결과 사용
8}
9
10removeTenantPackage();
11

테넌트 패키지 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetTenantPackageResponse1

예시

getTenantPackage 예제
Copy Copy
1
2async function fetchTenantPackage(): Promise<void> {
3 const tenantId: string = "acme-tenant-2024";
4 const packageId: string = "premium-package-01";
5 const response: GetTenantPackageResponse1 = await getTenantPackage(tenantId, packageId);
6
7 // 응답의 선택적 필드
8 const tenantPackage: TenantPackage | undefined = response.tenantPackage;
9 const customConfig: CustomConfigParameters | undefined = response.customConfigParameters;
10}
11

테넌트 패키지들 조회 Internal Link

Parameters

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

응답

반환: GetTenantPackagesResponse1

예시

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

테넌트 패키지 교체 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring
replaceTenantPackageBodyReplaceTenantPackageBody

응답

반환: ReplaceTenantPackageResponse

예제

replaceTenantPackage 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant-01";
4 const packageId: string = "pkg-2024-annual";
5
6 const config: CustomConfigParameters = {
7 // 여기 사용자 정의 구성 필드
8 };
9
10 const body: ReplaceTenantPackageBody = {
11 name: "Enterprise Package",
12 // 선택적 사용자 정의 구성
13 customConfig: config,
14 };
15
16 const response: ReplaceTenantPackageResponse = await replaceTenantPackage(tenantId, packageId, body);
17 console.log(response);
18})();
19

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

매개변수

이름유형필수설명
tenantIdstring
idstring
updateTenantPackageBodyUpdateTenantPackageBody

응답

반환: UpdateTenantPackageResponse

예제

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

테넌트 사용자 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring
createTenantUserBodyCreateTenantUserBody

응답

반환: CreateTenantUserResponse1

예시

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

테넌트 사용자 삭제 Internal Link

매개변수

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

응답

반환: DeleteTenantUserResponse

예시

deleteTenantUser 예시
Copy Copy
1
2async function demoDeleteTenantUser() {
3 const tenantId: string = "acme-corp-tenant";
4 const userId: string = "user-9876";
5
6 // 하드 삭제 모드를 사용하여 사용자를 삭제하고 모든 댓글을 삭제합니다
7 const resultWithOptions: DeleteTenantUserResponse = await deleteTenantUser(
8 tenantId,
9 userId,
10 "true",
11 "hard"
12 );
13
14 // 댓글을 제거하지 않고 사용자를 삭제합니다 (기본 동작)
15 const resultBasic: DeleteTenantUserResponse = await deleteTenantUser(tenantId, userId);
16}
17

테넌트 사용자 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: GetTenantUserResponse1

예시

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

테넌트 사용자들 조회 Internal Link

매개변수

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

응답

반환: GetTenantUsersResponse1

예시

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

테넌트 사용자 교체 Internal Link

매개변수

이름타입필수설명
tenantIdstring
idstring
replaceTenantUserBodyReplaceTenantUserBody
updateCommentsstring아니오

응답

반환: ReplaceTenantUserResponse

예시

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

매개변수

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

응답

반환: SendLoginLinkResponse

예시

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

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

매개변수

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

응답

반환: UpdateTenantUserResponse

예시

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

테넌트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

응답

반환: CreateTenantResponse1

예시

createTenant 예시
Copy Copy
1
2async function example() {
3 const tenantId: string = 'tenant-2024-01';
4 const createTenantBody: CreateTenantBody = {
5 // 필수 필드
6 name: 'Acme International',
7 // 필요에 따라 선택적 필드를 추가할 수 있습니다, 예:
8 // billingInfo: { address: '123 Main St', city: 'Metropolis' } as BillingInfo,
9 };
10 const response: CreateTenantResponse1 = await createTenant(tenantId, createTenantBody);
11 console.log(response);
12}
13

테넌트 삭제 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
surestringNo

Response

Returns: DeleteTenantResponse

Example

deleteTenant 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const id: string = "resource_98765";
5 const sure: string = "confirm";
6
7 // 선택적인 'sure' 매개변수를 사용하여 호출
8 const responseWithSure: DeleteTenantResponse = await deleteTenant(tenantId, id, sure);
9 console.log(responseWithSure);
10
11 // 선택적인 'sure' 매개변수 없이 호출
12 const responseWithoutSure: DeleteTenantResponse = await deleteTenant(tenantId, id);
13 console.log(responseWithoutSure);
14}
15
16runExample();
17

테넌트 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes

응답

반환: GetTenantResponse1

예시

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

테넌트들 조회 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
metastringNo
skipnumberNo

응답

반환: GetTenantsResponse1

예제

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

테넌트 업데이트 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateTenantBodyUpdateTenantBodyYes

응답

반환: UpdateTenantResponse

예시

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

티켓 상태 변경 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

응답

반환: ChangeTicketStateResponse1

예시

changeTicketState 예제
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-97123";
4const ticketId: string = "ticket-45001";
5
6const changeTicketStateBody: ChangeTicketStateBody = {
7 state: "closed",
8 // 본문에 선택적 필드
9 comment: "Issue resolved after code fix"
10};
11
12const response: ChangeTicketStateResponse1 = await changeTicketState(
13 tenantId,
14 userId,
15 ticketId,
16 changeTicketStateBody
17);
18

티켓 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
userIdstringYes
createTicketBodyCreateTicketBodyYes

응답

반환: CreateTicketResponse1

예시

createTicket 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const userId: string = "user_98765";
4
5const ticketBody: CreateTicketBody = {
6 subject: "Issue with payment processing"
7 // description?: string은 선택 사항이며 생략되었습니다
8};
9
10const response: CreateTicketResponse1 = await createTicket(tenantId, userId, ticketBody);
11// 응답의 선택적 필드를 사용하는 예시
12// console.log(response.ticket?.id);
13

티켓 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
userIdstringNo

응답

Returns: GetTicketResponse1

예시

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

티켓들 조회 Internal Link

매개변수

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

응답

반환: GetTicketsResponse1

예시

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

번역 조회 Internal Link

매개변수

이름유형필수설명
namespacestringYes
componentstringYes
localestringNo
useFullTranslationIdsbooleanNo

응답

반환: GetTranslationsResponse1

예시

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

이미지 업로드 Internal Link

이미지를 업로드하고 크기를 조정하기

매개변수

이름유형필수설명
tenantIdstringYes
fileBlobYes
sizePresetSizePresetNo
urlIdstringNo

응답

반환: UploadImageResponse

예시

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

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

매개변수

이름형식필수설명
tenantIdstringYes
idstringYes

응답

반환: GetUserBadgeProgressByIdResponse

예제

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

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

매개변수

이름유형필수설명
tenantIdstringYes
userIdstringYes

응답

반환: GetUserBadgeProgressByUserIdResponse

예제

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

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

매개변수

이름타입필수설명
tenantIdstringYes
userIdstringNo
limitnumberNo
skipnumberNo

응답

반환: GetUserBadgeProgressListResponse

예시

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

사용자 배지 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsYes

응답

반환: CreateUserBadgeResponse

예시

createUserBadge 예제
Copy Copy
1
2const tenantId: string = "company-42";
3
4const badgeParams: CreateUserBadgeParams = {
5 name: "Community Champion",
6 iconUrl: "https://assets.example.com/badges/champion.png",
7 // 설명은 선택 사항이며 여기서는 생략되었습니다
8};
9
10const result: CreateUserBadgeResponse = await createUserBadge(tenantId, badgeParams);
11

사용자 배지 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring
idstring

응답

반환: DeleteUserBadgeResponse

예시

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

사용자 배지 조회 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

응답

반환: GetUserBadgeResponse

예시

getUserBadge 예시
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant-001";
4 const badgeId: string = "badge-5f9d3a2b";
5
6 const badgeResponse: GetUserBadgeResponse = await getUserBadge(tenantId, badgeId);
7
8 // 옵션 필드를 안전하게 접근
9 const badgeName: string | undefined = badgeResponse.userBadge?.name;
10 console.log(`Badge ID: ${badgeId}, Name: ${badgeName ?? "Unnamed"}`);
11}
12
13runExample();
14

사용자 배지들 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstring
userIdstring아니오
badgeIdstring아니오
typenumber아니오
displayedOnCommentsboolean아니오
limitnumber아니오
skipnumber아니오

응답

반환: GetUserBadgesResponse

예제

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

사용자 배지 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateUserBadgeParamsUpdateUserBadgeParamsYes

응답

반환: UpdateUserBadgeResponse

예시

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

사용자 알림 수 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
ssostringNo

응답

반환: GetUserNotificationCountResponse1

예시

getUserNotificationCount 예제
Copy Copy
1
2async function demoGetUserNotificationCount() {
3 const tenantId: string = "acme-corp-01";
4
5 // 선택적 SSO 토큰으로 호출
6 const countWithSSO: GetUserNotificationCountResponse1 = await getUserNotificationCount(
7 tenantId,
8 "sso-token-abc123"
9 );
10
11 // SSO 토큰 없이 호출
12 const countWithoutSSO: GetUserNotificationCountResponse1 = await getUserNotificationCount(
13 tenantId
14 );
15
16 console.log(countWithSSO, countWithoutSSO);
17}
18

사용자 알림 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringNo
pageSizenumberNo
afterIdstringNo
includeContextbooleanNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
includeTranslationsbooleanNo
includeTenantNotificationsbooleanNo
ssostringNo

응답

반환: GetUserNotificationsResponse

예시

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

사용자 알림 수 초기화 Internal Link

매개변수

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

응답

반환: ResetUserNotificationCountResponse

예시

resetUserNotificationCount 예제
Copy Copy
1
2async function demoResetCount() {
3 const tenantId: string = "acme-corp-tenant";
4 const sso: string = "sso-user-9876";
5
6 // 선택적 sso 매개변수를 사용하여 호출
7 const resultWithSso: ResetUserNotificationCountResponse = await resetUserNotificationCount(tenantId, sso);
8
9 // 선택적 sso 매개변수 없이 호출
10 const resultWithoutSso: ResetUserNotificationCountResponse = await resetUserNotificationCount(tenantId);
11
12 console.log(resultWithSso, resultWithoutSso);
13}
14

사용자 알림 초기화 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
afterIdstringNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
ssostringNo

응답

반환: ResetUserNotificationsResponse1

예시

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

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

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

매개변수

이름타입필수설명
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

응답

반환: UpdateUserNotificationCommentSubscriptionStatusResponse

예시

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

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

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

매개변수

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
urlstringYes
pageTitlestringYes
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumYes
ssostringNo

응답

반환: UpdateUserNotificationPageSubscriptionStatusResponse

예시

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

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

매개변수

이름유형필수설명
tenantIdstringYes
notificationIdstringYes
newStatusUpdateUserNotificationStatusNewStatusEnumYes
ssostringNo

응답

반환: UpdateUserNotificationStatusResponse

예시

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

사용자 접속 상태들 조회 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
urlIdWSstringYes
userIdsstringYes

Response

반환: GetUserPresenceStatusesResponse1

Example

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

사용자 검색 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
usernameStartsWithstringNo
mentionGroupIdsArrayNo
ssostringNo
searchSectionSearchUsersSearchSectionEnumNo

응답

반환: SearchUsersResponse1

예제

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

사용자 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetUserResponse1

예시

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

투표 생성 Internal Link

매개변수

이름형식필수설명
tenantIdstringYes
commentIdstringYes
directionCreateVoteDirectionEnumYes
userIdstringNo
anonUserIdstringNo

응답

반환: CreateVoteResponse

예시

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

투표 삭제 Internal Link

Parameters

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

Response

반환: DeleteVoteResponse

Example

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

투표 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes

응답

반환: GetVotesResponse1

예시

getVotes 예시
Copy Copy
1
2async function fetchVotes(): Promise<void> {
3 const tenantId: string = "acme-corp-01";
4 const urlId: string = "article-2024-05-15";
5
6 const response: GetVotesResponse1 = await getVotes(tenantId, urlId);
7
8 // 응답에서 선택적 필드에 접근하는 예시
9 const firstVoteId: string | undefined = response?.votes?.[0]?.id;
10}
11

사용자별 투표 조회 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
userIdstringNo
anonUserIdstringNo

응답

반환값: GetVotesForUserResponse1

예시

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

도움을 원하십니까?

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

기여

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