FastComments.com

FastComments JavaScript/TypeScript SDK


์ด๊ฒƒ์€ FastComments์šฉ ๊ณต์‹ JavaScript/TypeScript SDK์ž…๋‹ˆ๋‹ค.

FastComments API์šฉ ๊ณต์‹ JavaScript/TypeScript SDK

์ €์žฅ์†Œ

GitHub์—์„œ ๋ณด๊ธฐ


์„ค์น˜ Internal Link

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 (๊ธฐ๋ณธ) - ํƒ€์ž… ์ „์šฉ, ์–ด๋””์„œ๋‚˜ ์•ˆ์ „ํ•˜๊ฒŒ ์ž„ํฌํŠธ ๊ฐ€๋Šฅ

๊ณต๊ฐœ vs ๋ณดํ˜ธ๋œ API Internal Link

The SDK๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” API ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • DefaultApi - ์ธ์ฆ์„ ์œ„ํ•ด API ํ‚ค๊ฐ€ ํ•„์š”ํ•œ ๋ณด์•ˆ ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก ์ž‘์—…์— ์‚ฌ์šฉํ•˜์„ธ์š”.
  • PublicApi - API ํ‚ค ์—†์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐœ ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €/๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ๋“ฑ์—์„œ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • HiddenApi - ๊ณ ๊ธ‰ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•œ ๋‚ด๋ถ€/๊ด€๋ฆฌ์ž์šฉ ์—”๋“œํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ: Public API ์‚ฌ์šฉ (๋ธŒ๋ผ์šฐ์ €์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉ)

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

const publicApi = new PublicApi();

// ํŽ˜์ด์ง€์˜ ๋Œ“๊ธ€์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค (API ํ‚ค ํ•„์š” ์—†์Œ)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

์˜ˆ์‹œ: Default API ์‚ฌ์šฉ (์„œ๋ฒ„ ์ธก ์ „์šฉ)

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

const config = new Configuration({
  apiKey: 'your-api-key' // ๋น„๋ฐ€๋กœ ์œ ์ง€ํ•˜์„ธ์š”!
});
const defaultApi = new DefaultApi(config);

// ์ „์ฒด ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋Œ“๊ธ€์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO(์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ) ํ†ตํ•ฉ Internal Link

FastComments๋Š” ๊ธฐ์กด ์‚ฌ์šฉ์ž ์ธ์ฆ ์‹œ์Šคํ…œ๊ณผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด SSO๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. SSO ๊ธฐ๋Šฅ์€ Node.js์˜ crypto ๊ธฐ๋Šฅ์„ ํ•„์š”๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„ ๋‚ด๋ณด๋‚ด๊ธฐ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ SSO (์„œ๋ฒ„ ์ „์šฉ)

๊ฐ„๋‹จํ•œ SSO๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ์ƒ์„ฑ๋˜์–ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

// ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ (Node.js/๋ฐฑ์—”๋“œ)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

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

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

const ssoToken = sso.createToken();

// ssoToken์„ ํด๋ผ์ด์–ธํŠธ ์ธก ์ฝ”๋“œ๋กœ ์ „์†ก
// ํด๋ผ์ด์–ธํŠธ ์ธก ์ฝ”๋“œ๋Š” ์ด ํ† ํฐ์„ ๋ธŒ๋ผ์šฐ์ € SDK์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

๋ณด์•ˆ SSO (์„œ๋ฒ„ ์ธก, ๊ถŒ์žฅ)

๋ณด์•ˆ SSO๋Š” ์„œ๋ฒ„ ์ธก์— ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋ฉฐ ๋” ๋‚˜์€ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

// ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ (Node.js/๋ฐฑ์—”๋“œ)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

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

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

const ssoConfig = sso.prepareToSend();

// ์„œ๋ฒ„์—์„œ API ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์šฉ์„ ์œ„ํ•ด ssoConfig๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก

๋ธŒ๋ผ์šฐ์ €์—์„œ SSO ์‚ฌ์šฉ (์„œ๋ฒ„ ์ƒ์„ฑ ํ† ํฐ ํฌํ•จ)

// ํด๋ผ์ด์–ธํŠธ ์ธก ์ฝ”๋“œ (๋ธŒ๋ผ์šฐ์ €)
import { PublicApi } from 'fastcomments-sdk/browser';

// ์„œ๋ฒ„ ์—”๋“œํฌ์ธํŠธ์—์„œ SSO ํ† ํฐ ๊ฐ€์ ธ์˜ค๊ธฐ
const ssoToken = await fetch('/api/sso-token').then(r => r.json());

const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: ssoToken // ์„œ๋ฒ„์—์„œ ์ƒ์„ฑ๋œ SSO ํ† ํฐ ์‚ฌ์šฉ
});

๋Œ“๊ธ€ ์ƒ์„ฑ๊ณผ ํ•จ๊ป˜ํ•˜๋Š” SSO

// ์„œ๋ฒ„ ์ธก: SSO ๋ฐ ๋Œ“๊ธ€ ์ƒ์„ฑ
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

const sso = FastCommentsSSO.createSecure('your-api-key', userData);
const ssoConfig = sso.prepareToSend();

const response = await publicApi.createCommentPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  broadcastId: 'unique-broadcast-id',
  commentData: {
    comment: 'This is my comment',
    date: Date.now(),
    commenterName: 'John Doe',
    url: 'https://example.com/page',
    urlId: 'page-url-id'
  },
  sso: JSON.stringify(ssoConfig)
});

์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€ Internal Link

ํŽ˜์ด์ง€์˜ ๋Œ“๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ

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

๋Œ“๊ธ€ ์ƒ์„ฑ

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

๋Œ“๊ธ€์— ํˆฌํ‘œํ•˜๊ธฐ

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1์€ ์ฐฌ์„ฑ(์—…๋ณดํŠธ), -1์€ ๋ฐ˜๋Œ€(๋‹ค์šด๋ณดํŠธ)
  }
});

์‚ฌ์šฉ์ž ๊ด€๋ฆฌ (API ํ‚ค ํ•„์š”)

// ์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰ (DefaultApi ํ•„์š”)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ(์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ) Internal Link

๋Œ“๊ธ€, ํˆฌํ‘œ ๋ฐ ๊ธฐํƒ€ ํ™œ๋™์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜์„ธ์š”.

ํŽ˜์ด์ง€ ์ˆ˜์ค€ ์ด๋ฒคํŠธ

ํŠน์ • ํŽ˜์ด์ง€์˜ ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ(๋Œ“๊ธ€, ํˆฌํ‘œ ๋“ฑ)๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค:

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

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

// ํŠน์ • ํŽ˜์ด์ง€์˜ ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (getComments ์‘๋‹ต์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค)
  (event: LiveEvent) => {
    console.log('Live event received:', event);

    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // ์ƒˆ ๋Œ“๊ธ€๋กœ UI๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // UI์˜ ํˆฌํ‘œ ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }

    return true; // ์ด๋ฒคํŠธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์—ˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// ์™„๋ฃŒ๋˜๋ฉด ๊ตฌ๋…์„ ๋‹ซ์Šต๋‹ˆ๋‹ค
subscription.close();

์‚ฌ์šฉ์ž ์ด๋ฒคํŠธ ๊ตฌ๋…

์‚ฌ์šฉ์ž๋ณ„ ์ด๋ฒคํŠธ(์•Œ๋ฆผ, ๋ฉ˜์…˜ ๋“ฑ)๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค:

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

const userConfig = {
  userIdWS: 'user-session-id', // getComments ์‘๋‹ต์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค
};

// ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ํ”ผ๋“œ๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);

    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // UI์— ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค
        break;
      case LiveEventType.notification_update:
        console.log('Notification updated:', event.notification);
        break;
      default:
        console.log('Other user event:', event.type);
    }

    return true;
  },
  (isConnected: boolean) => {
    console.log('User feed connection:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// ์™„๋ฃŒ๋˜๋ฉด ๋‹ซ์Šต๋‹ˆ๋‹ค
userSubscription.close();

userIdWS ๊ฐ€์ ธ์˜ค๊ธฐ

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

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

// ์‘๋‹ต์—์„œ userIdWS๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // ์ด์ œ ๋ผ์ด๋ธŒ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ID Internal Link

์ผ๋ถ€ API ํ˜ธ์ถœ์—์„œ๋Š” broadcastId๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ์ด ID๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฏ€๋กœ, ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‚™๊ด€์ ์œผ๋กœ ๋ณ€๊ฒฝ์„ ์ ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ(๊ฐ€์žฅ ์ข‹์€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์•„๋งˆ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค) ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ• ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” UUID๋ฅผ ์ „๋‹ฌํ•˜์„ธ์š”. ์ด ID๋Š” ๋ธŒ๋ผ์šฐ์ € ์„ธ์…˜์—์„œ ๋‘ ๋ฒˆ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ •๋„๋กœ ์ถฉ๋ถ„ํžˆ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

import { v4 as uuidv4 } from 'uuid';

const response = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'page-id',
    comment: 'My comment',
    broadcastId: uuidv4() // ์ด ์ž‘์—…์„ ์œ„ํ•œ ๊ณ ์œ  ID
  }
});

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ Internal Link

try {
  const comments = await sdk.publicApi.getCommentsPublic({
    tenantId: 'your-tenant-id',
    urlId: 'page-id'
  });
} catch (error) {
  if (error.response?.status === 404) {
    console.log('Page not found');
  } else {
    console.error('API Error:', error.message);
  }
}

์ง‘๊ณ„ Internal Link

๋ฌธ์„œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ (groupBy๊ฐ€ ์ œ๊ณต๋œ ๊ฒฝ์šฐ) ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์„ ์ ์šฉํ•ด ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์—ฐ์‚ฐ(์˜ˆ: sum, countDistinct, avg ๋“ฑ)์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
aggregationRequest AggregationRequest ์˜ˆ
parentTenantId string ์•„๋‹ˆ์š”
includeStats boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: AggregationResponse


๊ฐ์‚ฌ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
limit number ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค
order SORTDIR ์•„๋‹ˆ์˜ค
after number ์•„๋‹ˆ์˜ค
before number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetAuditLogs200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ์ฐจ๋‹จ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
publicBlockFromCommentParams PublicBlockFromCommentParams ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: BlockFromCommentPublic200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ์ฐจ๋‹จ ํ•ด์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
publicBlockFromCommentParams PublicBlockFromCommentParams ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: UnBlockCommentPublic200Response


์ฐจ๋‹จ๋œ ๋Œ“๊ธ€ ํ™•์ธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentIds string ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: CheckedCommentsForBlocked200Response

๋Œ“๊ธ€์—์„œ ์‚ฌ์šฉ์ž ์ฐจ๋‹จ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
blockFromCommentParams BlockFromCommentParams ์˜ˆ
userId string ์•„๋‹ˆ์š”
anonUserId string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: BlockFromCommentPublic200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
broadcastId string ์˜ˆ
commentData CommentData ์˜ˆ
sessionId string ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: CreateCommentPublic200Response


๋Œ“๊ธ€ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
contextUserId string ์•„๋‹ˆ์š”
isLive boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteComment200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
editKey string ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteCommentPublic200Response


๋Œ“๊ธ€ ํˆฌํ‘œ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
voteId string ์˜ˆ
urlId string ์˜ˆ
broadcastId string ์˜ˆ
editKey string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteCommentVote200Response


๋Œ“๊ธ€ ์‹ ๊ณ  Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagComment200Response


๋Œ“๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetComment200Response

๋Œ“๊ธ€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
page number ์•„๋‹ˆ์˜ค
limit number ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค
asTree boolean ์•„๋‹ˆ์˜ค
skipChildren number ์•„๋‹ˆ์˜ค
limitChildren number ์•„๋‹ˆ์˜ค
maxTreeDepth number ์•„๋‹ˆ์˜ค
urlId string ์•„๋‹ˆ์˜ค
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค
contextUserId string ์•„๋‹ˆ์˜ค
hashTag string ์•„๋‹ˆ์˜ค
parentId string ์•„๋‹ˆ์˜ค
direction SortDirections ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetComments200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

req tenantId urlId

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
page number ์•„๋‹ˆ์˜ค
direction SortDirections ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค
skipChildren number ์•„๋‹ˆ์˜ค
limit number ์•„๋‹ˆ์˜ค
limitChildren number ์•„๋‹ˆ์˜ค
countChildren boolean ์•„๋‹ˆ์˜ค
fetchPageForCommentId string ์•„๋‹ˆ์˜ค
includeConfig boolean ์•„๋‹ˆ์˜ค
countAll boolean ์•„๋‹ˆ์˜ค
includei10n boolean ์•„๋‹ˆ์˜ค
locale string ์•„๋‹ˆ์˜ค
modules string ์•„๋‹ˆ์˜ค
isCrawler boolean ์•„๋‹ˆ์˜ค
includeNotificationCount boolean ์•„๋‹ˆ์˜ค
asTree boolean ์•„๋‹ˆ์˜ค
maxTreeDepth number ์•„๋‹ˆ์˜ค
useFullTranslationIds boolean ์•„๋‹ˆ์˜ค
parentId string ์•„๋‹ˆ์˜ค
searchText string ์•„๋‹ˆ์˜ค
hashTags Array ์•„๋‹ˆ์˜ค
userId string ์•„๋‹ˆ์˜ค
customConfigStr string ์•„๋‹ˆ์˜ค
afterCommentId string ์•„๋‹ˆ์˜ค
beforeCommentId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetCommentsPublic200Response

๋Œ“๊ธ€ ํ…์ŠคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
editKey string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetCommentText200Response


๋Œ“๊ธ€ ํˆฌํ‘œ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
dir number ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetCommentVoteUserNames200Response


๋Œ“๊ธ€ ์ž ๊ธˆ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: LockComment200Response


๋Œ“๊ธ€ ๊ณ ์ • Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: PinComment200Response


๋Œ“๊ธ€ ์ €์žฅ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createCommentParams CreateCommentParams ์˜ˆ
isLive boolean ์•„๋‹ˆ์˜ค
doSpamCheck boolean ์•„๋‹ˆ์˜ค
sendEmails boolean ์•„๋‹ˆ์˜ค
populateNotifications boolean ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: SaveComment200Response


๋Œ“๊ธ€ ์ผ๊ด„ ์ €์žฅ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createCommentParams Array ์˜ˆ
isLive boolean ์•„๋‹ˆ์š”
doSpamCheck boolean ์•„๋‹ˆ์š”
sendEmails boolean ์•„๋‹ˆ์š”
populateNotifications boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: Array<SaveComment200Response

๋Œ“๊ธ€ ํ…์ŠคํŠธ ์„ค์ • Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
commentTextUpdateRequest CommentTextUpdateRequest ์˜ˆ
editKey string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: SetCommentText200Response


๋Œ“๊ธ€์—์„œ ์‚ฌ์šฉ์ž ์ฐจ๋‹จ ํ•ด์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
unBlockFromCommentParams UnBlockFromCommentParams ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: UnBlockCommentPublic200Response


๋Œ“๊ธ€ ์‹ ๊ณ  ํ•ด์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagComment200Response


๋Œ“๊ธ€ ์ž ๊ธˆ ํ•ด์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: LockComment200Response


๋Œ“๊ธ€ ๊ณ ์ • ํ•ด์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
broadcastId string ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: PinComment200Response

๋Œ“๊ธ€ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
body PickAPICommentUpdatableCommentFields ์˜ˆ
contextUserId string ์•„๋‹ˆ์˜ค
doSpamCheck boolean ์•„๋‹ˆ์˜ค
isLive boolean ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response


๋Œ“๊ธ€์— ํˆฌํ‘œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
urlId string ์˜ˆ
broadcastId string ์˜ˆ
voteBodyParams VoteBodyParams ์˜ˆ
sessionId string ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: VoteComment200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ์ถ”๊ฐ€ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
addDomainConfigParams AddDomainConfigParams ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: AddDomainConfig200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
domain string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteDomainConfig200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
domain string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetDomainConfig200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetDomainConfigs200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ๋ถ€๋ถ„ ์—…๋ฐ์ดํŠธ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
domainToUpdate string ์˜ˆ
patchDomainConfigParams PatchDomainConfigParams ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetDomainConfig200Response


๋„๋ฉ”์ธ ๊ตฌ์„ฑ ์ „์ฒด ๊ต์ฒด Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
domainToUpdate string ์˜ˆ
updateDomainConfigParams UpdateDomainConfigParams ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetDomainConfig200Response


์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createEmailTemplateBody CreateEmailTemplateBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateEmailTemplate200Response

์˜ˆ์ œ

createEmailTemplate ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_7a9f2b3d";
3
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Comment Notification",
6 subject: "New comment on your article: ",
7 htmlBody: "<p> left a comment:</p><blockquote></blockquote>",
8 enabled: true,
9 defaultLocale: "en-US",
10 metadata: { createdBy: "admin@example.com", purpose: "notify_comment" } // ์„ ํƒ์  ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ
11};
12
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteEmailTemplate ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_4b2f6a-4b2f6a2d";
3const templateId: string = "email_template_9f8b7c3e";
4const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
5const status: APIStatus | undefined = result?.status
6

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง ์˜ค๋ฅ˜ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
errorId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteEmailTemplateRenderError ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9c";
3const id: string = "template_4a1c9f7e";
4const errorId: string = "err_20260112_abc123";
5const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
6

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetEmailTemplate200Response

์˜ˆ์ œ

getEmailTemplate ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-enterprises-123';
4 const id: string = 'welcome-email-template-v2';
5 const locale: string | undefined = 'en-US'; // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์ œ
6 const template: GetEmailTemplate200Response = await getEmailTemplate(tenantId, id);
7 console.log(template, locale);
8})();
9

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์ •์˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetEmailTemplateDefinitions200Response

์˜ˆ์ œ

getEmailTemplateDefinitions ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-enterprises-78f2';
3const emailTemplates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง ์˜ค๋ฅ˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
skip number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetEmailTemplateRenderErrors200Response

์˜ˆ์ œ

getEmailTemplateRenderErrors ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_7b3f2a9c";
3const id: string = "tmpl_4f1b2c9e";
4const skip: number = 25;
5const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
6

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetEmailTemplates200Response

์˜ˆ์ œ

getEmailTemplates ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_8f4d2b7c';
3const responseWithoutSkip: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
4const skip: number = 20;
5const responseWithSkip: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
6

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ๋ Œ๋”๋ง Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
renderEmailTemplateBody RenderEmailTemplateBody ์˜ˆ
locale string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: RenderEmailTemplate200Response

์˜ˆ์ œ

renderEmailTemplate ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-corp-7f3';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'new-comment-notification',
5 recipientEmail: 'jane.doe@acme.com',
6 variables: {
7 commenterName: 'Samir Patel',
8 commentText: 'I found this article really helpful โ€” thanks for sharing!',
9 threadUrl: 'https://acme.com/blog/123#comments'
10 },
11 includeUnsubscribeLink: true
12};
13const locale: string = 'en-US';
14const response: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateEmailTemplateBody UpdateEmailTemplateBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateEmailTemplate ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const id: string = 'email_tpl_42b7a9';
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: 'Comment Flag Notification',
6 subject: 'A comment was flagged on acme.com',
7 html: '<p>A comment by was flagged. Review at </p>',
8 replyTo: 'noreply@acme.com', // ์„ ํƒ์  ํ•„๋“œ ์˜ˆ์‹œ
9 enabled: true,
10 customConfig: { priority: 'high' } // ์„ ํƒ์  ์‚ฌ์šฉ์ž ์ •์˜ ๋งค๊ฐœ๋ณ€์ˆ˜
11};
12const response: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
13

์ด๋ฒคํŠธ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

req tenantId urlId userIdWS

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
userIdWS string ์˜ˆ
startTime number ์˜ˆ
endTime number ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetEventLog200Response

๊ธ€๋กœ๋ฒŒ ์ด๋ฒคํŠธ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

req tenantId urlId userIdWS

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
userIdWS string ์˜ˆ
startTime number ์˜ˆ
endTime number ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetEventLog200Response


ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createFeedPostParams CreateFeedPostParams ์˜ˆ
broadcastId string ์•„๋‹ˆ์š”
isLive boolean ์•„๋‹ˆ์š”
doSpamCheck boolean ์•„๋‹ˆ์š”
skipDupCheck boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: CreateFeedPost200Response


๊ณต๊ฐœ ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ฑ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createFeedPostParams CreateFeedPostParams ์˜ˆ
broadcastId string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: CreateFeedPostPublic200Response


๊ณต๊ฐœ ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
postId string ์˜ˆ
broadcastId string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteFeedPostPublic200Response


ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


req tenantId afterId

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
afterId string ์•„๋‹ˆ์š”
limit number ์•„๋‹ˆ์š”
tags Array ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetFeedPosts200Response


๊ณต๊ฐœ ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


req tenantId afterId

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
afterId string ์•„๋‹ˆ์˜ค
limit number ์•„๋‹ˆ์˜ค
tags Array ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค
isCrawler boolean ์•„๋‹ˆ์˜ค
includeUserInfo boolean ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetFeedPostsPublic200Response


ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ํ†ต๊ณ„ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
postIds Array ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetFeedPostsStats200Response


๊ณต๊ฐœ ์‚ฌ์šฉ์ž ๋ฐ˜์‘ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
postIds Array ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserReactsPublic200Response


๊ณต๊ฐœ ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ์— ๋ฐ˜์‘ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
postId string ์˜ˆ
reactBodyParams ReactBodyParams ์˜ˆ
isUndo boolean ์•„๋‹ˆ์š”
broadcastId string ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: ReactFeedPostPublic200Response


ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
feedPost FeedPost ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response


๊ณต๊ฐœ ํ”ผ๋“œ ๊ฒŒ์‹œ๋ฌผ ์—…๋ฐ์ดํŠธ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
postId string ์˜ˆ
updateFeedPostParams UpdateFeedPostParams ์˜ˆ
broadcastId string ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: CreateFeedPostPublic200Response


๊ณต๊ฐœ ๋Œ“๊ธ€ ์‹ ๊ณ  Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
isFlagged boolean ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response


ํ•ด์‹œํƒœ๊ทธ ์ถ”๊ฐ€ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์•„๋‹ˆ์š”
createHashTagBody CreateHashTagBody ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: AddHashTag200Response

์˜ˆ์ œ

addHashTag ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_7b2f6c2b';
3const createBody: CreateHashTagBody = {
4 tag: 'feature-request',
5 label: 'Feature Request',
6 description: 'Requests for new functionality in the web client',
7 isActive: true,
8 visibility: 'public',
9 allowedDomains: ['example.com', 'internal.example.com']
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createBody);
12const resultWithoutTenant: AddHashTag200Response = await addHashTag(undefined, {
13 tag: 'bug',
14 label: 'Bug',
15 description: 'Use for reproducible bugs reported by users',
16 isActive: true,
17 visibility: 'public'
18});
19

ํ•ด์‹œํƒœ๊ทธ ์ผ๊ด„ ์ถ”๊ฐ€ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์•„๋‹ˆ์˜ค
bulkCreateHashTagsBody BulkCreateHashTagsBody ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: AddHashTagsBulk200Response

์˜ˆ์ œ

addHashTagsBulk ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_3f2b9a';
4 const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
5 tags: [
6 { name: 'performance', description: 'Comments about site performance', visibleToModeratorsOnly: false },
7 { name: 'feature-request', description: 'Requests for new features', visibleToModeratorsOnly: true }
8 ]
9 };
10 const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
11 const resultWithNoTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBody);
12 console.log(result, resultWithNoTenant);
13})();
14

ํ•ด์‹œํƒœ๊ทธ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tag string ์˜ˆ
tenantId string ์•„๋‹ˆ์š”
deleteHashTagRequest DeleteHashTagRequest ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteHashTag ์˜ˆ์ œ
Copy Copy
1
2const tag: string = 'breaking-news';
3const tenantId: string = 'tenant_42';
4const deleteReq: DeleteHashTagRequest = { removedBy: 'moderator_jane', reason: 'off-topic for this community', deleteAssociatedComments: true } as DeleteHashTagRequest;
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteReq);
6

ํ•ด์‹œํƒœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
page number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetHashTags200Response

์˜ˆ์ œ

getHashTags ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-7a9f";
4 const tagsPage1: GetHashTags200Response = await getHashTags(tenantId);
5 const tagsPage2: GetHashTags200Response = await getHashTags(tenantId, 2);
6 console.log(tagsPage1, tagsPage2);
7})();
8

ํ•ด์‹œํƒœ๊ทธ ๋ถ€๋ถ„ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tag string ์˜ˆ
tenantId string ์•„๋‹ˆ์˜ค
updateHashTagBody UpdateHashTagBody ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: PatchHashTag200Response

์˜ˆ์ œ

patchHashTag ์˜ˆ์ œ
Copy Copy
1
2const tag: string = 'release-2026';
3const tenantId: string = 'tenant_42';
4const updateHashTagBody: UpdateHashTagBody = {
5 displayName: 'Release 2026',
6 description: 'Discussions and notes for the 2026 product release',
7 isActive: true
8};
9const result: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
10

๋ชจ๋”๋ ˆ์ดํ„ฐ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createModeratorBody CreateModeratorBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateModerator200Response

์˜ˆ์ œ

createModerator ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_prod_us-east_01";
3const createModeratorBody: CreateModeratorBody = {
4 email: "maria.lopez+mod@fastcompany.com",
5 username: "mlopez_mod",
6 displayName: "Maria Lopez",
7 roles: ["content_moderator"],
8 notifyOnReports: true,
9 metadata: { region: "us-east", team: "community" }
10};
11const result: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

๋ชจ๋”๋ ˆ์ดํ„ฐ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
sendEmail string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteModerator ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-tenant-987';
3const moderatorId: string = 'mod-78b2c9a4-3f1e-4d6a';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, moderatorId, sendEmail);
6

๋ชจ๋”๋ ˆ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetModerator200Response

์˜ˆ์ œ

getModerator ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_eu_4f8d2b9e";
3const maybeModeratorId: string | undefined = "mod_91c3b7a2"; // ์„ ํƒ์  ์†Œ์Šค(์ •์˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ)
4const moderator: GetModerator200Response = await getModerator(tenantId, maybeModeratorId!);
5

๋ชจ๋”๋ ˆ์ดํ„ฐ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetModerators200Response

์˜ˆ์ œ

getModerators ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_corp_7f9b2a";
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const skip: number = 50;
5const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, skip);
6

์ดˆ๋Œ€์žฅ ์ „์†ก Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
id string ์˜ˆ
fromName string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

sendInvite ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-tenant-004';
3const id: string = 'comment_9b7f3a2c';
4const fromName: string = 'Marรญa Hernรกndez';
5const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
6

๋ชจ๋”๋ ˆ์ดํ„ฐ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateModeratorBody UpdateModeratorBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateModerator ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = '4f8a9c2e-3b6d-4d9e-8c2f-1a2b3c4d5e6f';
3const id: string = 'mod_92a7c4';
4const updateModeratorBodyMinimal: UpdateModeratorBody = { displayName: 'Sophia Patel' };
5const updateModeratorBodyWithOptional: UpdateModeratorBody = {
6 displayName: 'Sophia Patel',
7 email: 'sophia.patel@newsroom.example',
8 permissions: ['remove_comments', 'ban_user'],
9 notifyOnFlag: true // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBodyWithOptional);
12

์•Œ๋ฆผ ์ˆ˜ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteNotificationCount ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_7f3a1b2c4d9e';
3const notificationId: string = 'notif_8c9d0a1b2f3e4b7';
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, notificationId);
5

์บ์‹œ๋œ ์•Œ๋ฆผ ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetCachedNotificationCount200Response

์˜ˆ์ œ

getCachedNotificationCount ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const baseNotificationId: string = 'notif-000123';
4const idSuffix: string | undefined = undefined; // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
5const notificationId: string = idSuffix ? `${baseNotificationId}-${idSuffix}` : baseNotificationId;
6const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, notificationId);
7console.log(result);
8

์•Œ๋ฆผ ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


Parameters

Name Type Required Description
tenantId string ์˜ˆ
userId string ์•„๋‹ˆ์š”
urlId string ์•„๋‹ˆ์š”
fromCommentId string ์•„๋‹ˆ์š”
viewed boolean ์•„๋‹ˆ์š”
type string ์•„๋‹ˆ์š”

Response

๋ฐ˜ํ™˜: GetNotificationCount200Response

Example

getNotificationCount ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_8a9b7c';
3const userId: string = 'user_42b3c';
4const urlId: string = 'https://blog.example.com/posts/introducing-new-editor';
5const fromCommentId: string | undefined = undefined;
6const viewed: boolean = false;
7const type: string = 'mention';
8const result: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, type);
9

์•Œ๋ฆผ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
urlId string ์•„๋‹ˆ์˜ค
fromCommentId string ์•„๋‹ˆ์˜ค
viewed boolean ์•„๋‹ˆ์˜ค
type string ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetNotifications200Response

์˜ˆ์ œ

getNotifications ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_8f3b1a2c';
4 const userId: string = 'user_42';
5 const urlId: string = 'https://news.example.com/articles/2026/01/11/comment-thread';
6 const fromCommentId: string = 'cmt_9a7b';
7 const viewed: boolean = false;
8 const type: string = 'mention';
9 const skip: number = 0;
10 const response: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
11 console.log(response);
12})();
13

์•Œ๋ฆผ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateNotificationBody UpdateNotificationBody ์˜ˆ
userId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateNotification ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_86a7b3";
3const id: string = "notif_20260112_01";
4const userId: string = "moderator_42";
5const updateNotificationBody: UpdateNotificationBody = {
6 name: "Flagged comment alert",
7 enabled: true,
8 channels: ["email"],
9 recipients: ["mod-team@news-site.com"],
10 threshold: 1
11};
12
13(async () => {
14 const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
15 console.log(result);
16})();
17

ํŽ˜์ด์ง€ ์ถ”๊ฐ€ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createAPIPageData CreateAPIPageData ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: AddPageAPIResponse

ํŽ˜์ด์ง€ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: DeletePageAPIResponse


URL ID๋กœ ํŽ˜์ด์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetPageByURLIdAPIResponse


ํŽ˜์ด์ง€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetPagesAPIResponse


ํŽ˜์ด์ง€ ๋ถ€๋ถ„ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateAPIPageData UpdateAPIPageData ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: PatchPageAPIResponse


๋Œ€๊ธฐ ์ค‘์ธ ์›นํ›… ์ด๋ฒคํŠธ ์‚ญ์ œ Internal Link

Parameters

Name Type Required Description
tenantId string ์˜ˆ
id string ์˜ˆ

Response

๋ฐ˜ํ™˜: FlagCommentPublic200Response

Example

deletePendingWebhookEvent ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_7f4e2b';
3const pendingEventId: string = '9f7b6a8c-3b2a-4c0d-a8e5-1234567890ab';
4const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, pendingEventId);
5console.log(result);
6

๋Œ€๊ธฐ ์ค‘์ธ ์›นํ›… ์ด๋ฒคํŠธ ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์•„๋‹ˆ์˜ค
externalId string ์•„๋‹ˆ์˜ค
eventType string ์•„๋‹ˆ์˜ค
type string ์•„๋‹ˆ์˜ค
domain string ์•„๋‹ˆ์˜ค
attemptCountGT number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetPendingWebhookEventCount200Response

์˜ˆ์ œ

getPendingWebhookEventCount ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9c3b2b';
4 const commentId: string = 'cmt_f4a1b2';
5 const externalId: string = 'ext-789';
6 const eventType: string = 'comment.created';
7 const type: string = 'delivery';
8 const domain: string = 'app.example.com';
9 const attemptCountGT: number = 2;
10
11 const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT
19 );
20
21 console.log(result);
22})();
23

๋Œ€๊ธฐ ์ค‘์ธ ์›นํ›… ์ด๋ฒคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์•„๋‹ˆ์š”
externalId string ์•„๋‹ˆ์š”
eventType string ์•„๋‹ˆ์š”
type string ์•„๋‹ˆ์š”
domain string ์•„๋‹ˆ์š”
attemptCountGT number ์•„๋‹ˆ์š”
skip number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetPendingWebhookEvents200Response

์˜ˆ์ œ

getPendingWebhookEvents ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_78b2f1";
3const commentId: string = "cmt_0042";
4const eventType: string = "comment.created";
5const domain: string = "blog.example.com";
6const attemptCountGT: number = 1;
7const skip: number = 0;
8
9const pending: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
10 tenantId,
11 commentId,
12 undefined, // externalId (์™ธ๋ถ€ ID)
13 eventType,
14 undefined, // type (์œ ํ˜•)
15 domain,
16 attemptCountGT,
17 skip
18);
19

์งˆ๋ฌธ ๊ตฌ์„ฑ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createQuestionConfigBody CreateQuestionConfigBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateQuestionConfig200Response

์˜ˆ์ œ

createQuestionConfig ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_live_7f8b3c2a";
3const customOptions: QuestionConfigCustomOptionsInner[] = [
4 { value: "under18", label: "Under 18" },
5 { value: "18-24", label: "18-24" },
6 { value: "25-34", label: "25-34", defaultSelected: true }
7];
8const createQuestionConfigBody: CreateQuestionConfigBody = {
9 key: "age_range",
10 label: "What is your age range?",
11 required: false, // ์„ ํƒ์ : ์„ ํƒ์  ํ•„๋“œ๋ฅผ ์ƒ๋žตํ•œ ๊ฒฝ์šฐ์™€ ํฌํ•จํ•œ ๊ฒฝ์šฐ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค
12 renderingType: QuestionRenderingType.Dropdown,
13 options: customOptions,
14 whenSave: QuestionWhenSave.Always
15};
16const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
17

์งˆ๋ฌธ ๊ตฌ์„ฑ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteQuestionConfig ์˜ˆ์ œ
Copy Copy
1
2async function deleteIfPresent(tenantId: string, id?: string): Promise<FlagCommentPublic200Response | null> {
3 if (!id) return null;
4 const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5 return result;
6}
7const tenantId: string = 'tenant_acme_001';
8const optionalConfigId: string | undefined = 'qcfg_20260112_01';
9(async (): Promise<void> => {
10 const deleted: FlagCommentPublic200Response | null = await deleteIfPresent(tenantId, optionalConfigId);
11 void deleted;
12})();
13

์งˆ๋ฌธ ๊ตฌ์„ฑ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetQuestionConfig200Response

์˜ˆ์ œ

getQuestionConfig ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-corp-47';
3const questionId: string = 'q-2026-01-12-01';
4const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
5function summarizeConfig(cfg: GetQuestionConfig200Response, includeMetadata?: boolean): QuestionConfig | undefined {
6 // includeMetadata๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค; ๊ฐ„๊ฒฐ์„ฑ์„ ์œ„ํ•ด ๊ตฌํ˜„์€ ์ƒ๋žต๋˜์—ˆ์Šต๋‹ˆ๋‹ค
7 return undefined;
8}
9const summarizedWithMeta: QuestionConfig | undefined = summarizeConfig(result, true);
10const summarizedDefault: QuestionConfig | undefined = summarizeConfig(result);
11

์งˆ๋ฌธ ๊ตฌ์„ฑ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetQuestionConfigs200Response

์˜ˆ์ œ

getQuestionConfigs ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant-42a7b9';
3const firstPage: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const secondPage: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 50);
5

์งˆ๋ฌธ ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateQuestionConfigBody UpdateQuestionConfigBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateQuestionConfig ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant-82b3a';
3const id: string = 'qst-20260112';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = { label: 'Age verification', required: true, renderingType: 'singleChoice', customOptions: [{ value: '18-24', label: '18โ€“24' }] } as UpdateQuestionConfigBody;
5const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
6

์งˆ๋ฌธ ๊ฒฐ๊ณผ ์ƒ์„ฑ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createQuestionResultBody CreateQuestionResultBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateQuestionResult200Response

์˜ˆ์ œ

createQuestionResult ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "fc_tenant_7a3c_us-east-1";
3const metaItem: MetaItem = { key: "referrer", value: "/blog/how-to-comment" };
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "q_42",
6 commenterId: "user_1984",
7 answer: "yes",
8 score: 4,
9 meta: [metaItem] // ์„ ํƒ์  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์˜ˆ์‹œ
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

์งˆ๋ฌธ ๊ฒฐ๊ณผ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteQuestionResult ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const questionResultId: string = '6f1a2b3c-4d5e-6789-abcd-ef0123456789';
4const deletedResult: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, questionResultId);
5console.log(deletedResult);
6

์งˆ๋ฌธ ๊ฒฐ๊ณผ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string Yes
id string Yes

์‘๋‹ต

๋ฐ˜ํ™˜: GetQuestionResult200Response

์˜ˆ์ œ

getQuestionResult ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "3fa85f64-5717-4562-b3fc-2c963f66afa6";
3const questionId: string = "question_72f1b9c3a4";
4const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
5console.log(result);
6

์งˆ๋ฌธ ๊ฒฐ๊ณผ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
urlId string ์•„๋‹ˆ์š”
userId string ์•„๋‹ˆ์š”
startDate string ์•„๋‹ˆ์š”
questionId string ์•„๋‹ˆ์š”
questionIds string ์•„๋‹ˆ์š”
skip number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetQuestionResults200Response

์˜ˆ์ œ

getQuestionResults ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlId: string = 'news/2025/fastcomments-release';
4const userId: string = 'user_8b7f3c';
5const startDate: string = '2025-01-01T00:00:00Z';
6const questionIds: string = 'q123,q124';
7const skip: number = 20;
8const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, undefined, questionIds, skip);
9

์งˆ๋ฌธ ๊ฒฐ๊ณผ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateQuestionResultBody UpdateQuestionResultBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateQuestionResult ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_84f2b9';
3const id: string = 'question_3a7c1d';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 result: { verdict: 'helpful', confidence: 0.92 },
6 reviewer: { id: 'mod_102', name: 'Aisha Rahman' },
7 notifyUser: true // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ํฌํ•จ
8};
9const response: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
10

์งˆ๋ฌธ ๊ฒฐ๊ณผ ์ง‘๊ณ„ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
questionId string ์•„๋‹ˆ์˜ค
questionIds Array ์•„๋‹ˆ์˜ค
urlId string ์•„๋‹ˆ์˜ค
timeBucket AggregateTimeBucket ์•„๋‹ˆ์˜ค
startDate Date ์•„๋‹ˆ์˜ค
forceRecalculate boolean ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: AggregateQuestionResults200Response


์งˆ๋ฌธ ๊ฒฐ๊ณผ ์ผ๊ด„ ์ง‘๊ณ„ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest ์˜ˆ
forceRecalculate boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: BulkAggregateQuestionResults200Response


๋Œ“๊ธ€์„ ์งˆ๋ฌธ ๊ฒฐ๊ณผ์™€ ๊ฒฐํ•ฉ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
questionId string ์•„๋‹ˆ์š”
questionIds Array ์•„๋‹ˆ์š”
urlId string ์•„๋‹ˆ์š”
startDate Date ์•„๋‹ˆ์š”
forceRecalculate boolean ์•„๋‹ˆ์š”
minValue number ์•„๋‹ˆ์š”
maxValue number ์•„๋‹ˆ์š”
limit number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: CombineCommentsWithQuestionResults200Response


SSO ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createAPISSOUserData CreateAPISSOUserData ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: AddSSOUserAPIResponse


SSO ์‚ฌ์šฉ์ž ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
deleteComments boolean ์•„๋‹ˆ์˜ค
commentDeleteMode string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteSSOUserAPIResponse


์ด๋ฉ”์ผ๋กœ SSO ์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
email string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetSSOUserByEmailAPIResponse


ID๋กœ SSO ์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetSSOUserByIdAPIResponse


SSO ์‚ฌ์šฉ์ž ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetSSOUsers200Response


SSO ์‚ฌ์šฉ์ž ๋ถ€๋ถ„ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateAPISSOUserData UpdateAPISSOUserData ์˜ˆ
updateComments boolean ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: PatchSSOUserAPIResponse

SSO ์‚ฌ์šฉ์ž ์ „์ฒด ๊ต์ฒด Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateAPISSOUserData UpdateAPISSOUserData ์˜ˆ
updateComments boolean ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: PutSSOUserAPIResponse


๊ตฌ๋… ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
createAPIUserSubscriptionData CreateAPIUserSubscriptionData ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateSubscriptionAPIResponse

๊ตฌ๋… ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
userId string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteSubscriptionAPIResponse


๊ตฌ๋… ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
userId string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetSubscriptionsAPIResponse

ํ…Œ๋„ŒํŠธ ์ผ๋ณ„ ์‚ฌ์šฉ๋Ÿ‰ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
yearNumber number ์•„๋‹ˆ์˜ค
monthNumber number ์•„๋‹ˆ์˜ค
dayNumber number ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenantDailyUsages200Response

์˜ˆ์ œ

getTenantDailyUsages ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_89f3c2-prod";
3const yearNumber: number = 2026;
4const monthNumber: number = 1;
5const skip: number = 0;
6const usages: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, undefined, skip);
7

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createTenantPackageBody CreateTenantPackageBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateTenantPackage200Response

์˜ˆ์ œ

createTenantPackage ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_7f3b1a9c";
3const tenantPackage: TenantPackage = { id: "pkg_001", name: "Premium Plan", seats: 100 };
4const customConfig: CustomConfigParameters = { enableImages: true, maxImageSizeMb: 10 };
5const createTenantPackageBody: CreateTenantPackageBody = {
6 packageName: "Premium Plus",
7 tenantPackage,
8 customConfig,
9 notes: "Enable advanced moderation and image uploads" // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
10};
11const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
12

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteTenantPackage ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'fc-tenant-8a9c2b';
3const packageId: string = 'pkg-47f3c9';
4const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
5

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

Parameters

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenantPackage200Response

์˜ˆ์ œ

getTenantPackage ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_westus_01';
3const packageId: string = 'pkg_premium_annual_2026';
4interface FetchOptions { includeArchived?: boolean }
5const options: FetchOptions = { includeArchived: false };
6const result: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
7

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenantPackages200Response

์˜ˆ์ œ

getTenantPackages ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_4f3a9c2d';
3const skip: number = 25;
4const packagesResponse: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const pagedPackagesResponse: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ๊ต์ฒด Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
replaceTenantPackageBody ReplaceTenantPackageBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

replaceTenantPackage ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant-9b72f2';
3const packageId: string = 'pkg-prod-v2';
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 name: 'Premium Moderation Bundle',
6 enabled: true,
7 maxModerators: 4,
8 // "notes" ๋˜๋Š” "trialExpiry" ๊ฐ™์€ ์„ ํƒ์  ํ•„๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ์˜๋„์ ์œผ๋กœ ์ƒ๋žต๋˜์—ˆ์Šต๋‹ˆ๋‹ค
9} as ReplaceTenantPackageBody;
10const result: FlagCommentPublic200Response = await replaceTenantPackage(
11 tenantId,
12 packageId,
13 replaceTenantPackageBody
14);
15

ํ…Œ๋„ŒํŠธ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateTenantPackageBody UpdateTenantPackageBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateTenantPackage ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_8a4f1c9b';
3const packageId: string = 'pkg_premium_v2';
4const customConfig: CustomConfigParameters = { enableRichText: true, maxImagesPerComment: 5 };
5const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: 'Premium Moderation Package',
7 enabled: true,
8 description: 'Adds advanced spam rules, image moderation and priority support',
9 customConfigParameters: customConfig
10};
11const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, packageId, updateTenantPackageBody);
12

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ์ƒ์„ฑ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createTenantUserBody CreateTenantUserBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateTenantUser200Response

์˜ˆ์ œ

createTenantUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_9a8c7e4b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "julia.smith@acme-corp.com",
5 displayName: "Julia Smith",
6 role: "moderator",
7 password: "Str0ngP@ssword!23",
8 sendInviteEmail: true, // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
9 locale: "en-US",
10 metadata: { department: "Customer Success" }
11};
12const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
13

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
deleteComments string ์•„๋‹ˆ์š”
commentDeleteMode string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteTenantUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2a9c';
3const id: string = 'user_4e5f6a7b';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'hard';
6
7const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenantUser200Response

์˜ˆ์ œ

getTenantUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_9f7d4b2a-1c3e";
3const id: string = "user_6a12b3c4d5";
4const includeProfile: boolean | undefined = true; // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
5const response: GetTenantUser200Response = await getTenantUser(tenantId, id);
6console.log("Tenant user fetched", response);
7

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenantUsers200Response

์˜ˆ์ œ

getTenantUsers Example
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2c1a';
3const skip: number = 50;
4const firstPage: GetTenantUsers200Response = await getTenantUsers(tenantId);
5const nextPage: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
6

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ๊ต์ฒด Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
replaceTenantUserBody ReplaceTenantUserBody ์˜ˆ
updateComments string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

replaceTenantUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_5f8b9a";
3const id: string = "user_92bf21";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 email: "jane.doe@acme-corp.com",
6 displayName: "Jane Doe",
7 externalId: "acme|12345",
8 roles: ["commenter", "moderator"],
9 isActive: true,
10 metadata: { team: "product", location: "NYC" }
11};
12const updateComments: string = "Update historical comments to reflect new display name";
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
redirectURL string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

sendLoginLink ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const id: string = 'user_9f3b2a';
4const redirectURL: string = 'https://app.example.com/onboard?source=login-email';
5const result: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
6

ํ…Œ๋„ŒํŠธ ์‚ฌ์šฉ์ž ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateTenantUserBody UpdateTenantUserBody ์˜ˆ
updateComments string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateTenantUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const id: string = 'user_7a9d1c';
4const updateComments: string = 'Promoted to moderator and updated contact email';
5const updateTenantUserBody: UpdateTenantUserBody = {
6 email: 'jane.doe+mod@example.com',
7 displayName: 'Jane D.',
8 roles: ['moderator'],
9 isBanned: false,
10 metadata: { department: 'community' }
11};
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

ํ…Œ๋„ŒํŠธ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createTenantBody CreateTenantBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateTenant200Response

์˜ˆ์ œ

createTenant ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "acme-corporation";
3const billing: BillingInfo = { planId: "pro", billingContactEmail: "finance@acme-corp.com", currency: "USD" };
4const domainConfig: APIDomainConfiguration = { primaryDomain: "comments.acme-corp.com", allowedDomains: ["acme-corp.com", "www.acme-corp.com"], enforceHttps: true };
5const importedSites: ImportedSiteType[] = [{ siteId: "site-001", url: "https://blog.acme-corp.com", name: "Acme Blog" }]; // ์„ ํƒ์ 
6const createBody: CreateTenantBody = { tenantName: "Acme Corporation", adminEmail: "admin@acme-corp.com", billingInfo: billing, domainConfiguration: domainConfig, importedSites, enableModeration: true };
7const response: CreateTenant200Response = await createTenant(tenantId, createBody);
8

ํ…Œ๋„ŒํŠธ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
id string ์˜ˆ
sure string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

deleteTenant ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_7b3f1a9e";
3const id: string = "flag_9c4d2b1a";
4const sure: string = "yes_confirm_delete";
5
6const result: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
7console.log(result);
8

ํ…Œ๋„ŒํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenant200Response

์˜ˆ์ œ

getTenant ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_acme_corp";
3const id: string = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4interface GetOptions { includeDeleted?: boolean; locale?: string; }
5const options: GetOptions = { locale: "en-US" };
6const result: GetTenant200Response = await getTenant(tenantId, id);
7

ํ…Œ๋„ŒํŠธ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
meta string ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetTenants200Response

์˜ˆ์ œ

getTenants ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9f2d1b7c';
4 const meta: string = 'include=domains,billing,customConfig';
5 const skip: number = 20;
6 const response: GetTenants200Response = await getTenants(tenantId, meta, skip);
7 console.log(response);
8})();
9

ํ…Œ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
id string ์˜ˆ
updateTenantBody UpdateTenantBody ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: FlagCommentPublic200Response

์˜ˆ์ œ

updateTenant ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "tenant_01H4ZQ7KABCD";
3const id: string = "site_9f8e7d6c";
4const apiDomainConfiguration: APIDomainConfiguration = {
5 primaryDomain: "comments.acme.com",
6 allowSubdomains: true
7};
8const billingInfo: BillingInfo = {
9 planName: "Business",
10 billingContactEmail: "billing@acme.com",
11 seats: 25
12};
13const updateTenantBody: UpdateTenantBody = {
14 displayName: "Acme Corporation Comments",
15 apiDomainConfiguration,
16 billingInfo, // ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜ ์˜ˆ์‹œ
17 enableModeration: true
18};
19const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
20

์ด๋ฏธ์ง€ ์—…๋กœ๋“œ Internal Link


์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๋ฐ ํฌ๊ธฐ ์กฐ์ •

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
file Blob ์˜ˆ
sizePreset SizePreset ์•„๋‹ˆ์š”
urlId string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: UploadImageResponse


ID๋กœ ์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์ง„ํ–‰ ์ƒํ™ฉ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserBadgeProgressById200Response


์‚ฌ์šฉ์ž ID๋กœ ์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์ง„ํ–‰ ์ƒํ™ฉ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
userId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserBadgeProgressById200Response


์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์ง„ํ–‰ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
limit number ์•„๋‹ˆ์˜ค
skip number ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserBadgeProgressList200Response


์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์ƒ์„ฑ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
createUserBadgeParams CreateUserBadgeParams ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: CreateUserBadge200Response


์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์‚ญ์ œ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: UpdateUserBadge200Response


์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserBadge200Response


์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
userId string ์•„๋‹ˆ์š”
badgeId string ์•„๋‹ˆ์š”
type number ์•„๋‹ˆ์š”
displayedOnComments boolean ์•„๋‹ˆ์š”
limit number ์•„๋‹ˆ์š”
skip number ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserBadges200Response

์‚ฌ์šฉ์ž ๋ฐฐ์ง€ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
updateUserBadgeParams UpdateUserBadgeParams ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: UpdateUserBadge200Response


์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserNotificationCount200Response

์‚ฌ์šฉ์ž ์•Œ๋ฆผ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
pageSize number ์•„๋‹ˆ์˜ค
afterId string ์•„๋‹ˆ์˜ค
includeContext boolean ์•„๋‹ˆ์˜ค
afterCreatedAt number ์•„๋‹ˆ์˜ค
unreadOnly boolean ์•„๋‹ˆ์˜ค
dmOnly boolean ์•„๋‹ˆ์˜ค
noDm boolean ์•„๋‹ˆ์˜ค
includeTranslations boolean ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserNotifications200Response


์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์ˆ˜ ์žฌ์„ค์ • Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: ResetUserNotifications200Response


์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์žฌ์„ค์ • Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
afterId string ์•„๋‹ˆ์˜ค
afterCreatedAt number ์•„๋‹ˆ์˜ค
unreadOnly boolean ์•„๋‹ˆ์˜ค
dmOnly boolean ์•„๋‹ˆ์˜ค
noDm boolean ์•„๋‹ˆ์˜ค
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: ResetUserNotifications200Response


์‚ฌ์šฉ์ž ๋Œ“๊ธ€ ์•Œ๋ฆผ ๊ตฌ๋… ์ƒํƒœ ์—…๋ฐ์ดํŠธ Internal Link

ํŠน์ • ๋Œ“๊ธ€์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜

Name Type Required Description
tenantId string ์˜ˆ
notificationId string ์˜ˆ
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum ์˜ˆ
commentId string ์˜ˆ
sso string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: UpdateUserNotificationStatus200Response


์‚ฌ์šฉ์ž ํŽ˜์ด์ง€ ์•Œ๋ฆผ ๊ตฌ๋… ์ƒํƒœ ์—…๋ฐ์ดํŠธ Internal Link

ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋…ํ•˜๋ฉด ์ƒˆ ์ตœ์ƒ์œ„ ๋Œ“๊ธ€์— ๋Œ€ํ•œ ์•Œ๋ฆผ์ด ์ƒ์„ฑ๋˜๋ฉฐ, ๋˜ํ•œ

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
url string ์˜ˆ
pageTitle string ์˜ˆ
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: UpdateUserNotificationStatus200Response


์‚ฌ์šฉ์ž ์•Œ๋ฆผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
notificationId string ์˜ˆ
newStatus UpdateUserNotificationStatusNewStatusEnum ์˜ˆ
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: UpdateUserNotificationStatus200Response

์‚ฌ์šฉ์ž ์ ‘์† ์ƒํƒœ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlIdWS string ์˜ˆ
userIds string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetUserPresenceStatuses200Response


์‚ฌ์šฉ์ž ๊ฒ€์ƒ‰ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
usernameStartsWith string ์˜ˆ
mentionGroupIds Array ์•„๋‹ˆ์š”
sso string ์•„๋‹ˆ์š”

์‘๋‹ต

๋ฐ˜ํ™˜: SearchUsers200Response


์‚ฌ์šฉ์ž ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetUser200Response

์˜ˆ์ œ

getUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = "acme-publishing-42";
3const userIdOptional: string | undefined = "user_9d7b4c"; // ์ผ๋ถ€ ํ๋ฆ„์—์„œ๋Š” undefined์ผ ์ˆ˜ ์žˆ์Œ(์„ ํƒ ์‚ฌํ•ญ)
4const id: string = userIdOptional ?? "user_default_0001";
5const result: GetUser200Response = await getUser(tenantId, id);
6console.log(result);
7

ํˆฌํ‘œ ์ƒ์„ฑ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํ˜•์‹ ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
commentId string ์˜ˆ
direction CreateVoteDirectionEnum ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: VoteComment200Response

์˜ˆ์ œ

createVote ์˜ˆ์ œ
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-812';
4 const commentId: string = '5e8f8b7a-3d4b-4f1b-9a2e-1c9f2d6a7b8c';
5 const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.UP;
6 const anonUserId: string = 'anon-84b9c2d';
7 const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
8 console.log(voteResult);
9})();
10

ํˆฌํ‘œ ์‚ญ์ œ Internal Link


๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
id string ์˜ˆ
editKey string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: DeleteCommentVote200Response

์˜ˆ์ œ

deleteVote ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_7f3b21c9';
3const id: string = 'vote_4a2d9f1b';
4const editKey: string = 'edit_92b7c6a1';
5
6const resultWithoutEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id);
7const resultWithEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
8

ํˆฌํ‘œ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ์œ ํ˜• ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ

์‘๋‹ต

๋ฐ˜ํ™˜: GetVotes200Response

์˜ˆ์ œ

getVotes ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_9f8b3c_prod';
3const urlId: string = '/news/2026/typescript-ecosystem-update';
4const votes: GetVotes200Response = await getVotes(tenantId, urlId);
5// ์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด, ์˜ˆ: includeHidden, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
6// const votesWithHidden: GetVotes200Response = await getVotes(tenantId, urlId, { includeHidden: true });
7

์‚ฌ์šฉ์ž ํˆฌํ‘œ ๊ฐ€์ ธ์˜ค๊ธฐ Internal Link

๋งค๊ฐœ๋ณ€์ˆ˜

์ด๋ฆ„ ํƒ€์ž… ํ•„์ˆ˜ ์„ค๋ช…
tenantId string ์˜ˆ
urlId string ์˜ˆ
userId string ์•„๋‹ˆ์˜ค
anonUserId string ์•„๋‹ˆ์˜ค

์‘๋‹ต

๋ฐ˜ํ™˜: GetVotesForUser200Response

์˜ˆ์ œ

getVotesForUser ์˜ˆ์ œ
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const urlId: string = 'news/2026/01/12/product-launch';
4const userId: string = 'user_9c3f2b';
5const anonUserId: string = 'anon_d4e7a1';
6
7const votesForUser: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId);
8const votesForAnon: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
9

๋„์›€์„ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?

JavaScript/TypeScript SDK์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์งˆ๋ฌธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ์„ ์ด์šฉํ•ด ์ฃผ์„ธ์š”:

๊ธฐ์—ฌ

๊ธฐ์—ฌ๋Š” ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๊ธฐ์—ฌ ์ง€์นจ์€ GitHub ์ €์žฅ์†Œ๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.