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 (デフォルト) - 型定義のみ、どこでも安全にインポート可能

公開API と セキュアAPI Internal Link

The SDK は3つの主要な 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 機能を必要とするため、サーバーエクスポートでのみ利用可能です。

Simple SSO(サーバーサイドのみ)

Simple SSO はサーバーサイドで生成してクライアントに送信する必要があります:

// サーバー側のコード (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// 組み込みのヘルパーを使って simple SSO を作成  
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 で使用できます

Secure SSO(サーバーサイド、推奨)

Secure SSO はサーバーサイドで実装するべきで、より高いセキュリティを提供します:

// サーバー側のコード (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// 組み込みのヘルパーを使って secure SSO を作成
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',
};

// Subscribe to live events for a page
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (get this from getComments response)
  (event: LiveEvent) => {
    console.log('Live event received:', event);

    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Update your UI with the new comment
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Update vote counts in your UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }

    return true; // Return true if event was handled
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

ユーザーイベントを購読

ユーザー固有のイベント(通知、メンションなど)を監視します:

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

const userConfig = {
  userIdWS: 'user-session-id', // Get this from getComments response
};

// Subscribe to user's personal feed
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);

    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Show notification in your UI
        break;
      case LiveEventType.notification_update:
        console.log('Notification updated:', event.notification);
        break;
      default:
        console.log('Other user event:', event.type);
    }

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

// Close when done
userSubscription.close();

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

// Extract userIdWS from the response
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Now you can subscribe to live events
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

ブロードキャストID Internal Link

You'll see you're supposed to pass a broadcastId in some API calls. When you receive events, you'll get this ID back, so you know to ignore the event if you plan to optimistically apply changes on the client (which you'll probably want to do since it offers the best experience). Pass a UUID here. The ID should be unique enough to not occur twice in a browser session.

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

パラメータ

Name Type Required Description
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

パラメータ

Name Type Required Description
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

パラメータ

Name Type Required Description
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

パラメータ

Name Type Required Description
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

パラメータ

名前 必須 説明
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

パラメータ

Name Type 必須 説明
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

パラメータ

名前 必須 説明
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"; // オプションのソース(undefined の可能性あり)
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

パラメータ

名前 必須 説明
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

パラメータ

Name Type Required Description
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

パラメータ

名前 必須 説明
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

パラメータ

名前 必須 説明
tenantId string はい
userId string いいえ
urlId string いいえ
fromCommentId string いいえ
viewed boolean いいえ
type string いいえ

レスポンス

戻り値: GetNotificationCount200Response

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

パラメータ

Name Type 必須 説明
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

Parameters

名前 必須 説明
tenantId string はい
createAPIPageData CreateAPIPageData はい

Response

戻り値: 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

保留中のWebhookイベントを削除 Internal Link

パラメータ

名前 必須 説明
tenantId string Yes
id string Yes

レスポンス

返却値: FlagCommentPublic200Response

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

保留中のWebhookイベント数を取得 Internal Link

パラメータ

Name Type 必須 説明
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

保留中のWebhookイベント一覧を取得 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
13 eventType,
14 undefined, // type
15 domain,
16 attemptCountGT,
17 skip
18);
19

質問設定を作成 Internal Link

パラメータ

Name Type Required Description
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

パラメータ

名前 Type 必須 説明
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

パラメータ

Name Type Required Description
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

パラメータ

Name Type Required Description
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

パラメータ

名前 必須 説明
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

パラメータ

Name Type 必須 説明
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


パラメータ

名前 必須 説明
tenantId string はい
createAPIUserSubscriptionData CreateAPIUserSubscriptionData はい

レスポンス

戻り値: CreateSubscriptionAPIResponse


サブスクリプションを削除 Internal Link


パラメータ

名前 必須 説明
tenantId string はい
id string はい
userId string いいえ

レスポンス

戻り値: DeleteSubscriptionAPIResponse


サブスクリプション一覧を取得 Internal Link


パラメータ

名前 必須 説明
tenantId string はい
userId string いいえ

レスポンス

戻り値: GetSubscriptionsAPIResponse


テナントの日次使用量を取得 Internal Link

パラメータ

Name Type Required Description
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

パラメータ

名前 必須 説明
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

パラメータ

Name Type Required Description
tenantId string Yes
createTenantUserBody CreateTenantUserBody Yes

レスポンス

戻り値: 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

パラメータ

Name Type Required Description
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 の例
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

パラメータ

Name Type Required Description
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

パラメータ

Name Type 必須 説明
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

パラメータ

名前 必須 説明
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

パラメータ

名前 必須 説明
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

特定のコメントに対する通知を有効または無効にします。

パラメータ

名前 必須 説明
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


パラメーター

Name 必須 説明
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リポジトリをご覧ください。