FastComments.com

FastComments JavaScript/TypeScript SDK


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

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

저장소

GitHub에서 보기


AI 코딩 에이전트 Internal Link

skills.sh

코딩 에이전트에게 FastComments 컨텍스트를 제공하세요 - 위젯, 구성, Secure SSO, REST API 및 SDKs:

npx skills add fastcomments/skills

Claude Code, Codex, Cursor, Copilot, Gemini 및 기타 모든 에이전트와 함께 작동하며, skills CLI 가 지원합니다.

설치 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

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

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

매개변수

이름유형필수설명
createAgentTenantBodyCreateAgentTenantBody예

응답

반환: CreateAgentTenantResponse

예시

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

집계 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

매개변수

이름유형필수설명
tenantIdstring예
limitnumber아니오
skipnumber아니오
orderSORTDIR아니오
afternumber아니오
beforenumber아니오
usernamestring아니오
ipstring아니오
crudTypestring아니오
resourceNamestring아니오
targetIdstring아니오
targetstring아니오
includeManagedTenantsboolean아니오

응답

반환: GetAuditLogsResponse

예시

getAuditLogs 예제
Copy Copy
1
2async function fetchAuditLogs(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = { direction: "DESC" };
7 const after: number = Date.now() - 86400000; // 1일 전
8 const before: number = Date.now();
9 const username: string = "alice.smith";
10 const ip: string = "198.51.100.23";
11 const crudType: string = "CREATE";
12 const resourceName: string = "thread";
13 const targetId: string = "thread_45678";
14 const target: string = "forum_12";
15 const includeManagedTenants: boolean = false;
16
17 const logs: GetAuditLogsResponse = await getAuditLogs(
18 tenantId,
19 limit,
20 skip,
21 order,
22 after,
23 before,
24 username,
25 ip,
26 crudType,
27 resourceName,
28 targetId,
29 target,
30 includeManagedTenants
31 );
32
33 console.log(logs);
34}
35
36fetchAuditLogs();
37

공개 댓글 차단 Internal Link

매개변수

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

응답

반환: BlockSuccess

예시

blockFromCommentPublic 예시
Copy Copy
1
2async function demoBlock() {
3 const tenantId: string = "tenant_9f8b7c";
4 const commentId: string = "comment_3e2d1a";
5 const blockParams: PublicBlockFromCommentParams = {
6 reason: "harassment",
7 expiresInHours: 48
8 };
9 const ssoToken: string = "sso_5g6h7i";
10
11 const resultWithSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams, ssoToken);
12 const resultWithoutSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams);
13}
14

공개 댓글 차단 해제 Internal Link

매개변수

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

응답

반환: UnblockSuccess

예시

unBlockCommentPublic 예시
Copy Copy
1
2const tenantId: string = "c9f1e2a4-5b6d-4f8a-9c2e-123456789abc";
3const commentId: string = "d3b2c1a9-8f7e-4d6b-9a0b-987654321def";
4
5const unblockParams: PublicBlockFromCommentParams = {
6 reason: "User request resolved",
7 moderatorId: "mod-456"
8};
9
10const ssoToken: string = "sso-token-789xyz";
11
12const unblockResult: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams, ssoToken);
13const unblockResultNoSso: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams);
14

차단된 댓글 확인 Internal Link

Parameters

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

Response

반환: CheckBlockedCommentsResponse

Example

checkedCommentsForBlocked 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentIds: string = "cmt_9876,cmt_5432";
5 const ssoToken: string = "sso_user_abc123";
6
7 const responseWithSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8 const responseWithoutSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds);
9})();
10

댓글에서 사용자 차단 Internal Link

매개변수

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

응답

반환: BlockSuccess

예시

blockUserFromComment 예시
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant-123e4567-e89b-12d3-a456-426614174000";
4 const commentId: string = "cmt-9876543210";
5 const blockParams: BlockFromCommentParams = {
6 reason: "spam",
7 durationHours: 24
8 };
9 const userId: string = "user-abc123";
10 const anonUserId: string = "anon-xyz789";
11 const result: BlockSuccess = await blockUserFromComment(tenantId, commentId, blockParams, userId, anonUserId);
12 console.log(result);
13}
14demo();
15

공개 댓글 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
broadcastIdstringYes
commentDataCommentDataYes
sessionIdstringNo
ssostringNo

응답

반환: SaveCommentsResponseWithPresence

예시

createCommentPublic 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant-456";
4 const urlId: string = "url-789";
5 const broadcastId: string = "broadcast-101112";
6 const commentData: CommentData = { text: "This is a comment", userId: "user-123" };
7 const sessionId: string = "session-131415";
8 const sso: string = "sso-token-xyz";
9 const result: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
10 const resultNoOpt: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData);
11}
12

댓글 삭제 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
contextUserIdstringNo
isLivebooleanNo

응답

반환: DeleteCommentResult

예시

deleteComment 예시
Copy Copy
1
2async function removeComment(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_9876";
5 const contextUserId: string = "user_42";
6 const result: DeleteCommentResult = await deleteComment(tenantId, commentId, contextUserId, true);
7 console.log(result);
8}
9removeComment();
10

공개 댓글 삭제 Internal Link

매개변수

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

응답

반환: PublicAPIDeleteCommentResponse

예시

deleteCommentPublic 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const editKey: string = "edit_abc123";
7 const sso: string = "sso_token_xyz";
8
9 const resultWithoutOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId);
10 const resultWithOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
11})();
12

댓글 투표 삭제 Internal Link

매개변수

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

응답

반환: VoteDeleteResponse

예시

deleteCommentVote 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const voteId: string = "vote_555";
5const urlId: string = "url_abcde";
6const broadcastId: string = "brd_2023";
7const editKey: string = "edit_abc123"; // 선택 사항
8const ssoToken: string = "sso_token_xyz"; // 선택 사항
9
10// 필수 매개변수와 하나의 선택적 매개변수만 사용하여 호출
11const deleteResult: VoteDeleteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18);
19
20// 두 선택적 매개변수를 모두 사용하여 호출
21const deleteResultWithSSO: VoteDeleteResponse = await deleteCommentVote(
22 tenantId,
23 commentId,
24 voteId,
25 urlId,
26 broadcastId,
27 editKey,
28 ssoToken
29);
30

댓글 신고 Internal Link

매개변수

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

응답

반환: FlagCommentResponse

예시

flagComment 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const userId: string = "user-42";
6 const anonUserId: string = "anon-abc123";
7
8 const response: FlagCommentResponse = await flagComment(tenantId, commentId, userId, anonUserId);
9 console.log(response);
10})();
11

댓글 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: APIGetCommentResponse

예시

getComment 예제
Copy Copy
1
2async function fetchComment(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 const response: APIGetCommentResponse = await getComment(tenantId, commentId);
7 const comment: APIComment | undefined = response.comment;
8
9 // 선택적 필드 시연
10 const badgeInfo: CommentUserBadgeInfo | undefined = comment?.user?.badge;
11 const hashtags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashtags;
12 const mentions: CommentUserMentionInfo[] | undefined = comment?.user?.mentions;
13 const meta: APICommentBaseMeta | undefined = comment?.meta;
14
15 console.log(comment?.id, badgeInfo?.type);
16}
17
18fetchComment();
19

댓글 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
pagenumberNo
limitnumberNo
skipnumberNo
asTreebooleanNo
skipChildrennumberNo
limitChildrennumberNo
maxTreeDepthnumberNo
urlIdstringNo
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo
fromDatenumberNo
toDatenumberNo

응답

반환: APIGetCommentsResponse

예시

getComments 예시
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const page: number = 1;
5 const limit: number = 50;
6 const asTree: boolean = false;
7 const direction: SortDirections = "asc";
8 const fromDate: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30 days ago
9 const toDate: number = Date.now();
10
11 const commentsResponse: APIGetCommentsResponse = await getComments(
12 tenantId,
13 page,
14 limit,
15 undefined,
16 asTree,
17 undefined,
18 undefined,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 undefined,
24 undefined,
25 undefined,
26 direction,
27 fromDate,
28 toDate
29 );
30
31 console.log(commentsResponse);
32}
33

공개 댓글 목록 가져오기 Internal Link

요청
tenantId
urlId

매개변수

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

응답

반환: GetCommentsResponseWithPresencePublicComment

예시

getCommentsPublic 예제
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "tenant-42",
4 urlId: string = "post-2023-09-15",
5 page: number = 1,
6 direction: SortDirections = "desc",
7 limit: number = 30,
8 includeConfig: boolean = true,
9 locale: string = "en-US",
10 isCrawler: boolean = false,
11 asTree: boolean = true,
12 maxTreeDepth: number = 2,
13 searchText: string = "fastcomments",
14 hashTags: string[] = ["fastcomments","typescript"],
15 userId: string = "user-123";
16
17 const result: GetCommentsResponseWithPresencePublicComment = await getCommentsPublic(
18 tenantId,
19 urlId,
20 page,
21 direction,
22 undefined,
23 undefined,
24 undefined,
25 limit,
26 undefined,
27 undefined,
28 undefined,
29 includeConfig,
30 undefined,
31 undefined,
32 locale,
33 undefined,
34 isCrawler,
35 undefined,
36 asTree,
37 maxTreeDepth,
38 undefined,
39 undefined,
40 searchText,
41 hashTags,
42 userId
43 );
44}
45

댓글 텍스트 가져오기 Internal Link

매개변수

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

응답

반환: PublicAPIGetCommentTextResponse

예시

getCommentText 예시
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const commentId: string = "comment-987654321";
4const editKey: string = "edit-key-abc123";
5const sso: string = "sso-token-xyz789";
6
7const commentWithEdit: PublicAPIGetCommentTextResponse = await getCommentText(
8 tenantId,
9 commentId,
10 editKey,
11 sso
12);
13
14const commentBasic: PublicAPIGetCommentTextResponse = await getCommentText(
15 tenantId,
16 commentId
17);
18

댓글 투표 사용자 이름 가져오기 Internal Link

매개변수

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

응답

반환: GetCommentVoteUserNamesSuccessResponse

예시

getCommentVoteUserNames 예시
Copy Copy
1
2async function example() {
3 const tenantId: string = 'tenant-9876';
4 const commentId: string = 'comment-abc123';
5 const dir: number = 1;
6 const ssoToken: string = 'sso-xyz789';
7
8 const resultWithSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9 const resultWithoutSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir);
10}
11

댓글 잠금 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

lockComment 예제
Copy Copy
1
2async function demoLockComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const ssoToken: string = "sso_user_abc";
7
8 const resultWithSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId);
10}
11
12demoLockComment();
13

댓글 고정 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

응답

반환: ChangeCommentPinStatusResponse

예시

pinComment 예제
Copy Copy
1
2async function demoPinComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6
7 const resultWithoutSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId);
8 const ssoToken: string = "sso_abcde12345";
9 const resultWithSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId, ssoToken);
10}
11
12demoPinComment();
13

댓글 저장 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

응답

반환: APISaveCommentResponse

예제

saveComment 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const commentParams: CreateCommentParams = {
5 content: "This is a comment with a mention and a hashtag.",
6 userId: "user_987",
7 mentions: [
8 { userId: "user_123", start: 27, end: 34 }
9 ] as CommentUserMentionInfo[],
10 hashtags: [
11 { tag: "feedback", start: 45, end: 53 }
12 ] as CommentUserHashTagInfo[],
13 poll: {
14 question: "Do you like this feature?",
15 options: ["Yes", "No"]
16 } as CommentPollInput,
17};
18
19const response: APISaveCommentResponse = await saveComment(
20 tenantId,
21 commentParams,
22 true, // isLive
23 true, // doSpamCheck
24 false, // sendEmails
25 true // populateNotifications
26);
27

댓글 일괄 저장 Internal Link

Parameters

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

응답

반환: Array<SaveCommentsBulkResponse

예시

saveCommentsBulk 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mention1: CommentUserMentionInfo = {
5 userId: "user_002",
6 start: 10,
7 end: 20,
8};
9
10const hashtag1: CommentUserHashTagInfo = {
11 tag: "news",
12 start: 30,
13 end: 35,
14};
15
16const poll1: CommentPollInput = {
17 question: "Did you find this helpful?",
18 options: ["Yes", "No"],
19};
20
21const commentA: CreateCommentParams = {
22 content: "This is a great article!",
23 userId: "user_001",
24 mentions: [mention1],
25 hashtags: [hashtag1],
26 poll: poll1,
27};
28
29const commentB: CreateCommentParams = {
30 content: "I have a question about the topic.",
31 userId: "user_003",
32};
33
34const createCommentParams: CreateCommentParams[] = [commentA, commentB];
35
36const isLive: boolean = true;
37const doSpamCheck: boolean = false;
38const sendEmails: boolean = true;
39const populateNotifications: boolean = false;
40
41const results: SaveCommentsBulkResponse[] = await saveCommentsBulk(
42 tenantId,
43 createCommentParams,
44 isLive,
45 doSpamCheck,
46 sendEmails,
47 populateNotifications
48);
49

댓글 텍스트 설정 Internal Link

매개변수

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

응답

반환: PublicAPISetCommentTextResponse

예시

setCommentText 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6 const commentTextUpdateRequest: CommentTextUpdateRequest = {
7 text: "Revised comment text with additional details."
8 };
9 const editKey: string = "edit_abc123";
10 const sso: string = "sso_token_456def";
11
12 const response: PublicAPISetCommentTextResponse = await setCommentText(
13 tenantId,
14 commentId,
15 broadcastId,
16 commentTextUpdateRequest,
17 editKey,
18 sso
19 );
20})();
21

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

매개변수

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

응답

반환: UnblockSuccess

예시

unBlockUserFromComment 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const commentId: string = "comment-4a3b2c1d";
5 const params: UnBlockFromCommentParams = {
6 reason: "User appealed the block",
7 adminNote: "Reviewed and unblocked"
8 };
9 const userId: string = "user-5e6f7g8h";
10 const anonUserId: string = "anon-1a2b3c4d";
11 const result: UnblockSuccess = await unBlockUserFromComment(
12 tenantId,
13 commentId,
14 params,
15 userId,
16 anonUserId
17 );
18 console.log(result);
19})();
20

댓글 신고 해제 Internal Link

매개변수

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

응답

반환: FlagCommentResponse

예시

unFlagComment 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt-20230915-001";
5 const userId: string = "user-42";
6
7 const unflaggedByUser: FlagCommentResponse = await unFlagComment(tenantId, commentId, userId);
8 const unflaggedByAnon: FlagCommentResponse = await unFlagComment(tenantId, commentId, undefined, "anon-xyz");
9
10 console.log(unflaggedByUser, unflaggedByAnon);
11}
12

댓글 잠금 해제 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예제

unLockComment 예제
Copy Copy
1
2async function demoUnlock() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5 const broadcastId: string = "brd_987654321";
6 const ssoToken: string = "sso_abcdef123456";
7
8 const resultWithoutSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId);
9 const resultWithSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId, ssoToken);
10}
11

댓글 고정 해제 Internal Link

매개변수

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

응답

반환: ChangeCommentPinStatusResponse

예제

unPinComment 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const broadcastId: string = "broadcast-2023-09-15";
6 const ssoToken: string = "sso-abc123";
7
8 const result: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId);
10})();
11

댓글 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updatableCommentParamsUpdatableCommentParamsYes
contextUserIdstringNo
doSpamCheckbooleanNo
isLivebooleanNo

응답

Returns: APIEmptyResponse

예시

updateComment 예제
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "comment-9876543210";
4const updateParams: UpdatableCommentParams = {
5 content: "Edited comment content",
6 isApproved: true
7};
8
9const contextUserId: string = "user-11223344";
10const doSpamCheck: boolean = true;
11const isLive: boolean = false;
12
13const response: APIEmptyResponse = await updateComment(
14 tenantId,
15 commentId,
16 updateParams,
17 contextUserId,
18 doSpamCheck,
19 isLive
20);
21

댓글 투표 Internal Link

매개변수

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

응답

반환: VoteResponse

예시

voteComment 예시
Copy Copy
1
2async function runVote() {
3 const tenantId: string = 'tenant_001';
4 const commentId: string = 'cmt_987654';
5 const urlId: string = 'url_12345';
6 const broadcastId: string = 'brd_56789';
7 const voteBody: VoteBodyParams = { direction: 'up' };
8 const sessionId: string = 'sess_abc123';
9 const sso: string = 'sso_token_xyz';
10 const response: VoteResponse = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBody,
16 sessionId,
17 sso
18 );
19 console.log(response);
20}
21runVote();
22

사용자 댓글 가져오기 Internal Link

매개변수

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

응답

반환: GetCommentsForUserResponse

예시

getCommentsForUser 예제
Copy Copy
1
2const userId: string = '550e8400-e29b-41d4-a716-446655440000';
3const direction: SortDirections = SortDirections.Descending;
4const page: number = 3;
5const includei10n: boolean = true;
6const locale: string = 'fr-FR';
7const isCrawler: boolean = false;
8
9const commentsResponse: GetCommentsForUserResponse = await getCommentsForUser(
10 userId,
11 direction,
12 undefined,
13 page,
14 includei10n,
15 locale,
16 isCrawler
17);
18

도메인 설정 추가 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예

응답

반환: CreateEmailTemplateResponse

예시

createEmailTemplate 예시
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const templateBody: CreateEmailTemplateBody = {
5 name: "Weekly Summary",
6 subject: "Your weekly activity report",
7 // 선택적 필드
8 replyTo: "no-reply@myapp.com",
9 htmlContent: "<p>Hello \{{userName}}, here is your summary...</p>"
10};
11
12const response: CreateEmailTemplateResponse = await createEmailTemplate(tenantId, templateBody);
13
14console.log(response.template.id);
15

이메일 템플릿 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteEmailTemplate 예시
Copy Copy
1
2interface APIStatus {
3 code: number;
4 message: string;
5}
6
7interface APIEmptyResponse {
8 status?: APIStatus;
9}
10
11(async () => {
12 const tenantId: string = "tenant_12345";
13 const templateId: string = "template_987";
14
15 const result: APIEmptyResponse = await deleteEmailTemplate(tenantId, templateId);
16})();
17

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

Parameters

NameTypeRequiredDescription
tenantIdstring예
idstring예
errorIdstring예

Response

반환: APIEmptyResponse

Example

deleteEmailTemplateRenderError 예제
Copy Copy
1
2async function removeRenderError() {
3 const tenantId: string = "acme-corp-tenant";
4 const templateId: string = "welcome-email-template";
5 const errorId: string = "render-err-20230915";
6
7 const result: APIEmptyResponse = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
8}
9

이메일 템플릿 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetEmailTemplateResponse

예제

getEmailTemplate 예제
Copy Copy
1
2async function fetchTemplate() {
3 const tenantId: string = "acme-corp-123";
4 const templateId: string = "welcome-email-456";
5 const response: GetEmailTemplateResponse = await getEmailTemplate(tenantId, templateId);
6 const status: APIStatus | undefined = response.status;
7 const customTemplate: CustomEmailTemplate | undefined = response.template;
8}
9

이메일 템플릿 정의 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예

응답

반환: GetEmailTemplateDefinitionsResponse

예시

getEmailTemplateDefinitions 예제
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-456";
4 const result: GetEmailTemplateDefinitionsResponse = await getEmailTemplateDefinitions(tenantId);
5 const status: APIStatus = result.status;
6 const definitions: EmailTemplateDefinition[] = result.definitions ?? [];
7 console.log(`Status: ${status.code}, Templates: ${definitions.length}`);
8}
9

이메일 템플릿 렌더링 오류 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
skipnumberNo

응답

반환: GetEmailTemplateRenderErrorsResponse

예시

getEmailTemplateRenderErrors 예제
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_9876";
5
6 const resultWithSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId, 10);
7 const resultWithoutSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId);
8
9 console.log(resultWithSkip, resultWithoutSkip);
10}
11demo();
12

이메일 템플릿 목록 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
skipnumber아니오

응답

반환: GetEmailTemplatesResponse

예시

getEmailTemplates 예시
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-123";
4 const skip: number = 20;
5 const templatesWithSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId, skip);
6 const templatesWithoutSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId);
7}
8

이메일 템플릿 렌더링 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyYes
localestringNo

응답

Returns: RenderEmailTemplateResponse

예시

renderEmailTemplate 예시
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3
4const templateBody: RenderEmailTemplateBody = {
5 templateId: "welcome-email",
6 variables: {
7 userName: "Jane Doe",
8 signupDate: "2024-04-01"
9 }
10};
11
12const locale: string = "en-US";
13
14(async () => {
15 const rendered: RenderEmailTemplateResponse = await renderEmailTemplate(
16 tenantId,
17 templateBody,
18 locale
19 );
20 console.log(rendered);
21})();
22

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


매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateEmailTemplateBodyUpdateEmailTemplateBodyYes

응답

반환: APIEmptyResponse

예시

updateEmailTemplate 예시
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_67890";
5
6 const updateBody: UpdateEmailTemplateBody = {
7 subject: "New Comment Notification",
8 // htmlContent는 선택 사항이며 생략되었습니다
9 status: { code: 200, message: "Active" } // APIStatus
10 };
11
12 const response: APIEmptyResponse = await updateEmailTemplate(tenantId, templateId, updateBody);
13 console.log(response);
14}
15

이벤트 로그 가져오기 Internal Link

req tenantId urlId userIdWS

매개변수

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

응답

반환: GetEventLogResponse

예시

getEventLog 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "url_9876";
4const userIdWS: string = "user_abcde";
5const startTime: number = Date.now() - 86_400_000; // 24시간 전
6const endTime: number = Date.now();
7
8const fullLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9const partialLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime);
10

전역 이벤트 로그 가져오기 Internal Link

req tenantId urlId userIdWS

매개변수

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringYes
startTimenumberYes
endTimenumberNo

응답

Returns: GetEventLogResponse

예시

getGlobalEventLog 예제
Copy Copy
1
2async function fetchEventLogs() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const userIdWS: string = "user_ws_abcde";
6 const startTime: number = Date.now() - 24 * 60 * 60 * 1000; // 24시간 전
7 const endTime: number = Date.now();
8
9 const logWithEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
10 const logWithoutEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime);
11}
12

피드 포스트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createFeedPostParamsCreateFeedPostParams예
broadcastIdstring아니오
isLiveboolean아니오
doSpamCheckboolean아니오
skipDupCheckboolean아니오

응답

반환: CreateFeedPostsResponse

예제

createFeedPost 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const broadcastId: string = "b1c2d3e4-5678-90ab-cdef-1234567890cd";
5 const isLive: boolean = true;
6 const doSpamCheck: boolean = false;
7 const skipDupCheck: boolean = true;
8
9 const mediaAsset: FeedPostMediaItemAsset = {
10 url: "https://cdn.example.com/photos/sunrise.jpg",
11 type: "image/jpeg"
12 };
13 const mediaItem: FeedPostMediaItem = {
14 asset: mediaAsset,
15 caption: "Sunrise over the mountains"
16 };
17 const linkItem: FeedPostLink = {
18 url: "https://blog.example.com/tech-trends-2024",
19 title: "Top Tech Trends for 2024"
20 };
21 const postParams: CreateFeedPostParams = {
22 text: "Excited to share the latest tech trends!",
23 media: [mediaItem],
24 link: linkItem
25 };
26
27 const response: CreateFeedPostsResponse = await createFeedPost(
28 tenantId,
29 postParams,
30 broadcastId,
31 isLive,
32 doSpamCheck,
33 skipDupCheck
34 );
35 console.log(response);
36})();
37

공개 피드 포스트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsYes
broadcastIdstringNo
ssostringNo

응답

반환: CreateFeedPostResponse

예시

createFeedPostPublic 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mediaAsset: FeedPostMediaItemAsset = {
5 url: "https://cdn.example.com/image.jpg",
6 width: 800,
7 height: 600,
8 mimeType: "image/jpeg"
9};
10
11const mediaItem: FeedPostMediaItem = {
12 type: "image",
13 asset: mediaAsset,
14 caption: "Sunset over the hills"
15};
16
17const link: FeedPostLink = {
18 url: "https://example.com/blog/post",
19 title: "Exciting New Features",
20 description: "Read about our latest updates."
21};
22
23const createFeedPostParams: CreateFeedPostParams = {
24 content: "Check out our latest blog post!",
25 media: [mediaItem],
26 link: link,
27 visibility: "public"
28};
29
30const broadcastId: string = "broadcast_9876";
31const sso: string = "sso_token_abc123";
32
33const response: CreateFeedPostResponse = await createFeedPostPublic(
34 tenantId,
35 createFeedPostParams,
36 broadcastId,
37 sso
38);
39

공개 피드 포스트 삭제 Internal Link

매개변수

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

응답

반환: DeleteFeedPostPublicResponse

예시

deleteFeedPostPublic 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const broadcastId: string = "broadcast_abcde";
6 const sso: string = "sso_token_xyz";
7
8 const responseWithOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
9 tenantId,
10 postId,
11 broadcastId,
12 sso
13 );
14
15 const responseWithoutOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
16 tenantId,
17 postId
18 );
19})();
20

피드 포스트 가져오기 Internal Link

요청 tenantId afterId

매개변수

이름유형필수설명
tenantIdstringYes
afterIdstringNo
limitnumberNo
tagsArrayNo

응답

반환: GetFeedPostsResponse

예시

getFeedPosts 예제
Copy Copy
1
2async function loadFeed() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const afterId: string = 'post_987654321';
5 const limit: number = 25;
6 const tags: string[] = ['technology', 'innovation'];
7 const response: GetFeedPostsResponse = await getFeedPosts(tenantId, afterId, limit, tags);
8 console.log(response);
9}
10loadFeed();
11

공개 피드 포스트 가져오기 Internal Link

요청 tenantId afterId

매개변수

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

응답

반환: PublicFeedPostsResponse

예시

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

피드 포스트 통계 가져오기 Internal Link

매개변수

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

응답

반환: FeedPostsStatsResponse

예시

getFeedPostsStats 예시
Copy Copy
1
2const tenantId: string = "tenant-9f8b7c6d";
3const postIds: string[] = ["post-1a2b3c", "post-4d5e6f", "post-7g8h9i"];
4const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
5const feedStats: FeedPostsStatsResponse = await getFeedPostsStats(tenantId, postIds, ssoToken);
6

공개 사용자 반응 가져오기 Internal Link

매개변수

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

응답

반환: UserReactsResponse

예제

getUserReactsPublic 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const postIds: string[] = ["post_abc", "post_def"];
4const ssoToken: string = "sso_token_987";
5
6const fullResponse: UserReactsResponse = await getUserReactsPublic(tenantId, postIds, ssoToken);
7const minimalResponse: UserReactsResponse = await getUserReactsPublic(tenantId);
8

공개 피드 포스트에 반응 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
postIdstring예
reactBodyParamsReactBodyParams예
isUndoboolean아니오
broadcastIdstring아니오
ssostring아니오

응답

반환: ReactFeedPostResponse

예시

reactFeedPostPublic 예시
Copy Copy
1
2async function demoReact() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const reactBodyParams: ReactBodyParams = {
6 type: "like",
7 userId: "user_abcde"
8 };
9 const response: ReactFeedPostResponse = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 true,
14 "broadcast_001",
15 "sso_token_xyz"
16 );
17}
18

피드 포스트 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
feedPostFeedPost예

응답

반환: APIEmptyResponse

예시

updateFeedPost 예시
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5
6 const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11 };
12
13 const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "Sunrise over the hills"
17 };
18
19 const link: FeedPostLink = {
20 url: "https://example.com/blog",
21 title: "Latest Blog Post",
22 description: "Insights on recent developments"
23 };
24
25 const feedPost: FeedPost = {
26 title: "Daily Highlights",
27 content: "Check out today’s top stories.",
28 mediaItems: [mediaItem], // 선택 사항
29 links: [link] // 선택 사항
30 };
31
32 const response: APIEmptyResponse = await updateFeedPost(tenantId, postId, feedPost);
33 console.log(response);
34}
35
36runUpdate();
37

공개 피드 포스트 업데이트 Internal Link

매개변수

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

응답

반환: CreateFeedPostResponse

예시

updateFeedPostPublic 예시
Copy Copy
1
2// 매개변수 정의
3const tenantId: string = "tenant_12345";
4const postId: string = "post_98765";
5
6const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11};
12
13const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "A beautiful scenery"
17};
18
19const link: FeedPostLink = {
20 url: "https://example.com/article",
21 title: "Interesting Article",
22 description: "An article about TypeScript best practices."
23};
24
25const updateParams: UpdateFeedPostParams = {
26 content: "Updated post content with new media and link.",
27 media: [mediaItem],
28 link: link,
29 isPublic: true
30};
31
32const broadcastId: string = "broadcast_001";
33const sso: string = "sso_token_abc123";
34
35const response: CreateFeedPostResponse = await updateFeedPostPublic(
36 tenantId,
37 postId,
38 updateParams,
39 broadcastId,
40 sso
41);
42

공개 댓글 신고 Internal Link

Parameters

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

Response

Returns: APIEmptyResponse

Example

flagCommentPublic 예시
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4const isFlagged: boolean = true;
5const sso: string = "sso_user_5678";
6
7const resultWithSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
8const resultWithoutSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, false);
9

큰 GIF 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
largeInternalURLSanitizedstringYes

응답

반환: GifGetLargeResponse

예제

getGifLarge 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/large/abc123.gif";
5 const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6 console.log(response);
7}
8

GIF 검색 가져오기 Internal Link

매개변수

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

응답

반환: GetGifsSearchResponse

예시

getGifsSearch 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9876";
4 const search: string = "celebration fireworks";
5 const locale: string = "fr-FR";
6 const rating: string = "g";
7 const page: number = 1;
8
9 const fullResult: GetGifsSearchResponse = await getGifsSearch(tenantId, search, locale, rating, page);
10 const minimalResult: GetGifsSearchResponse = await getGifsSearch(tenantId, "dog memes");
11}
12
13runExample();
14

트렌딩 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

매개변수

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

응답

반환: CreateHashTagResponse

예시

addHashTag 예시
Copy Copy
1
2const tenantId: string = "c3f5e8b2-9d4a-4f6a-8b2c-1a2b3c4d5e6f";
3
4const tagPayload: CreateHashTagBody = {
5 tag: "typescript",
6 description: "Discussions about TypeScript"
7};
8
9const responseWithBody: CreateHashTagResponse = await addHashTag(tenantId, tagPayload);
10const responseWithoutBody: CreateHashTagResponse = await addHashTag(tenantId);
11

해시태그 일괄 추가 Internal Link

매개변수

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

응답

반환: BulkCreateHashTagsResponse

예제

addHashTagsBulk 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const tags: BulkCreateHashTagsBodyTagsInner[] = [
5 { name: "typescript", color: "#3178c6" },
6 { name: "fastcomments", color: "#ff6600" }
7];
8
9const bulkBody: BulkCreateHashTagsBody = { tags };
10
11const resultWithBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId, bulkBody);
12
13const resultWithoutBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId);
14

해시태그 삭제 Internal Link


매개변수

이름유형필수설명
tenantIdstring예
tagstring예
deleteHashTagRequestBodyDeleteHashTagRequestBody아니오

응답

반환: APIEmptyResponse

예시

deleteHashTag 예시
Copy Copy
1
2const tenantId: string = "tenant_42";
3const tag: string = "high-priority";
4
5const requestBody: DeleteHashTagRequestBody = {
6 // 필요한 필드를 채워 주세요
7};
8
9const resultWithBody: APIEmptyResponse = await deleteHashTag(tenantId, tag, requestBody);
10const resultWithoutBody: APIEmptyResponse = await deleteHashTag(tenantId, tag);
11

해시태그 가져오기 Internal Link

매개변수

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

응답

반환: GetHashTagsResponse

예시

getHashTags 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const page: number = 1;
5 const result: GetHashTagsResponse = await getHashTags(tenantId, page);
6 console.log(result);
7})();
8

해시태그 수정 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
tagstring예
updateHashTagBodyUpdateHashTagBody아니오

응답

반환: UpdateHashTagResponse

예시

patchHashTag 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const tag: string = "news";
5
6 // 선택적 본문 없이 호출
7 const responseWithoutBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag);
8
9 // 업데이트를 위한 본문 준비
10 const updateBody: UpdateHashTagBody = {
11 name: "Latest News",
12 description: "Tag for the most recent news articles"
13 };
14
15 const responseWithBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag, updateBody);
16})();
17

내 정보 가져오기 Internal Link

사용 중인 자격 증명을 식별합니다: 해당 자격 증명이 속한 테넌트와 OAuth 토큰인 경우 이를 승인한 사용자를 식별합니다.
통합에서는 이를 사용하여 연결을 테스트하고 라벨을 지정합니다.

매개변수

이름유형필수설명
tenantIdstringYes

응답

반환: GetMeResponse

예시

getMe 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const me: GetMeResponse = await getMe(tenantId);
5 const authType: MeAuthType = me.auth.type;
6 const scopes: OAuthScope[] = me.auth.scopes ?? [];
7 const status: APIStatus = me.status;
8})();
9

중재 투표 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
voteIdstringYes
broadcastIdstringNo
ssostringNo

응답

반환: VoteDeleteResponse

예시

deleteModerationVote 예시
Copy Copy
1
2async function runDeleteModerationVote(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6a";
4 const commentId: string = "comment_4d3e2f1a";
5 const voteId: string = "vote_12345abcde";
6 const broadcastId: string | undefined = "broadcast_2023_09_15";
7 const sso: string | undefined = "sso_user_7890token";
8
9 const result: VoteDeleteResponse = await deleteModerationVote(
10 tenantId,
11 commentId,
12 voteId,
13 broadcastId,
14 sso
15 );
16
17 console.log(result);
18}
19

API 댓글 가져오기 Internal Link

매개변수

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

응답

반환: ModerationAPIGetCommentsResponse

예제

getApiComments 예제
Copy Copy
1
2async function fetchComments(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const page: number = 2;
5 const count: number = 20;
6 const textSearch: string = "typescript";
7 const byIPFromComment: string = "192.168.1.100";
8 const filters: string = "spam,offensive";
9 const searchFilters: string = "user:john";
10 const sorts: string = "date_desc";
11 const demo: boolean = true;
12 const sso: string = "sso_token_abc";
13
14 const response: ModerationAPIGetCommentsResponse = await getApiComments(
15 tenantId,
16 page,
17 count,
18 textSearch,
19 byIPFromComment,
20 filters,
21 searchFilters,
22 sorts,
23 demo,
24 sso
25 );
26}
27
28fetchComments();
29

API 내보내기 상태 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
batchJobIdstringNo
ssostringNo

응답

Returns: ModerationExportStatusResponse

예시

getApiExportStatus 예제
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const batchJobId: string = "job_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const statusOnlyTenant: ModerationExportStatusResponse = await getApiExportStatus(tenantId);
8 const statusWithBatch: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId);
9 const statusFull: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId, ssoToken);
10}
11run();
12

API ID 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
ssostringNo

응답

반환: ModerationAPIGetCommentIdsResponse

예시

getApiIds 예제
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const textSearch: string = "offensive language";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:unmoderated";
7 const searchFilters: string = "author:alice";
8 const afterId: string = "cmt_00123";
9 const demo: boolean = true;
10 const sso: string = "sso_9f8e7d6c";
11
12 const fullResult: ModerationAPIGetCommentIdsResponse = await getApiIds(
13 tenantId,
14 textSearch,
15 byIPFromComment,
16 filters,
17 searchFilters,
18 afterId,
19 demo,
20 sso
21 );
22
23 const minimalResult: ModerationAPIGetCommentIdsResponse = await getApiIds(tenantId);
24}
25

댓글에서 차단된 사용자 가져오기 Internal Link

매개변수

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

응답

반환: GetBannedUsersFromCommentResponse

예시

getBanUsersFromComment 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const commentId: string = "comment_a1b2c3";
4const ssoToken: string = "sso_abc123";
5
6const bannedUsers: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId, ssoToken);
7const bannedUsersNoSso: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId);
8

댓글 차단 상태 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: GetCommentBanStatusResponse

예제

getCommentBanStatus 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_987654";
5 const ssoToken: string = "sso_user_abc";
6
7 const statusWithSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId, ssoToken);
8 const statusWithoutSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId);
9})();
10

댓글 하위 댓글 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: ModerationAPIChildCommentsResponse

예시

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

카운트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filterstringNo
searchFiltersstringNo
demobooleanNo
ssostringNo

응답

반환: ModerationAPICountCommentsResponse

예시

getCount 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const basicCount: ModerationAPICountCommentsResponse = await getCount(tenantId);
5
6const detailedCount: ModerationAPICountCommentsResponse = await getCount(
7 tenantId,
8 "spam",
9 "192.168.1.100",
10 "status:pending",
11 "user:john",
12 true,
13 "sso_token_abc"
14);
15

카운트들 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
ssostringNo

응답

반환: GetBannedUsersCountResponse

예시

getCounts 예시
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_9876";
4 const ssoToken: string = "sso_user_42";
5
6 const resultWithOnlyTenant: GetBannedUsersCountResponse = await getCounts(tenantId);
7 const resultWithBoth: GetBannedUsersCountResponse = await getCounts(tenantId, ssoToken);
8}
9
10run();
11

로그 가져오기 Internal Link


매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: ModerationAPIGetLogsResponse

예시

getLogs 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const commentId: string = "cmt_4567890";
5 const ssoToken: string = "sso_abcdef123456";
6
7 const logsWithSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId, ssoToken);
8 const logsWithoutSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId);
9})();
10

수동 배지 가져오기 Internal Link

매개변수

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

응답

반환: GetTenantManualBadgesResponse

예시

getManualBadges 예제
Copy Copy
1
2async function fetchBadges() {
3 const tenantId: string = "tenant-987654321";
4 const ssoToken: string = "sso-token-abc123";
5
6 const badgesWithSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId, ssoToken);
7 const badgesWithoutSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId);
8}
9

사용자 수동 배지 가져오기 Internal Link


매개변수

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

응답

반환: GetUserManualBadgesResponse

예시

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

중재 댓글 가져오기 Internal Link

매개변수

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

응답

반환: ModerationAPICommentResponse

예시

getModerationComment 예시
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // 필수 매개변수만 사용하여 호출
7 const basicResponse: ModerationAPICommentResponse = await getModerationComment(tenantId, commentId);
8
9 // 선택 매개변수와 함께 호출
10 const includeEmail: boolean = true;
11 const includeIP: boolean = false;
12 const sso: string = "sso-token-abc123";
13 const detailedResponse: ModerationAPICommentResponse = await getModerationComment(
14 tenantId,
15 commentId,
16 includeEmail,
17 includeIP,
18 sso
19 );
20}
21

중재 댓글 텍스트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
ssostringNo

응답

반환: GetCommentTextResponse

예시

getModerationCommentText 예제
Copy Copy
1
2async function fetchComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const commentWithoutSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId);
8 const commentWithSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId, ssoToken);
9}
10
11fetchComment();
12

사전 차단 요약 가져오기 Internal Link


매개변수

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

응답

반환: PreBanSummary

예시

getPreBanSummary 예제
Copy Copy
1
2async function fetchSummary(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const includeByUserIdAndEmail: boolean = true;
6 const includeByIP: boolean = false;
7 const includeByEmailDomain: boolean = true;
8 const sso: string = "sso_token_abc";
9
10 const summary: PreBanSummary = await getPreBanSummary(
11 tenantId,
12 commentId,
13 includeByUserIdAndEmail,
14 includeByIP,
15 includeByEmailDomain,
16 sso
17 );
18
19 console.log(summary);
20}
21
22fetchSummary();
23

댓글 검색 요약 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
valuestring아니오
filtersstring아니오
searchFiltersstring아니오
ssostring아니오

응답

반환: ModerationCommentSearchResponse

예시

getSearchCommentsSummary 예제
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant_12345";
4 const value: string = "spam";
5 const filters: string = "status:pending";
6 const searchFilters: string = "author:john";
7 const sso: string = "sso_token_abc";
8
9 const result: ModerationCommentSearchResponse = await getSearchCommentsSummary(
10 tenantId,
11 value,
12 filters,
13 searchFilters,
14 sso
15 );
16
17 console.log(result);
18}
19
20runSearch();
21

페이지 검색 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
valuestringNo
ssostringNo

응답

반환: ModerationPageSearchResponse

예시

getSearchPages 예제
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const searchValue: string = "spam";
4const ssoToken: string = "sso-abc123def456";
5
6const result1: ModerationPageSearchResponse = await getSearchPages(tenantId);
7const result2: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue);
8const result3: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue, ssoToken);
9

사이트 검색 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
valuestringNo
ssostringNo

응답

반환: ModerationSiteSearchResponse

예시

getSearchSites 예제
Copy Copy
1
2async function runSearches(): Promise<void> {
3 const tenantId: string = "tenant-987654";
4 const query: string = "offensive content";
5 const ssoToken: string = "sso-token-xyz";
6
7 const fullResult: ModerationSiteSearchResponse = await getSearchSites(tenantId, query, ssoToken);
8 const minimalResult: ModerationSiteSearchResponse = await getSearchSites(tenantId);
9}
10
11runSearches();
12

검색 제안 가져오기 Internal Link

매개변수

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

응답

반환: ModerationSuggestResponse

예시

getSearchSuggest 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const textSearch: string = "harassment";
5 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
6 const suggestResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId, textSearch, sso);
7 const minimalResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId);
8})();
9

사용자 검색 가져오기 Internal Link

매개변수

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

응답

반환: ModerationUserSearchResponse

예시

getSearchUsers 예시
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant-9876";
4 const emailFragment: string = "jane";
5 const ssoToken: string = "sso-token-456";
6
7 const resultWithAll: ModerationUserSearchResponse = await getSearchUsers(tenantId, emailFragment, ssoToken);
8 const resultWithTenantOnly: ModerationUserSearchResponse = await getSearchUsers(tenantId);
9}
10

신뢰도 요인 가져오기 Internal Link

매개변수

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

응답

반환: GetUserTrustFactorResponse

예시

getTrustFactor 예시
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_98765";
5 const sso: string = "sso_token_abcde";
6
7 const trustFactor: GetUserTrustFactorResponse = await getTrustFactor(tenantId);
8 const trustFactorWithUser: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId);
9 const trustFactorFull: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId, sso);
10}
11

사용자 차단 선호도 가져오기 Internal Link

매개변수

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

응답

반환: APIModerateGetUserBanPreferencesResponse

예시

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

사용자 내부 프로필 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringNo
ssostringNo

응답

반환: GetUserInternalProfileResponse

예제

getUserInternalProfile 예제
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const ssoToken: string = "sso_abcde12345";
6
7 const profileOnly: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId);
8 const profileWithComment: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId);
9 const fullProfile: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId, ssoToken);
10}
11
12demo();
13

댓글 투표 조정 Internal Link

매개변수

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

응답

반환: AdjustVotesResponse

예시

postAdjustCommentVotes 예제
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_987654321";
4const adjustParams: AdjustCommentVotesParams = { voteDelta: 1 };
5const broadcastId: string = "brd_112233";
6const sso: string = "sso-token-xyz";
7
8const result: AdjustVotesResponse = await postAdjustCommentVotes(
9 tenantId,
10 commentId,
11 adjustParams,
12 broadcastId,
13 sso
14);
15

API 내보내기 요청 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
textSearchstring아니오
byIPFromCommentstring아니오
filtersstring아니오
searchFiltersstring아니오
sortsstring아니오
ssostring아니오

응답

반환: ModerationExportResponse

예시

postApiExport 예시
Copy Copy
1
2async function runExport() {
3 const tenantId: string = "c9f1e2b4-8a6d-4f3a-9d2e-5b6c7d8e9f0a";
4 const textSearch: string = "spam";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:pending";
7 const searchFilters: string = "createdAt>2023-01-01";
8 const sorts: string = "createdAt:desc";
9 const sso: string = "sso-token-abc123";
10
11 const fullExport: ModerationExportResponse = await postApiExport(
12 tenantId,
13 textSearch,
14 byIPFromComment,
15 filters,
16 searchFilters,
17 sorts,
18 sso
19 );
20
21 const minimalExport: ModerationExportResponse = await postApiExport(tenantId);
22
23 console.log(fullExport, minimalExport);
24}
25runExport();
26

댓글에서 사용자 차단 Internal Link

매개변수

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

응답

반환: BanUserFromCommentResult

예시

postBanUserFromComment 예제
Copy Copy
1
2async function banUserExample(): Promise<void> {
3 const result: BanUserFromCommentResult = await postBanUserFromComment(
4 "tenant_42",
5 "comment_1001",
6 true, // banEmail
7 undefined, // banEmailDomain (생략됨)
8 true, // banIP
9 false, // deleteAllUsersComments
10 "2025-01-01T00:00:00Z", // bannedUntil
11 true, // isShadowBan
12 undefined, // updateId (생략됨)
13 "Harassment", // banReason
14 undefined // sso (생략됨)
15 );
16
17 console.log(result);
18}
19

사용자 차단 취소 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsYes
ssostringNo

응답

반환: APIEmptyResponse

예시

postBanUserUndo 예시
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const undoParams: BanUserUndoParams = {
5 userId: "user_12345",
6 // 추가 필수 필드를 여기에서 추가할 수 있습니다
7};
8
9const resultWithoutSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams);
10
11const ssoToken: string = "sso_abcdef123456";
12
13const resultWithSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams, ssoToken);
14

대량 사전 차단 요약 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsYes
includeByUserIdAndEmailbooleanNo
includeByIPbooleanNo
includeByEmailDomainbooleanNo
ssostringNo

응답

반환: BulkPreBanSummary

예시

postBulkPreBanSummary 예시
Copy Copy
1
2const tenantId: string = "c1f2e3d4-5678-90ab-cdef-1234567890ab";
3
4const bulkPreBanParams: BulkPreBanParams = {
5 userIds: ["user123"],
6 emails: ["spam@example.com"],
7 ips: ["192.0.2.1"],
8 emailDomains: ["example.com"]
9};
10
11const includeByUserIdAndEmail: boolean = true;
12const includeByIP: boolean = false;
13const includeByEmailDomain: boolean = true;
14const sso: string = "sso-token-abc123";
15
16const summary: BulkPreBanSummary = await postBulkPreBanSummary(
17 tenantId,
18 bulkPreBanParams,
19 includeByUserIdAndEmail,
20 includeByIP,
21 includeByEmailDomain,
22 sso
23);
24

ID로 댓글 가져오기 Internal Link

매개변수

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

응답

반환: ModerationAPIChildCommentsResponse

예시

postCommentsByIds 예시
Copy Copy
1
2const tenantId: string = 'tenant-9f8b7c6d-1234-5678-90ab-cdef12345678';
3const commentsByIdsParams: CommentsByIdsParams = {
4 commentIds: ['comment-1', 'comment-2'],
5 includeUserBadges: true
6};
7const responseWithoutSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams);
8const sso: string = 'sso-abc123def456';
9const responseWithSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams, sso);
10

댓글 신고 Internal Link


매개변수

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

응답

반환: APIEmptyResponse

예시

postFlagComment 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5
6 // 필수 매개변수만
7 const result1: APIEmptyResponse = await postFlagComment(tenantId, commentId);
8
9 // 선택적 매개변수 포함
10 const broadcastId: string = "brd_54321";
11 const sso: string = "user@example.com";
12 const result2: APIEmptyResponse = await postFlagComment(tenantId, commentId, broadcastId, sso);
13
14 console.log(result1, result2);
15}
16runExample();
17

댓글 제거 Internal Link

Parameters

이름타입필수설명
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Response

Returns: PostRemoveCommentApiResponse

Example

postRemoveComment 예제
Copy Copy
1
2async function removeCommentExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_555";
6 const sso: string = "sso_token_abc";
7
8 const response: PostRemoveCommentApiResponse = await postRemoveComment(
9 tenantId,
10 commentId,
11 broadcastId,
12 sso
13 );
14 console.log(response);
15}
16
17removeCommentExample();
18

삭제된 댓글 복원 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

postRestoreDeletedComment 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4
5const resultRequired: APIEmptyResponse = await postRestoreDeletedComment(tenantId, commentId);
6
7const broadcastId: string = "brd_001";
8const sso: string = "sso_token_abc123";
9
10const resultAll: APIEmptyResponse = await postRestoreDeletedComment(
11 tenantId,
12 commentId,
13 broadcastId,
14 sso
15);
16

댓글 승인 상태 설정 Internal Link

매개변수

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

응답

반환: SetCommentApprovedResponse

예시

postSetCommentApprovalStatus 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_001";
4 const commentId: string = "comment_123";
5 const approved: boolean = false;
6 const broadcastId: string = "broadcast_456";
7 const sso: string = "sso_789";
8
9 const result: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
10 tenantId,
11 commentId,
12 approved,
13 broadcastId,
14 sso
15 );
16
17 const minimalResult: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
18 tenantId,
19 commentId
20 );
21})();
22

댓글 검토 상태 설정 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

postSetCommentReviewStatus 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const reviewed: boolean = true;
5const broadcastId: string = "brd_001";
6const sso: string = "sso_token_abc";
7
8const result: APIEmptyResponse = await postSetCommentReviewStatus(
9 tenantId,
10 commentId,
11 reviewed,
12 broadcastId,
13 sso
14);
15

댓글 스팸 상태 설정 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
commentIdstring예
spamboolean아니오
permNotSpamboolean아니오
broadcastIdstring아니오
ssostring아니오

응답

반환: APIEmptyResponse

예제

postSetCommentSpamStatus 예제
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4
5const spam: boolean = true;
6const permNotSpam: boolean = false;
7const broadcastId: string = "broadcast_2023";
8const sso: string = "sso_user_5678";
9
10const resultFull: APIEmptyResponse = await postSetCommentSpamStatus(
11 tenantId,
12 commentId,
13 spam,
14 permNotSpam,
15 broadcastId,
16 sso
17);
18
19const resultMinimal: APIEmptyResponse = await postSetCommentSpamStatus(
20 tenantId,
21 commentId
22);
23

댓글 텍스트 설정 Internal Link

매개변수

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

응답

반환: SetCommentTextResponse

예시

postSetCommentText 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const setCommentTextParams: SetCommentTextParams = {
5 text: "Revised comment after user edit.",
6 format: "plain"
7};
8const broadcastId: string = "broadcast_2023_09";
9
10const response: SetCommentTextResponse = await postSetCommentText(
11 tenantId,
12 commentId,
13 setCommentTextParams,
14 broadcastId
15);
16
17console.log(response);
18

댓글 신고 해제 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

postUnFlagComment 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const broadcastId: string = "broadcast_55555";
6 const sso: string = "sso_token_abcde";
7
8 const result1: APIEmptyResponse = await postUnFlagComment(tenantId, commentId);
9 const result2: APIEmptyResponse = await postUnFlagComment(tenantId, commentId, broadcastId, sso);
10}
11
12runExample();
13

투표하기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
directionstringNo
broadcastIdstringNo
ssostringNo

응답

반환: VoteResponse

예시

postVote 예시
Copy Copy
1
2async function runVoteExamples(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // 필수 매개변수만 사용하여 호출
7 const simpleVote: VoteResponse = await postVote(tenantId, commentId);
8
9 // 선택 매개변수와 함께 호출
10 const direction: string = "down";
11 const broadcastId: string = "brd_987654321";
12 const sso: string = "user-42";
13 const detailedVote: VoteResponse = await postVote(tenantId, commentId, direction, broadcastId, sso);
14
15 console.log(simpleVote, detailedVote);
16}
17

배지 수여 Internal Link

매개변수

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

응답

반환: AwardUserBadgeResponse

예시

putAwardBadge 예제
Copy Copy
1
2async function awardBadgeExample(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_superstar";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_2023";
7
8 const result: AwardUserBadgeResponse = await putAwardBadge(
9 tenantId,
10 badgeId,
11 userId,
12 commentId
13 );
14
15 console.log(result);
16}
17

스레드 닫기 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

putCloseThread 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-company";
4 const urlId: string = "post-2023-09-15";
5 const ssoToken: string = "sso-abc123def";
6
7 const resultWithSso: APIEmptyResponse = await putCloseThread(tenantId, urlId, ssoToken);
8 const resultWithoutSso: APIEmptyResponse = await putCloseThread(tenantId, urlId);
9})();
10

배지 제거 Internal Link

매개변수

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

응답

반환: RemoveUserBadgeResponse

예시

putRemoveBadge 예제
Copy Copy
1
2async function demoRemoveBadge() {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_gold";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_20230915";
7 const broadcastId: string = "broadcast_live_01";
8 const sso: string = "sso_abcdef123456";
9
10 const result: RemoveUserBadgeResponse = await putRemoveBadge(
11 tenantId,
12 badgeId,
13 userId,
14 commentId,
15 broadcastId,
16 sso
17 );
18
19 console.log(result);
20}
21

스레드 다시 열기 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

putReopenThread 예시
Copy Copy
1
2async function reopenThreadExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post-9876";
5 const sso: string = "user-abc123";
6
7 const responseWithoutSso: APIEmptyResponse = await putReopenThread(tenantId, urlId);
8 const responseWithSso: APIEmptyResponse = await putReopenThread(tenantId, urlId, sso);
9}
10
11reopenThreadExample();
12

신뢰도 요인 설정 Internal Link

매개변수

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

응답

반환: SetUserTrustFactorResponse

예제

setTrustFactor 예제
Copy Copy
1
2async function demoSetTrustFactor() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5 const trustFactor: string = "high";
6 const sso: string = "sso-token-xyz";
7
8 const fullResponse: SetUserTrustFactorResponse = await setTrustFactor(
9 tenantId,
10 userId,
11 trustFactor,
12 sso
13 );
14
15 const minimalResponse: SetUserTrustFactorResponse = await setTrustFactor(tenantId);
16}
17

모더레이터 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createModeratorBodyCreateModeratorBody예

응답

Returns: CreateModeratorResponse

예시

createModerator 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const moderatorPayload: CreateModeratorBody = {
5 userId: "user_9876",
6 // 선택적 필드; 필요하지 않으면 생략할 수 있습니다
7 notes: "Temporary moderator for event"
8};
9
10const response: CreateModeratorResponse = await createModerator(tenantId, moderatorPayload);
11

모더레이터 삭제 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

deleteModerator 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const moderatorId: string = "mod_9876";
5 const notifyEmail: string = "admin@company.com";
6
7 const resultWithEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId, notifyEmail);
8 const resultWithoutEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId);
9})();
10

모더레이터 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: GetModeratorResponse

예시

getModerator 예제
Copy Copy
1
2async function fetchModerator() {
3 const tenantId: string = "c9f1e2b3-4d5a-6f78-90ab-cdef12345678";
4 const moderatorId: string = "mod-987654";
5 const response: GetModeratorResponse = await getModerator(tenantId, moderatorId);
6 const isActive: boolean | undefined = response.moderator?.isActive;
7 const statusCode: number | undefined = response.status?.code;
8}
9

모더레이터 목록 가져오기 Internal Link

매개변수

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

응답

반환: GetModeratorsResponse

예제

getModerators 예제
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3
4const moderators: GetModeratorsResponse = await getModerators(tenantId);
5
6const skip: number = 20;
7const moreModerators: GetModeratorsResponse = await getModerators(tenantId, skip);
8

초대 전송 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
fromNamestringYes

응답

반환: APIEmptyResponse

예시

sendInvite 예시
Copy Copy
1
2const tenantId: string = "tenant-987654321";
3const id: string = "user-123456789";
4const fromName: string = "Alice Johnson";
5
6const result: APIEmptyResponse = await sendInvite(tenantId, id, fromName);
7console.log(result);
8

모더레이터 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateModeratorBodyUpdateModeratorBodyYes

응답

반환: APIEmptyResponse

예시

updateModerator 예시
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const moderatorId: string = "mod_12345";
4
5const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 // role?: string 은 선택 사항이며 여기서는 생략되었습니다
8};
9
10const result: APIEmptyResponse = await updateModerator(tenantId, moderatorId, updateBody);
11

알림 카운트 삭제 Internal Link


매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteNotificationCount 예제
Copy Copy
1
2let tenantId: string = "tenant-42f9b8c1";
3let notificationId: string = "notif-7e3a9d4f";
4
5const result: APIEmptyResponse = await deleteNotificationCount(tenantId, notificationId);
6

캐시된 알림 카운트 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstring예
idstring예

응답

반환: GetCachedNotificationCountResponse

예시

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

알림 카운트 가져오기 Internal Link

매개변수

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

응답

반환: GetNotificationCountResponse

예시

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

알림 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
userIdstringNo
urlIdstringNo
fromCommentIdstringNo
viewedbooleanNo
typestringNo
skipnumberNo

응답

반환: GetNotificationsResponse

예시

getNotifications 예제
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const userId: string = "user_1001";
5 const urlId: string = "url_2023";
6 const viewed: boolean = true;
7 const skip: number = 0;
8
9 const notifications: GetNotificationsResponse = await getNotifications(
10 tenantId,
11 userId,
12 urlId,
13 undefined,
14 viewed,
15 undefined,
16 skip
17 );
18
19 console.log(notifications);
20}
21

알림 업데이트 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

updateNotification 예시
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant-abc123";
4 const notificationId: string = "notif-9876";
5 const updateBody: UpdateNotificationBody = {
6 title: "System Maintenance",
7 message: "Scheduled maintenance at 02:00 UTC.",
8 enabled: true
9 };
10 const userId: string = "user-42";
11
12 const resultWithoutUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody);
13 const resultWithUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody, userId);
14}
15

V1 페이지 반응 생성 Internal Link

매개변수

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

응답

반환: CreateV1PageReact

예시

createV1PageReact 예제
Copy Copy
1
2const tenantId: string = "my-tenant-123";
3const urlId: string = "article-456";
4
5const pageTitle: string = "Understanding TypeScript Generics";
6const ssoToken: string = "user-789-token";
7
8const fullResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId, pageTitle, ssoToken);
9const minimalResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId);
10

V2 페이지 반응 생성 Internal Link

매개변수

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

응답

반환: CreateV1PageReact

예시

createV2PageReact 예제
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "product-page-123";
5 const pageId: string = "page-456";
6 const pageTitle: string = "Product Overview";
7 const ssoToken: string = "jwt-token-abc123";
8
9 const pageFull: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle, ssoToken);
10 const pageTitleOnly: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle);
11 const pageMinimal: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId);
12}
13run();
14

V1 페이지 반응 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
ssostringNo

응답

반환: CreateV1PageReact

예시

deleteV1PageReact 예시
Copy Copy
1
2async function runExamples() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const urlId: string = "blog/post-2024-06-15";
5 const ssoToken: string = "sso_user_42";
6
7 const resultWithSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId, ssoToken);
8 const resultWithoutSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId);
9}
10

V2 페이지 반응 삭제 Internal Link

매개변수

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

응답

반환: CreateV1PageReact

예시

deleteV2PageReact 예제
Copy Copy
1
2async function runDeleteExamples() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "page_98765";
5 const commentId: string = "comment_abcde";
6
7 // 선택적 sso 없이 호출
8 const resultWithoutSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId);
9
10 // 선택적 sso와 함께 호출
11 const ssoToken: string = "sso_token_xyz";
12 const resultWithSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId, ssoToken);
13}
14

V1 페이지 좋아요 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes
ssostringNo

응답

반환: GetV1PageLikes

예시

getV1PageLikes 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "https://myblog.com/post/42";
5 const ssoToken: string = "sso_user_987";
6
7 const likesWithSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId, ssoToken);
8 const likesWithoutSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId);
9})();
10

V2 페이지 반응 가져오기 Internal Link

매개변수

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

응답

반환: GetV2PageReacts

예시

getV2PageReacts 예제
Copy Copy
1
2const tenantId: string = "tenant-42";
3const urlId: string = "article-9876";
4const ssoToken: string = "sso-abc123";
5
6const reactsWithSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId, ssoToken);
7const reactsWithoutSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId);
8

V2 페이지 반응 사용자 가져오기 Internal Link


매개변수

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

응답

반환: GetV2PageReactUsersResponse

예시

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

페이지 추가 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: PageUsersOfflineResponse

Example

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

온라인 사용자 가져오기 Internal Link

현재 페이지에 온라인으로 보는 사람: 현재 웹소켓 세션이 해당 페이지에 구독된 사람들. 익명 카운트와 전체 카운트(방 전체 구독자, 열거하지 않는 익명 뷰어 포함)를 반환합니다.

매개변수

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

응답

반환: PageUsersOnlineResponse

예제

getOnlineUsers 예제
Copy Copy
1
2async function fetchOnlineUsers() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const afterName: string | undefined = "john_doe";
6 const afterUserId: string | undefined = "user_456";
7
8 const onlineUsers: PageUsersOnlineResponse = await getOnlineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(onlineUsers);
16}
17
18fetchOnlineUsers();
19

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가 필요한 페이지는 요청 사용자의 그룹 액세스에 따라 필터링됩니다.

매개변수

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

응답

반환: GetPublicPagesResponse

예시

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

사용자 정보 가져오기 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

이름유형필수설명
tenantIdstring예
idsstring예

Response

반환: PageUsersInfoResponse

Example

getUsersInfo 예시
Copy Copy
1
2async function fetchUsersInfo(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const ids: string = "user_001,user_002";
5 const response: PageUsersInfoResponse = await getUsersInfo(tenantId, ids);
6 console.log(response);
7}
8fetchUsersInfo();
9

페이지 수정 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예

응답

반환: APIEmptyResponse

예시

deletePendingWebhookEvent 예시
Copy Copy
1
2async function runDeletion() {
3 const tenantId: string = "tenant-42f7b9c2";
4 const eventId: string = "webhook-event-8a7d6c5b";
5 const result: APIEmptyResponse = await deletePendingWebhookEvent(tenantId, eventId);
6 console.log(result);
7}
8

보류 중인 웹훅 이벤트 카운트 가져오기 Internal Link

매개변수

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

응답

반환: GetPendingWebhookEventCountResponse

예시

getPendingWebhookEventCount 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_42";
4 const commentId: string = "comment_1001";
5 const eventType: string = "comment.deleted";
6 const domain: string = "myblog.com";
7
8 const result: GetPendingWebhookEventCountResponse = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined,
12 eventType,
13 undefined,
14 domain
15 );
16
17 console.log(result);
18}
19
20runExample();
21

보류 중인 웹훅 이벤트 가져오기 Internal Link

매개변수

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

응답

반환: GetPendingWebhookEventsResponse

예시

getPendingWebhookEvents 예시
Copy Copy
1
2const tenantId: string = "123e4567-e89b-12d3-a456-426614174000";
3const commentId: string = "cmt_987654321";
4const externalId: string = "ext_abc123";
5const eventType: string = "comment_created";
6const type: string = "outbound";
7const domain: string = "myblog.com";
8const attemptCountGT: number = 2;
9const skip: number = 10;
10
11const pendingEvents: GetPendingWebhookEventsResponse = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

투표 생성 Internal Link

Poll에 투표를 기록하거나 기존 투표를 다른 옵션으로 이동합니다. 투표자는 각 poll당 최대 하나의 투표만 할 수 있으므로, 동일한 투표자에 대해 다시 호출하면 투표가 추가되는 것이 아니라 이동됩니다.

이는 사이트의 poll 설정을 따릅니다: 투표가 로그인한 사용자만 가능하도록 설정된 경우, anonUserId만 있는 투표는 거부되며, 익명 투표는 poll당 IP별로 속도 제한됩니다.

매개변수

이름타입필수설명
tenantIdstring예
createPollVoteBodyCreatePollVoteBody예

응답

반환: CreatePollVoteResponse

예시

createPollVote 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4
5 const vote: CreatePollVoteBody = {
6 pollId: "poll-2024-09",
7 optionId: "option-A"
8 // userId는 선택 사항이며 여기서는 생략되었습니다
9 };
10
11 const result: CreatePollVoteResponse = await createPollVote(tenantId, vote);
12 console.log(result);
13})();
14

투표 삭제 Internal Link

투표를 취소합니다. 투표가 이루어진 옵션이 그 집계 수를 되돌립니다.

Parameters

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: DeletePollVoteResponse

예시

deletePollVote 예시
Copy Copy
1
2async function runDeletePollVoteExample(): Promise<void> {
3 const tenantId: string = "tenant_42abc";
4 const pollId: string = "poll_7f9e2d";
5
6 const result: DeletePollVoteResponse = await deletePollVote(tenantId, pollId);
7
8 console.log(result);
9}
10

투표 가져오기 Internal Link


매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetPollVoteResponse

예시

getPollVote 예제
Copy Copy
1
2async function fetchPollVote(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant";
4 const pollId: string = "poll-2024-05";
5 const result: GetPollVoteResponse = await getPollVote(tenantId, pollId);
6 const status: APIStatus = result.status;
7 const vote: PublicPollVote | undefined = result.vote;
8}
9

투표 목록 가져오기 Internal Link

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

하나의 설문 조사 집계 뒤에 있는 개별 투표들, 오래된 순서대로.

A poll belongs to a comment, so votes are always read one poll at a time - commentId is required. That keeps every query on the indexes the collection already has.

설문 조사는 댓글에 속하므로, 투표는 항상 한 번에 하나의 설문 조사씩 읽습니다 - commentId가 필요합니다. 이렇게 하면 컬렉션이 이미 가지고 있는 인덱스에서 모든 쿼리를 수행하게 됩니다.

Obeys the poll's privacy: an anonymous poll's votes cannot be read (poll-anonymous), here or by id.

설문 조사 프라이버시를 준수합니다: 익명 설문 조사(poll-anonymous)의 투표는 여기서든 ID로든 읽을 수 없습니다.

매개변수

이름타입필수설명
tenantIdstring예
commentIdstring예
voterIdstring아니오
optionIdstring아니오
skipnumber아니오

응답

Returns: GetPollVotesResponse

예시

getPollVotes 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const voterId: string = "user_abc";
5const optionId: string = "opt_1";
6const skip: number = 20;
7
8const pollResult: GetPollVotesResponse = await getPollVotes(
9 tenantId,
10 commentId,
11 voterId,
12 optionId,
13 skip
14);
15
16console.log(pollResult);
17

설문 삭제 Internal Link

Remove a poll from its comment, along with every vote cast on it. The comment itself is left alone.

Parameters

이름유형필수설명
tenantIdstring예
commentIdstring예

Response

반환: APIEmptyResponse

Example

deletePoll 예시
Copy Copy
1
2async function runDeletePoll(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const commentId: string = "comment_a1b2c3d4";
5 const result: APIEmptyResponse = await deletePoll(tenantId, commentId);
6 console.log(result);
7}
8

설문 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes

응답

반환: GetPollResponse

예시

getPoll 예제
Copy Copy
1
2const tenantId: string = "c9f1e2b4-8a3d-4f6a-9d2e-7b5c1a2f3e4d";
3const commentId: string = "a1b2c3d4e5f6g7h8i9j0";
4
5const pollResponse: GetPollResponse = await getPoll(tenantId, commentId);
6
7const poll: CommentPoll | undefined = pollResponse.poll;
8const privacy: PollPrivacy | undefined = poll?.privacy;
9const options: CommentPollOption[] | undefined = poll?.options;
10

설문 수정 Internal Link

Edit a poll in place, keeping its tallies: change the question, relabel an option, close or reopen it, or change who may see the voters. Options are addressed by id - to add, remove or reorder them, PUT the full list.

매개변수

이름유형필수설명
tenantIdstringYes
commentIdstringYes
commentPollPatchCommentPollPatchYes

응답

반환: SavePollResponse

예시

patchPoll 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_9876543210";
5
6 const pollPatch: CommentPollPatch = {
7 question: "Which new feature would you like to see?",
8 options: [
9 { id: "opt-1", label: "Dark Mode" },
10 { id: "opt-2", label: "Multi-language Support" }
11 ]
12 };
13
14 const response: SavePollResponse = await patchPoll(tenantId, commentId, pollPatch);
15 console.log(response);
16})();
17

설문 교체 Internal Link

Attach a poll to a comment, or set the full state of the poll it already has.

Options are matched by id: an option sent with the id of an existing option keeps its votes (and takes the new label and position), an option sent without an id is added, and existing options left out of the list are removed along with the votes cast on them.

Keeping no existing option ids on a poll that has votes deletes all of them, so that needs replaceVotes=true.

Parameters

이름유형필수설명
tenantIdstring예
commentIdstring예
commentPollPutInputCommentPollPutInput예
replaceVotesboolean아니오

Response

반환: SavePollResponse

Example

putPoll 예제
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "9876543210";
4
5const optionA: CommentPollOptionInput = { text: "Dark mode" };
6const optionB: CommentPollOptionInput = { text: "Light mode" };
7
8const pollInput: CommentPollPutInput = {
9 question: "Which UI theme do you prefer?",
10 options: [optionA, optionB],
11};
12
13const replaceVotes: boolean = true;
14
15const result: SavePollResponse = await putPoll(tenantId, commentId, pollInput, replaceVotes);
16

질문 설정 생성 Internal Link


매개변수

이름유형필수설명
tenantIdstring예
createQuestionConfigBodyCreateQuestionConfigBody예

응답

반환: CreateQuestionConfigResponse

예시

createQuestionConfig 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp-123";
4
5 const customOption: QuestionConfigCustomOptionsInner = {
6 key: "maxLength",
7 value: 500,
8 };
9
10 const createQuestionConfigBody: CreateQuestionConfigBody = {
11 name: "User Feedback",
12 description: "Collect user feedback after purchase",
13 enabled: true,
14 customOptions: [customOption],
15 // 선택적 필드
16 tags: ["feedback", "post-purchase"],
17 };
18
19 const response: CreateQuestionConfigResponse = await createQuestionConfig(
20 tenantId,
21 createQuestionConfigBody
22 );
23
24 console.log(response);
25}
26

질문 설정 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteQuestionConfig 예시
Copy Copy
1
2async function executeDeletion() {
3 const tenantId: string = "tenant_12345";
4 const configId: string = "config_9876";
5 const result: APIEmptyResponse = await deleteQuestionConfig(tenantId, configId);
6 console.log(result);
7}
8executeDeletion();
9

질문 설정 가져오기 Internal Link


매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetQuestionConfigResponse

예시

getQuestionConfig 예시
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const questionId: string = "q-987654321";
4
5const configResponse: GetQuestionConfigResponse = await getQuestionConfig(tenantId, questionId);
6
7const status: APIStatus = configResponse.status;
8const questionConfig?: QuestionConfig = configResponse.question;
9const firstOption?: QuestionConfigCustomOptionsInner = questionConfig?.customOptions?.[0];
10

질문 설정 목록 가져오기 Internal Link

매개변수

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

응답

반환: GetQuestionConfigsResponse

예시

getQuestionConfigs 예시
Copy Copy
1
2async function fetchConfigs() {
3 const tenantId: string = "tenant_12345";
4
5 const firstPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId);
6 const secondPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId, 20);
7}
8

질문 설정 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateQuestionConfigBodyUpdateQuestionConfigBody예

응답

반환: APIEmptyResponse

예시

updateQuestionConfig 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const questionId: string = "question-42";
5
6 const updateBody: UpdateQuestionConfigBody = {
7 title: "Revised FAQ Question"
8 // isActive, customOptions 등은 선택 사항이며 생략되었습니다
9 };
10
11 const response: APIEmptyResponse = await updateQuestionConfig(tenantId, questionId, updateBody);
12 console.log(response);
13})();
14

질문 결과 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyYes

응답

반환: CreateQuestionResultResponse

예시

createQuestionResult 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "q_9876",
6 answer: "Yes",
7 score: 5,
8 meta: [
9 { key: "source", value: "survey" }
10 ]
11};
12
13const result: CreateQuestionResultResponse = await createQuestionResult(tenantId, createQuestionResultBody);
14

질문 결과 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIEmptyResponse

예시

deleteQuestionResult 예시
Copy Copy
1
2async function runDelete() {
3 const tenantId: string = "tenant_12345";
4 const resultId: string = "qr_98765";
5
6 const response: APIEmptyResponse = await deleteQuestionResult(tenantId, resultId);
7 console.log(response);
8}
9

질문 결과 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetQuestionResultResponse

예시

getQuestionResult 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const questionId: string = "question_98765";
4
5const response: GetQuestionResultResponse = await getQuestionResult(tenantId, questionId);
6
7const status: APIStatus | undefined = response.status;
8const firstResult: QuestionResult | undefined = response.results?.[0];
9const firstMeta: MetaItem | undefined = response.meta?.[0];
10
11console.log(response);
12

질문 결과 목록 가져오기 Internal Link

매개변수

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

응답

반환: GetQuestionResultsResponse

예시

getQuestionResults 예시
Copy Copy
1
2async function fetchResults() {
3 const tenantId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'blog-post-789';
5 const startDate: string = '2023-01-01T00:00:00Z';
6 const questionIds: string = 'q-abc123,q-def456';
7 const response: GetQuestionResultsResponse = await getQuestionResults(
8 tenantId,
9 urlId,
10 undefined,
11 startDate,
12 undefined,
13 questionIds
14 );
15 console.log(response);
16}
17

질문 결과 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

응답

반환: APIEmptyResponse

예시

updateQuestionResult 예시
Copy Copy
1
2const tenantId: string = "c1f5e8b2-9a4d-4f3a-8d2e-6b7c9d0e1f2a";
3const questionId: string = "qstn_1234567890";
4
5const updateBody: UpdateQuestionResultBody = {
6 score: 85,
7 comment: "Adjusted based on new criteria",
8 meta: [
9 { key: "reviewer", value: "john.doe@example.com" },
10 { key: "timestamp", value: new Date().toISOString() }
11 ]
12};
13
14const response: APIEmptyResponse = await updateQuestionResult(tenantId, questionId, updateBody);
15

질문 결과 집계 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
questionIdstring아니오
questionIdsArray아니오
urlIdstring아니오
timeBucketAggregateTimeBucket아니오
startDateDate아니오
forceRecalculateboolean아니오

응답

반환: AggregateQuestionResultsResponse

예시

aggregateQuestionResults 예시
Copy Copy
1
2async function runAggregation() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const questionId: string = 'question-9f8e7d6c5b4a3';
5 const questionIds: string[] = ['question-1a2b3c', 'question-4d5e6f'];
6 const urlId: string = 'blog-post-2023-08-15';
7 const startDate: Date = new Date('2023-01-01T00:00:00Z');
8 const forceRecalculate: boolean = true;
9
10 const result: AggregateQuestionResultsResponse = await aggregateQuestionResults(
11 tenantId,
12 questionId,
13 questionIds,
14 urlId,
15 undefined,
16 startDate,
17 forceRecalculate
18 );
19}
20

대량 질문 결과 집계 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequest예
forceRecalculateboolean아니오

응답

반환: BulkAggregateQuestionResultsResponse

예시

bulkAggregateQuestionResults 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const request: BulkAggregateQuestionResultsRequest = {
5 items: [
6 {
7 questionId: "q_9876",
8 startDate: "2023-01-01T00:00:00Z",
9 endDate: "2023-01-31T23:59:59Z",
10 timeBucket: "day"
11 }
12 ]
13};
14
15const response: BulkAggregateQuestionResultsResponse = await bulkAggregateQuestionResults(tenantId, request, true);
16

댓글과 질문 결과 결합 Internal Link

매개변수

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

응답

반환: CombineQuestionResultsWithCommentsResponse

예제

combineCommentsWithQuestionResults 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const questionId: string | undefined = "q_987";
5 const questionIds: string[] = ["q_001", "q_002"];
6 const urlId: string | undefined = "url_abc";
7 const startDate: Date = new Date("2023-01-01T00:00:00Z");
8 const forceRecalculate: boolean = true;
9 const minValue: number = 0;
10 const maxValue: number = 100;
11 const limit: number = 50;
12
13 const result: CombineQuestionResultsWithCommentsResponse = await combineCommentsWithQuestionResults(
14 tenantId,
15 questionId,
16 questionIds,
17 urlId,
18 startDate,
19 forceRecalculate,
20 minValue,
21 maxValue,
22 limit
23 );
24
25 console.log(result);
26}
27
28runExample();
29

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

매개변수

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

응답

반환: DeleteSubscriptionAPIResponse

예제

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아니오

응답

반환: GetTenantDailyUsagesResponse

예시

getTenantDailyUsages 예시
Copy Copy
1
2async function demoGetTenantDailyUsages() {
3 const tenantId: string = "tenant_9876";
4 const yearNumber: number = 2024;
5 const monthNumber: number = 2;
6 const dayNumber: number = 28;
7 const skip: number = 10;
8
9 const fullResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
10 tenantId,
11 yearNumber,
12 monthNumber,
13 dayNumber,
14 skip
15 );
16
17 const partialResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
18 tenantId,
19 yearNumber
20 );
21}
22

테넌트 패키지 생성 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstring예
createTenantPackageBodyCreateTenantPackageBody예

Response

반환: CreateTenantPackageResponse

Example

createTenantPackage 예시
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const createTenantPackageBody: CreateTenantPackageBody = {
5 name: "Enterprise Package",
6 priceCents: 49999,
7 // 선택적 필드
8 description: "Full suite of enterprise features"
9 };
10 const result: CreateTenantPackageResponse = await createTenantPackage(tenantId, createTenantPackageBody);
11 console.log(result);
12}
13runExample();
14

테넌트 패키지 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes

응답

반환: APIEmptyResponse

예시

deleteTenantPackage 예시
Copy Copy
1
2let tenantId: string = "tenant_12345";
3let packageId: string = "pkg_98765";
4
5const result: APIEmptyResponse = await deleteTenantPackage(tenantId, packageId);
6

테넌트 패키지 가져오기 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

반환: GetTenantPackageResponse

Example

getTenantPackage 예제
Copy Copy
1
2function fetchPackage(tenantId?: string, id?: string): Promise<GetTenantPackageResponse> {
3 const tid: string = tenantId ?? "acme-corp-001";
4 const pid: string = id ?? "premium-plan-2024";
5 return getTenantPackage(tid, pid);
6}
7
8async function runExample(): Promise<void> {
9 const response: GetTenantPackageResponse = await fetchPackage();
10 const status: APIStatus | undefined = response.status;
11 const pkg: TenantPackage | undefined = response.package;
12}
13

테넌트 패키지 목록 가져오기 Internal Link

매개변수

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

응답

반환: GetTenantPackagesResponse

예시

getTenantPackages 예제
Copy Copy
1
2async function fetchPackages() {
3 const tenantId: string = "acme-corp-001";
4 const skip: number = 15;
5
6 const resultWithSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId, skip);
7 const resultWithoutSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId);
8}
9

테넌트 패키지 교체 Internal Link

Parameters

이름유형필수설명
tenantIdstring예
idstring예
replaceTenantPackageBodyReplaceTenantPackageBody예

응답

반환: APIEmptyResponse

예시

replaceTenantPackage 예제
Copy Copy
1
2async function replacePackageDemo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const packageId: string = "basic-plan-2023";
5 const replaceBody: ReplaceTenantPackageBody = {
6 newPackageId: "enterprise-plan-2024"
7 // 필요에 따라 여기에서 선택적 필드를 추가할 수 있습니다
8 };
9 const response: APIEmptyResponse = await replaceTenantPackage(tenantId, packageId, replaceBody);
10 console.log(response);
11}
12

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

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
updateTenantPackageBodyUpdateTenantPackageBodyYes

응답

반환: APIEmptyResponse

예시

updateTenantPackage 예제
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const packageId: string = "pkg_3a2b1c";
4
5const updateBody: UpdateTenantPackageBody = {
6 // 선택적 필드는 필요에 따라 생략하거나 포함할 수 있습니다
7 // newPackageName?: string;
8 // renewalDate?: string;
9};
10
11const result: APIEmptyResponse = await updateTenantPackage(tenantId, packageId, updateBody);
12

테넌트 사용자 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

응답

반환: CreateTenantUserResponse

예시

createTenantUser 예시
Copy Copy
1
2async function addTenantUser() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const digestFreq: DigestEmailFrequency = 'daily';
5 const body: CreateTenantUserBody = {
6 email: 'jane.doe@example.com',
7 firstName: 'Jane',
8 lastName: 'Doe',
9 role: 'admin',
10 digestEmailFrequency: digestFreq,
11 phoneNumber: '+15551234567' // 선택 사항
12 };
13 const response: CreateTenantUserResponse = await createTenantUser(tenantId, body);
14 console.log(response);
15}
16addTenantUser();
17

테넌트 사용자 삭제 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
deleteCommentsstringNo
commentDeleteModestringNo

응답

반환: APIEmptyResponse

예시

deleteTenantUser 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "u-112233";
5
6 const result1: APIEmptyResponse = await deleteTenantUser(tenantId, userId);
7 const result2: APIEmptyResponse = await deleteTenantUser(tenantId, userId, "true", "hard");
8
9 console.log(result1, result2);
10})();
11

테넌트 사용자 가져오기 Internal Link

Parameters

이름유형필수설명
tenantIdstringYes
idstringYes

Response

반환: GetTenantUserResponse

Example

getTenantUser 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-tenant-001";
4 const userId: string = "user-12345";
5 const response: GetTenantUserResponse = await getTenantUser(tenantId, userId);
6 console.log(response);
7})();
8

테넌트 사용자 목록 가져오기 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipnumberNo

Response

반환: GetTenantUsersResponse

Example

getTenantUsers 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const skip: number = 20;
4
5const firstPage: GetTenantUsersResponse = await getTenantUsers(tenantId);
6const secondPage: GetTenantUsersResponse = await getTenantUsers(tenantId, skip);
7

테넌트 사용자 교체 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

응답

반환: APIEmptyResponse

예시

replaceTenantUser 예시
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const userId: string = "user-987654321";
4const replaceBody: ReplaceTenantUserBody = {
5 email: "newuser@example.com",
6 name: "New User",
7 role: "admin"
8};
9
10const response: APIEmptyResponse = await replaceTenantUser(
11 tenantId,
12 userId,
13 replaceBody,
14 "Migrated user to new tenant"
15);
16

매개변수

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
redirectURLstringNo

응답

반환: APIEmptyResponse

예제

sendLoginLink 예제
Copy Copy
1
2interface APIStatus {
3 // 상태 필드
4}
5
6interface APIEmptyResponse {
7 status: APIStatus;
8}
9
10(async () => {
11 const tenantId: string = "acme-corp";
12 const userId: string = "user-98765";
13 const redirectURL: string = "https://app.example.com/welcome";
14
15 const responseWithRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId, redirectURL);
16 const responseWithoutRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId);
17})();
18

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

매개변수

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

응답

반환: APIEmptyResponse

예시

updateTenantUser 예제
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_987";
5 const updateBody: UpdateTenantUserBody = {
6 email: "new.email@example.com",
7 role: "admin",
8 isActive: true
9 };
10 const comment: string = "Promoted to admin role";
11
12 const result: APIEmptyResponse = await updateTenantUser(tenantId, userId, updateBody, comment);
13 console.log(result);
14}
15
16runUpdate();
17

테넌트 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

응답

반환: CreateTenantResponse

예시

createTenant 예시
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp-2024";
4 const createTenantBody: CreateTenantBody = {
5 name: "Acme Corp",
6 domainConfiguration: { domain: "comments.acme.com", sslEnabled: true },
7 importedSite: { siteId: "site-123", source: "wordpress" },
8 billingInfo: { plan: "enterprise", renewalDate: "2025-01-01" },
9 description: "Tenant for Acme Corp's production environment", // 선택 사항
10 };
11 const response: CreateTenantResponse = await createTenant(tenantId, createTenantBody);
12}
13run();
14

테넌트 삭제 Internal Link

매개변수

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

응답

반환: APIEmptyResponse

예시

deleteTenant 예시
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_9876";
5
6 const resultWithoutSure: APIEmptyResponse = await deleteTenant(tenantId, userId);
7 const resultWithSure: APIEmptyResponse = await deleteTenant(tenantId, userId, "confirm");
8}
9
10main();
11

테넌트 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: GetTenantResponse

예제

getTenant 예제
Copy Copy
1
2async function fetchTenant(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "tenant_12345";
5
6 const tenantResponse: GetTenantResponse = await getTenant(tenantId, id);
7
8 // 응답에서 선택적 필드
9 const billing: BillingInfo | undefined = tenantResponse.billingInfo;
10 const domainConfig: APIDomainConfiguration | undefined = tenantResponse.domainConfiguration;
11}
12

테넌트 목록 가져오기 Internal Link

매개변수

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

응답

Returns: GetTenantsResponse

예제

getTenants 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c3f5e9b2-4d1a-4f2b-9a6e-1234567890ab";
4 const meta: string = "includeBilling";
5 const skip: number = 10;
6
7 const result: GetTenantsResponse = await getTenants(tenantId, meta, skip);
8 console.log(result);
9}
10runExample();
11

테넌트 업데이트 Internal Link

Parameters

이름타입필수설명
tenantIdstring예
idstring예
updateTenantBodyUpdateTenantBody예

응답

반환: APIEmptyResponse

예시

updateTenant 예시
Copy Copy
1
2async function runUpdateTenant() {
3 const tenantId: string = "tenant-abc123";
4 const id: string = "config-456def";
5
6 const updateTenantBody: UpdateTenantBody = {
7 // 필수 필드
8 name: "Acme International",
9 // 선택적 필드는 생략할 수 있습니다, 예: billingInfo, domainConfiguration
10 };
11
12 const response: APIEmptyResponse = await updateTenant(tenantId, id, updateTenantBody);
13 console.log(response);
14}
15

티켓 상태 변경 Internal Link

매개변수

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

응답

반환: ChangeTicketStateResponse

예시

changeTicketState 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe";
5 const ticketId: string = "ticket-20230915-001";
6
7 const changeTicketStateBody: ChangeTicketStateBody = {
8 // 선택적 필드 예시
9 note: "Resolved after investigation"
10 };
11
12 const response: ChangeTicketStateResponse = await changeTicketState(
13 tenantId,
14 userId,
15 ticketId,
16 changeTicketStateBody
17 );
18
19 console.log(response);
20})();
21

티켓 생성 Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringYes
createTicketBodyCreateTicketBodyYes

Response

반환: CreateTicketResponse

Example

createTicket 예시
Copy Copy
1
2async function submitTicket() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5
6 const ticketBody: CreateTicketBody = {
7 subject: "Login issues after password reset",
8 description: "User reports being unable to log in despite using the new password.",
9 priority: "medium",
10 // CreateTicketBody의 선택적 필드
11 tags: ["login", "password-reset"]
12 };
13
14 const response: CreateTicketResponse = await createTicket(tenantId, userId, ticketBody);
15 console.log(response);
16}
17
18submitTicket();
19

티켓 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes
userIdstringNo

응답

반환: GetTicketResponse

예시

getTicket 예제
Copy Copy
1
2async function fetchTickets() {
3 const tenantId: string = "acme-corp";
4 const ticketId: string = "ticket-12345";
5 const userId: string = "user-9876";
6
7 const ticketWithUser: GetTicketResponse = await getTicket(tenantId, ticketId, userId);
8 const ticketWithoutUser: GetTicketResponse = await getTicket(tenantId, ticketId);
9}
10

티켓 목록 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
userIdstringNo
statenumberNo
skipnumberNo
limitnumberNo

응답

반환: GetTicketsResponse

예시

getTickets 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const ticketsSimple: GetTicketsResponse = await getTickets(tenantId);
5
6 const userId: string = "user_9876";
7 const state: number = 1; // 예: 열림
8 const skip: number = 0;
9 const limit: number = 20;
10 const ticketsFull: GetTicketsResponse = await getTickets(
11 tenantId,
12 userId,
13 state,
14 skip,
15 limit
16 );
17})();
18

번역 가져오기 Internal Link

매개변수

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

응답

반환: GetTranslationsResponse

예시

getTranslations 예시
Copy Copy
1
2async function fetchTranslations() {
3 const adminDashboard: GetTranslationsResponse = await getTranslations('admin', 'dashboard');
4 const userProfileFr: GetTranslationsResponse = await getTranslations('user', 'profile', 'fr-FR', true);
5}
6

이미지 업로드 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


매개변수

이름유형필수설명
tenantIdstring예
idstring예

응답

반환: APIGetUserBadgeProgressResponse

예시

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

배지 진행 상황(사용자 ID) 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
userIdstring예

응답

반환: APIGetUserBadgeProgressResponse

예시

getUserBadgeProgressByUserId 예시
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-42";
4
5const badgeProgress: APIGetUserBadgeProgressResponse = await getUserBadgeProgressByUserId(tenantId, userId);
6
7if (badgeProgress.status?.code !== undefined) {
8 const statusCode: number = badgeProgress.status.code;
9}
10
11if (badgeProgress.progress?.length) {
12 const firstProgress: UserBadgeProgress = badgeProgress.progress[0];
13}
14

배지 진행 상황 목록 가져오기 Internal Link

Parameters

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

응답

반환: APIGetUserBadgeProgressListResponse

예시

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

사용자 배지 생성 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
createUserBadgeParamsCreateUserBadgeParams예

응답

반환: APICreateUserBadgeResponse

예시

createUserBadge 예시
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c";
4 const badgeParams: CreateUserBadgeParams = {
5 name: "Community Helper",
6 iconUrl: "https://cdn.example.com/badges/helper.png"
7 };
8 const response: APICreateUserBadgeResponse = await createUserBadge(tenantId, badgeParams);
9}
10main();
11

사용자 배지 삭제 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes

응답

반환: APIEmptySuccessResponse

예시

deleteUserBadge 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const badgeId: string = "moderator-badge";
5 const result: APIEmptySuccessResponse = await deleteUserBadge(tenantId, badgeId);
6 console.log(result);
7})();
8

사용자 배지 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
idstringYes

응답

반환: APIGetUserBadgeResponse

예시

getUserBadge 예시
Copy Copy
1
2async function demoGetUserBadge() {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const userId: string = "user-123456";
5 const badgeResponse: APIGetUserBadgeResponse = await getUserBadge(tenantId, userId);
6}
7

사용자 배지 목록 가져오기 Internal Link

매개변수

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

응답

반환: APIGetUserBadgesResponse

예시

getUserBadges 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4
5 // 모든 매개변수가 제공됨
6 const fullResponse: APIGetUserBadgesResponse = await getUserBadges(
7 tenantId,
8 "user-42",
9 "badge-premium",
10 1,
11 true,
12 10,
13 0
14 );
15
16 // 필수 매개변수와 하나의 선택 매개변수(limit)만 제공됨
17 const limitedResponse: APIGetUserBadgesResponse = await getUserBadges(
18 tenantId,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 5
24 );
25
26 console.log(fullResponse, limitedResponse);
27})();
28

사용자 배지 업데이트 Internal Link

매개변수

이름유형필수설명
tenantIdstring예
idstring예
updateUserBadgeParamsUpdateUserBadgeParams예

응답

반환: APIEmptySuccessResponse

예시

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

사용자 알림 카운트 가져오기 Internal Link


매개변수

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

응답

반환: GetUserNotificationCountResponse

예시

getUserNotificationCount 예제
Copy Copy
1
2async function demo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const ssoToken: string = "sso-token-xyz789";
5
6 const countWithoutSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId);
7 const countWithSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId, ssoToken);
8}
9
10demo();
11

사용자 알림 가져오기 Internal Link

매개변수

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringNo
pageSizenumberNo
afterIdstringNo
includeContextbooleanNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
includeTranslationsbooleanNo
includeTenantNotificationsbooleanNo
ssostringNo

응답

반환: GetMyNotificationsResponse

예시

getUserNotifications 예시
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "article-42";
5 const pageSize: number = 20;
6 const includeContext: boolean = true;
7 const unreadOnly: boolean = true;
8
9 const notifications: GetMyNotificationsResponse = await getUserNotifications(
10 tenantId,
11 urlId,
12 pageSize,
13 undefined,
14 includeContext,
15 undefined,
16 unreadOnly
17 );
18
19 console.log(notifications);
20}
21

사용자 알림 카운트 초기화 Internal Link

매개변수

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

응답

반환: ResetUserNotificationsResponse

예제

resetUserNotificationCount 예제
Copy Copy
1
2async function demoReset() {
3 const tenantId: string = "tenant_12345";
4 const ssoToken: string = "sso_abcdef123456";
5
6 const resultWithSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId, ssoToken);
7 const resultWithoutSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId);
8}
9
10demoReset();
11

사용자 알림 초기화 Internal Link

매개변수

이름타입필수설명
tenantIdstring예
afterIdstring아니오
afterCreatedAtnumber아니오
unreadOnlyboolean아니오
dmOnlyboolean아니오
noDmboolean아니오
ssostring아니오

응답

반환: ResetUserNotificationsResponse

예시

resetUserNotifications 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const afterId: string = "notif-2023-09-01";
5 const afterCreatedAt: number = 1693526400; // 유닉스 타임스탬프
6 const unreadOnly: boolean = true;
7 const dmOnly: boolean = false;
8
9 const response: ResetUserNotificationsResponse = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly
15 );
16
17 console.log(response);
18})();
19

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

Enable or disable notifications for a specific comment.

Parameters

이름유형필수설명
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

Response

반환: UpdateUserNotificationCommentSubscriptionStatusResponse

Example

updateUserNotificationCommentSubscriptionStatus 예시
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const notificationId: string = "notif_9876";
5 const commentId: string = "comment_abc123";
6 const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum =
7 UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
8 const sso: string = "sso_token_456";
9
10 const resultWithSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
11 tenantId,
12 notificationId,
13 optedInOrOut,
14 commentId,
15 sso
16 );
17
18 const resultWithoutSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
19 tenantId,
20 notificationId,
21 optedInOrOut,
22 commentId
23 );
24}
25

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

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

Parameters

이름유형필수설명
tenantIdstring예
urlIdstring예
urlstring예
pageTitlestring예
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum예
ssostring아니오

Response

반환: UpdateUserNotificationPageSubscriptionStatusResponse

Example

updateUserNotificationPageSubscriptionStatus 예제
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const url: string = "https://example.com/articles/awesome-article";
6 const pageTitle: string = "Awesome Article";
7 const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum =
8 UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
9 const sso: string = "sso_token_abc";
10
11 const response: UpdateUserNotificationPageSubscriptionStatusResponse = await updateUserNotificationPageSubscriptionStatus(
12 tenantId,
13 urlId,
14 url,
15 pageTitle,
16 subscribedOrUnsubscribed,
17 sso
18 );
19
20 console.log(response);
21}
22
23runExample();
24

알림 상태 업데이트 Internal Link

매개변수

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

응답

반환: UpdateUserNotificationStatusResponse

예시

updateUserNotificationStatus 예시
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const notificationId: string = "notif_9876";
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.READ;
5const ssoToken: string = "sso_token_abc";
6
7const responseWithSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
8 tenantId,
9 notificationId,
10 newStatus,
11 ssoToken
12);
13
14const responseWithoutSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
15 tenantId,
16 notificationId,
17 newStatus
18);
19

사용자 존재 상태 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdWSstringYes
userIdsstringYes

응답

반환: GetUserPresenceStatusesResponse

예시

getUserPresenceStatuses 예제
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-tenant-42";
4 const urlIdWS: string = "post-9876";
5 const userIds: string = "alice,bob,carol";
6
7 const presence: GetUserPresenceStatusesResponse = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
8 console.log(presence);
9})();
10

사용자 검색 Internal Link

매개변수

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

응답

반환: SearchUsersResult

예시

searchUsers 예시
Copy Copy
1
2async function example() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const usernameStartsWith: string = "john";
6 const mentionGroupIds: string[] = ["group1", "group2"];
7 const sso: string = "sso_token_abc";
8 const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.MENTIONS;
9
10 const result: SearchUsersResult = await searchUsers(
11 tenantId,
12 urlId,
13 usernameStartsWith,
14 mentionGroupIds,
15 sso,
16 searchSection
17 );
18
19 console.log(result);
20}
21

사용자 가져오기 Internal Link

매개변수

이름타입필수설명
tenantIdstringYes
idstringYes

응답

반환: GetUserResponse

예시

getUser 예제
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_98765";
5 const response: GetUserResponse = await getUser(tenantId, id);
6 const { user }: { user?: User } = response;
7}
8main();
9

투표 생성 Internal Link

매개변수

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

응답

반환: VoteResponse

예시

createVote 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "comment_67890";
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.UP;
5const userId: string = "user_abcde";
6
7const voteResult: VoteResponse = await createVote(tenantId, commentId, direction, userId);
8
9const anonUserId: string = "anon_zyxwv";
10const anonVoteResult: VoteResponse = await createVote(tenantId, commentId, direction, undefined, anonUserId);
11

투표 삭제 Internal Link

매개변수

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

응답

반환: VoteDeleteResponse

예제

deleteVote 예제
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const editKey: string = "edit_abcde";
6
7 const responseWithKey: VoteDeleteResponse = await deleteVote(tenantId, commentId, editKey);
8 const responseWithoutKey: VoteDeleteResponse = await deleteVote(tenantId, commentId);
9}
10
11run();
12

투표 가져오기 Internal Link

매개변수

이름유형필수설명
tenantIdstringYes
urlIdstringYes

응답

반환: GetVotesResponse

예제

getVotes 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "article-67890";
4
5(async () => {
6 const votesResponse: GetVotesResponse = await getVotes(tenantId, urlId);
7 // 응답에서 선택적 속성에 접근하는 예시
8 const firstVote: PublicVote | undefined = votesResponse.votes?.[0];
9})();
10

사용자 투표 가져오기 Internal Link

매개변수

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

응답

반환: GetVotesForUserResponse

예제

getVotesForUser 예제
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post_9876";
5 const userId: string = "user_abcde";
6 const anonUserId: string = "anon_5678";
7
8 const responseWithUser: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, userId);
9 const responseWithAnon: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
10}
11
12demo();
13

웹훅 생성 Internal Link

Subscribes a URL to a comment event (REST hook subscribe). Subscribing the same URL to the same event and domain again returns the existing subscription. Deliveries are HMAC signed, see the webhooks guide; the legacy token header is never sent to API subscriptions.

Parameters

이름유형필수설명
tenantIdstringYes
createWebhookParamsCreateWebhookParamsYes

Response

반환: CreateWebhookResponse

예시

createWebhook 예시
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const webhookParams: CreateWebhookParams = {
5 event: "comment.created" as WebhookEventName,
6 method: "POST" as WebhookHTTPMethod,
7 url: "https://myapp.example.com/webhook",
8 source: "comment" as WebhookSource,
9 // 페이로드 검증을 위한 선택적 비밀키
10 secret: "s3cr3tK3y123",
11};
12
13const result: CreateWebhookResponse = await createWebhook(tenantId, webhookParams);
14
15const webhookId: string = result.webhook.id;
16

웹훅 삭제 Internal Link

구독 취소 (REST 훅 구독 취소). 이 API를 통해 생성된 구독만 여기에서 삭제할 수 있습니다; 대시보드에서 관리되는 웹훅은 대시보드에서 편집됩니다.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Response

반환: APIEmptyResponse

Example

deleteWebhook 예제
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const webhookId: string = "wh_98765";
4
5const result: APIEmptyResponse = await deleteWebhook(tenantId, webhookId);
6

웹훅 가져오기 Internal Link

테넌트에 구성된 웹훅을 나열합니다. 대시보드에서 관리되는 행과 API 구독 모두 포함됩니다.

매개변수

이름유형필수설명
tenantIdstringYes
eventWebhookEventNameNo
domainstringNo
sourceWebhookSourceNo
skipnumberNo

응답

반환: GetWebhooksResponse

예시

getWebhooks 예시
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42';
4 const event: WebhookEventName = 'comment.created';
5 const domain: string = 'forum.example.org';
6 const source: WebhookSource = 'admin';
7 const skip: number = 0;
8
9 const fullResponse: GetWebhooksResponse = await getWebhooks(tenantId, event, domain, source, skip);
10 const minimalResponse: GetWebhooksResponse = await getWebhooks(tenantId);
11})();
12

웹훅 샘플 페이로드 가져오기 Internal Link

Recent comments in exactly the shape webhook deliveries use, for building integrations (for example Zapier sample data). Every event delivers the same comment object, so event only has to be valid.

Parameters

이름타입필수설명
tenantIdstring예
eventWebhookEventName아니오
limitnumber아니오

Response

반환: GetWebhookSamplePayloadsResponse

Example

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

도움을 원하십니까?

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

기여

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