FastComments.com

FastComments の JavaScript/TypeScript SDK


これは FastComments の公式 JavaScript/TypeScript SDK です。

Node.js またはブラウザからコメント、ユーザー、SSO、およびモデレーションを管理できます。

リポジトリ

GitHubで表示


インストール Internal Link

npm

npm install fastcomments-sdk

API ドキュメント Internal Link


完全な API リファレンス: docs/api/README.md

ブラウザとサーバーの互換性 Internal Link


この SDK は、最適な互換性を確保し実行時エラーを防ぐために デュアルエントリポイント を使用します:

  • fastcomments-sdk/browser - ブラウザ安全版(ネイティブの fetch 使用)
  • fastcomments-sdk/server - SSO をサポートするフル Node.js バージョン
  • fastcomments-sdk (デフォルト) - 型定義のみ、どこでも安全にインポート可能

公開とセキュアの API 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 など、さまざまな操作がサポートされています。

パラメータ

名前必須説明
tenantIdstringはい
aggregationRequestAggregationRequestはい
parentTenantIdstringいいえ
includeStatsbooleanいいえ

レスポンス

戻り値: AggregationResponse


監査ログの取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
limitnumberいいえ
skipnumberいいえ
orderSORTDIRいいえ
afternumberいいえ
beforenumberいいえ

レスポンス

戻り値: GetAuditLogs200Response

getAuditLogs の例
Copy Copy
1
2const tenantId: string = 'tenant_9a8b7c';
3const limit: number = 100;
4const skip: number = 0;
5const after: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30日前
6const before: number = Date.now();
7const auditLogs: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, undefined, after, before);
8

コメントからブロック(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
publicBlockFromCommentParamsPublicBlockFromCommentParamsはい
ssostringいいえ

レスポンス

返却: BlockFromCommentPublic200Response

blockFromCommentPublic の例
Copy Copy
1
2const tenantId: string = "site_7f9b2e";
3const commentId: string = "comment_2026-03-25_001";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "Repeated harassment and targeted abuse",
6 blockDurationDays: 90,
7 includeHistory: true,
8 notifyModeratorTeam: true
9};
10const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature";
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

コメントのブロック解除(公開) Internal Link


パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
publicBlockFromCommentParamsPublicBlockFromCommentParamsはい
ssostringいいえ

レスポンス

戻り値: UnBlockCommentPublic200Response

使用例

unBlockCommentPublic の例
Copy Copy
1
2const tenantId: string = 'tenant_42e8a1';
3const commentId: string = 'cmt_9b3f2d';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'abusive_language',
6 blockedByModeratorId: 'mod_17',
7 note: 'Targeted harassment; review complete',
8 unblockRequestedAt: new Date().toISOString()
9};
10const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
11const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

ブロック済みコメントの確認 Internal Link

パラメータ

名前必須説明
tenantIdstringYes
commentIdsstringYes
ssostringNo

レスポンス

戻り値: CheckedCommentsForBlocked200Response

checkedCommentsForBlocked の例
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2a1e';
3const commentIds: string = 'c_1001,c_1002,c_1003';
4const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.Sf4ke7nQP3mZx9v2';
5
6const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
7const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8

コメントからユーザーをブロック Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
blockFromCommentParamsBlockFromCommentParamsはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

戻り値: BlockFromCommentPublic200Response

blockUserFromComment の例
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const id: string = 'comment_7f3b2a9c';
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: 'Repeated abusive language and targeted harassment',
6 durationDays: 90,
7 preventReposting: true
8};
9const userId: string = 'user_12345';
10const anonUserId: string = 'anon_98765';
11
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(
13 tenantId,
14 id,
15 blockFromCommentParams,
16 userId,
17 anonUserId
18);
19

コメントを作成(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい
broadcastIdstringはい
commentDataCommentDataはい
sessionIdstringいいえ
ssostringいいえ

レスポンス

戻り値: CreateCommentPublic200Response

createCommentPublic の例
Copy Copy
1
2const tenantId: string = 'tenant_prod_42';
3const urlId: string = 'article-2026-03-25-tech-deep-dive';
4const broadcastId: string = 'live-broadcast-001';
5const sessionId: string = 'sess_9f8e7d6a3b';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
7const commentData: CommentData = {
8 content: 'Great reporting — appreciated the depth on performance tradeoffs.',
9 authorName: 'Jordan M.',
10 language: 'en-US',
11 metadata: { client: 'web' }
12};
13const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
14

コメントを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
contextUserIdstringいいえ
isLivebooleanいいえ

レスポンス

戻り値: DeleteComment200Response

deleteComment の例
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "comment_5f3a2b7c";
4const contextUserId: string = "user_1229";
5const isLive: boolean = true;
6const response: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
7

コメントを削除(公開) Internal Link


パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
editKeystringいいえ
ssostringいいえ

レスポンス

戻り値: DeleteCommentPublic200Response

deleteCommentPublic の例
Copy Copy
1
2const tenantId: string = 'tenant_4f2c9b';
3const commentId: string = 'comment-7c3a9f2d';
4const broadcastId: string = 'article-2026-03-20';
5const editKey: string | undefined = 'ek_pub_abc12345';
6const sso: string | undefined = 'sso_eyJhbGciOiJIUzI1Ni';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(
9 tenantId,
10 commentId,
11 broadcastId,
12 editKey,
13 sso
14);
15

コメントの投票を削除 Internal Link

Parameters

名前必須説明
tenantIdstringはい
commentIdstringはい
voteIdstringはい
urlIdstringはい
broadcastIdstringはい
editKeystringいいえ
ssostringいいえ

レスポンス

戻り値: DeleteCommentVote200Response

deleteCommentVote の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-87e4fd';
3const commentId: string = 'cmt-9a12b3f4';
4const voteId: string = 'vote-4f6d21b9';
5const urlId: string = 'https://www.acme.com/articles/2026/03/25/how-to-test';
6const broadcastId: string = 'broadcast-20260325-01';
7const editKey: string = 'editkey-6b7c8d9e';
8const sso: string = 'sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9
10const response: DeleteCommentVote200Response = await deleteCommentVote(
11 tenantId,
12 commentId,
13 voteId,
14 urlId,
15 broadcastId,
16 editKey,
17 sso
18);
19

コメントを通報 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

戻り値: FlagComment200Response

flagComment の例
Copy Copy
1
2const tenantId: string = 'tenant_7f3b21';
3const commentId: string = 'cmt_9a2b4';
4const userId: string = 'user_1024';
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

コメントを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetComment200Response

getComment の例
Copy Copy
1
2const tenantId: string = "acme-publishing-001";
3const commentId: string = "f3b2c1d0-9a8e-4b7c-8123-6d5f0a1e2b3c";
4const result: GetComment200Response = await getComment(tenantId, commentId);
5const wrapper: GetComment200Response & { comment?: APIComment } = result;
6const comment: APIComment | undefined = wrapper.comment;
7const authorBadge: CommentUserBadgeInfo | undefined = comment?.user?.badge;
8const userHashTags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashTags
9

コメント一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
pagenumberいいえ
limitnumberいいえ
skipnumberいいえ
asTreebooleanいいえ
skipChildrennumberいいえ
limitChildrennumberいいえ
maxTreeDepthnumberいいえ
urlIdstringいいえ
userIdstringいいえ
anonUserIdstringいいえ
contextUserIdstringいいえ
hashTagstringいいえ
parentIdstringいいえ
directionSortDirectionsいいえ

レスポンス

戻り値: GetComments200Response

getComments の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // ページ
6 20, // 取得件数
7 0, // スキップ数
8 true, // ツリーとして取得するか
9 1, // スキップする子の数
10 3, // 子の取得上限
11 4, // ツリーの最大深度
12 'articles/2026/new-product-launch', // urlId(URL の識別子)
13 'user_7890', // userId(ユーザーID)
14 'anon_4f3b2', // anonUserId(匿名ユーザーID)
15 undefined, // contextUserId
16 '#launch', // ハッシュタグ
17 undefined // parentId
18);
19

コメント一覧を取得(公開) Internal Link

req tenantId urlId

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい
pagenumberいいえ
directionSortDirectionsいいえ
ssostringいいえ
skipnumberいいえ
skipChildrennumberいいえ
limitnumberいいえ
limitChildrennumberいいえ
countChildrenbooleanいいえ
fetchPageForCommentIdstringいいえ
includeConfigbooleanいいえ
countAllbooleanいいえ
includei10nbooleanいいえ
localestringいいえ
modulesstringいいえ
isCrawlerbooleanいいえ
includeNotificationCountbooleanいいえ
asTreebooleanいいえ
maxTreeDepthnumberいいえ
useFullTranslationIdsbooleanいいえ
parentIdstringいいえ
searchTextstringいいえ
hashTagsArrayいいえ
userIdstringいいえ
customConfigStrstringいいえ
afterCommentIdstringいいえ
beforeCommentIdstringいいえ

レスポンス

戻り値: GetCommentsPublic200Response

getCommentsPublic の例
Copy Copy
1
2const tenantId: string = 'tenant_eu-west_01';
3const urlId: string = 'https://www.financialtimes.com/articles/2026/market-update-q1';
4const response: GetCommentsPublic200Response = await getCommentsPublic(
5 tenantId,
6 urlId,
7 2,
8 undefined,
9 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.tokenPayload.signature',
10 undefined,
11 0,
12 50,
13 5,
14 true,
15 undefined,
16 true,
17 false,
18 true,
19 'en-US',
20 'reactions,moderation',
21 false,
22 true,
23 true,
24 3,
25 false,
26 undefined,
27 'performance',
28 ['feature','fastcomments'],
29 'user_9876',
30 undefined,
31 undefined,
32 undefined
33);
34

コメント本文を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
editKeystringいいえ
ssostringいいえ

レスポンス

戻り値: GetCommentText200Response

getCommentText の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const commentId: string = 'cmt_7890b';
4const editKey: string = 'edit_4f2d9b7c';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

コメント投票者のユーザー名を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
dirnumberはい
ssostringいいえ

レスポンス

戻り値: GetCommentVoteUserNames200Response

getCommentVoteUserNames の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f2c1e';
4 const commentId: string = 'cmt_9a7b3d';
5 const dir: number = 1;
6 const resultUpvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
7 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakepayload.signature';
8 const dirDown: number = -1;
9 const resultDownvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dirDown, sso);
10 console.log(resultUpvotes, resultDownvotes);
11})();
12

コメントをロック Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
ssostringいいえ

レスポンス

返却値: LockComment200Response

lockComment の例
Copy Copy
1
2const tenantId: string = "tenant_prod_8f3a2b";
3const commentId: string = "cmt_5d7e9a92";
4const broadcastId: string = "broadcast_2026_03_25_1400";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
6const resultWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
7const resultWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
8

コメントをピン留め Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
ssostringいいえ

レスポンス

戻り値: PinComment200Response

pinComment の例
Copy Copy
1
2const tenantId: string = "tenant_4f2b9a";
3const commentId: string = "cmt_9f8e7d6c";
4const broadcastId: string = "brd_live_concert_2026-03-25";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload_signature";
6
7const result: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, sso);
8

コメントを保存 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createCommentParamsCreateCommentParamsはい
isLivebooleanいいえ
doSpamCheckbooleanいいえ
sendEmailsbooleanいいえ
populateNotificationsbooleanいいえ

レスポンス

返却値: SaveComment200Response

saveComment の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createCommentParams: CreateCommentParams = {
4 content: 'Great article — helped me fix a production issue in minutes.',
5 url: 'https://app.acme.com/blog/performance-tips',
6 author: { name: 'Maya Chen', email: 'maya.chen@acme.com' },
7 metadata: { locale: 'en-US', appVersion: '4.2.1' }
8} as CreateCommentParams;
9const isLive: boolean = true;
10const doSpamCheck: boolean = true;
11const sendEmails: boolean = false;
12const populateNotifications: boolean = true;
13const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
14

コメントを一括保存 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createCommentParamsArrayはい
isLivebooleanいいえ
doSpamCheckbooleanいいえ
sendEmailsbooleanいいえ
populateNotificationsbooleanいいえ

レスポンス

返却値: Array<SaveComment200Response

saveCommentsBulk の例
Copy Copy
1
2const tenantId: string = 'acme-corp-01';
3const mentions1: CommentUserMentionInfo[] = [{ userId: 'user-123', displayName: 'Jane Doe' }];
4const hashtags1: CommentUserHashTagInfo[] = [{ tag: 'typescript' }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: 'Great insights on async/await patterns.',
8 authorName: 'John Smith',
9 authorEmail: 'john.smith@acme.com',
10 externalId: 'comment-001',
11 createdAt: '2026-03-25T10:15:00Z',
12 userMentions: mentions1,
13 userHashTags: hashtags1
14 },
15 {
16 content: 'I prefer using Promise.all for bulk ops.',
17 authorName: 'Emily Turner',
18 authorEmail: 'emily.turner@acme.com',
19 externalId: 'comment-002',
20 createdAt: '2026-03-25T10:20:00Z'
21 }
22];
23const result: SaveComment200Response[] = await saveCommentsBulk(tenantId, createCommentParams, true, true, false, true);
24

コメント本文を設定 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
commentTextUpdateRequestCommentTextUpdateRequestはい
editKeystringいいえ
ssostringいいえ

レスポンス

戻り値: SetCommentText200Response

setCommentText の例
Copy Copy
1
2const tenantId: string = 'tenant-42';
3const commentId: string = 'cmt-8932';
4const broadcastId: string = 'brd-2023-07';
5const updateRequest: CommentTextUpdateRequest = {
6 text: 'Updated comment text for the product launch — congrats team!',
7 mentions: [{ userId: 'user-17', displayName: 'Ava Nguyen' }] as CommentUserMentionInfo[],
8 hashtags: [{ tag: 'ProductLaunch' }] as CommentUserHashTagInfo[]
9};
10const editKey: string = 'edtk-9f7b';
11const sso: string = 'sso-token-abc123';
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, updateRequest, editKey, sso);
13

コメントのユーザーのブロックを解除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
unBlockFromCommentParamsUnBlockFromCommentParamsはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

戻り値: UnBlockCommentPublic200Response

unBlockUserFromComment の例
Copy Copy
1
2const tenantId: string = 'tenant_87f3e1';
3const id: string = 'comment_9b2a4f';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'Reviewed by moderation team — reinstated',
6 moderatorId: 'mod_21',
7 unblockedAt: new Date().toISOString()
8};
9const userId: string = 'user_42';
10const anonUserId: string = 'anon_e7f9';
11const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId, anonUserId);
12

コメントの通報を解除 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

戻り値: FlagComment200Response

unFlagComment の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const commentId: string = 'cmt_9f8e7d6c';
4const userId: string = 'user_72b4a1c9';
5const anonUserId: string = 'anon_3d2c1b0a';
6const response: FlagComment200Response = await unFlagComment(tenantId, commentId, userId, anonUserId);
7

コメントのロックを解除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
ssostringいいえ

レスポンス

戻り値: LockComment200Response

unLockComment の例
Copy Copy
1
2const tenantId: string = 'tenant_9d4f2b';
3const commentId: string = 'cmt_8a3e1f';
4const broadcastId: string = 'broadcast_2026_03_25';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
6
7const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
8

コメントのピン留めを解除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
broadcastIdstringはい
ssostringいいえ

レスポンス

戻り値: PinComment200Response

unPinComment の例
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

コメントを更新 Internal Link


パラメータ

Name必須説明
tenantIdstringはい
idstringはい
updatableCommentParamsUpdatableCommentParamsはい
contextUserIdstringいいえ
doSpamCheckbooleanいいえ
isLivebooleanいいえ

レスポンス

返却値: FlagCommentPublic200Response

updateComment の例
Copy Copy
1
2const tenantId: string = "tenant_3f47b2a1";
3const id: string = "comment_9a12b3c4";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Thanks for the update — I've adjusted my view accordingly."
6};
7const contextUserId: string = "user_8721";
8const doSpamCheck: boolean = true;
9const isLive: boolean = false;
10const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
11

コメントに投票 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
urlIdstringはい
broadcastIdstringはい
voteBodyParamsVoteBodyParamsはい
sessionIdstringいいえ
ssostringいいえ

レスポンス

戻り値: VoteComment200Response

voteComment の例
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c';
3const commentId: string = 'cmt_42f3a1';
4const urlId: string = 'articles/ai-trends-2026';
5const broadcastId: string = 'web';
6const voteBodyParams: VoteBodyParams = { vote: 1, reason: 'Insightful and on-topic' };
7const sessionId: string = 'sess_6d2b4c9e';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9const result: VoteComment200Response = await voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso);
10

ユーザーのコメントを取得 Internal Link

パラメータ

NameTypeRequiredDescription
userIdstringいいえ
tenantIdstringいいえ
urlIdstringいいえ
pagenumberいいえ
directionSortDirectionsいいえ
lastGenDatenumberいいえ
repliesToUserIdstringいいえ
fetchPageForCommentIdstringいいえ
includei10nbooleanいいえ
useFullTranslationIdsbooleanいいえ
localestringいいえ
includeConfigbooleanいいえ
includeNotificationCountbooleanいいえ
countAllbooleanいいえ
ssostringいいえ

レスポンス

返却: GetCommentsForUserResponse

getCommentsForUser の例
Copy Copy
1
2const userId: string = 'user_82f9b';
3const tenantId: string = 'tenant_22';
4const page: number = 2;
5const lastGenDate: number = Date.now();
6const includei10n: boolean = true;
7const useFullTranslationIds: boolean = false;
8const locale: string = 'en-US';
9const includeConfig: boolean = true;
10const includeNotificationCount: boolean = true;
11const countAll: boolean = false;
12const sso: string = 'sso-token-1a2b';
13const commentsResponse: GetCommentsForUserResponse = await getCommentsForUser(userId, tenantId, undefined, page, undefined, lastGenDate, undefined, undefined, includei10n, useFullTranslationIds, locale, includeConfig, includeNotificationCount, countAll, sso);
14

ドメイン設定を追加 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
addDomainConfigParamsAddDomainConfigParamsはい

レスポンス

戻り値: AddDomainConfig200Response


ドメイン設定を削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
domainstringはい

レスポンス

戻り値: DeleteDomainConfig200Response


ドメイン設定を取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
domainstringはい

レスポンス

戻り値: GetDomainConfig200Response


ドメイン設定一覧を取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい

レスポンス

戻り値: GetDomainConfigs200Response


ドメイン設定を部分更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
domainToUpdatestringはい
patchDomainConfigParamsPatchDomainConfigParamsはい

レスポンス

戻り値: GetDomainConfig200Response


ドメイン設定を置換 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
domainToUpdatestringはい
updateDomainConfigParamsUpdateDomainConfigParamsはい

レスポンス

戻り値: GetDomainConfig200Response


メールテンプレートを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createEmailTemplateBodyCreateEmailTemplateBodyはい

レスポンス

戻り値: CreateEmailTemplate200Response

createEmailTemplate の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9f4a2b';
4 const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: 'Weekly Digest',
6 subject: 'Your weekly discussion highlights',
7 html: '<!doctype html><body><h1>Hello \{{user.name}}</h1><p>Top comments this week...</p></body>',
8 fromAddress: 'no-reply@fastcomments-example.com',
9 replyTo: 'moderation@fastcomments-example.com',
10 isDefault: false
11 };
12 const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
13 console.log(result);
14})();
15

メールテンプレートを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringYes
idstringYes

レスポンス

戻り値: FlagCommentPublic200Response

deleteEmailTemplate の例
Copy Copy
1
2const tenantId: string = "acme-corp-42";
3const idSuffix: string | undefined = "-archived";
4const templateId: string = "email_tmpl_6a1b2c" + (idSuffix ?? "");
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
6

メールテンプレートのレンダーエラーを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
errorIdstringはい

レスポンス

戻り値: FlagCommentPublic200Response

deleteEmailTemplateRenderError の例
Copy Copy
1
2const tenantId: string = "tenant_7a1d2f9b";
3const id: string = "email_template_42b1";
4const errorId: string = "render_err_2026-04-24_7f3c";
5const includeStackTrace: boolean | undefined = undefined; // オプションのフラグの例
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// もしオプションのオブジェクトがサポートされていれば、次のようになるかもしれません:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

メールテンプレートを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetEmailTemplate200Response

getEmailTemplate の例
Copy Copy
1
2const tenantId: string = "acme-marketing-042";
3const templateId: string = "tpl_welcome_2026";
4const result: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
5const template: CustomEmailTemplate | undefined = result.template;
6const subject: string | undefined = template?.subject;
7const customParams: CustomConfigParameters | undefined = template?.customConfigParameters;
8

メールテンプレート定義を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい

レスポンス

戻り値: GetEmailTemplateDefinitions200Response

getEmailTemplateDefinitions の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_eu_01';
3const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4console.log('Email template definitions loaded for', tenantId, templates);
5

メールテンプレートのレンダーエラーを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
skipnumberいいえ

レスポンス

戻り値: GetEmailTemplateRenderErrors200Response

getEmailTemplateRenderErrors の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-42';
4 const id: string = 'tmpl_3fa85f64-5717-4562-b3fc-2c963f66afa6';
5 const skip: number = 20;
6 const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7 console.log(result);
8})();
9

メールテンプレート一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
skipnumberいいえ

レスポンス

戻り値: GetEmailTemplates200Response

getEmailTemplates の例
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_5f3a9c2b';
4 const templates: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const skip: number = 20;
6 const pagedTemplates: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
7 console.log(templates, pagedTemplates);
8}
9main();
10

メールテンプレートをレンダリング Internal Link


パラメータ

名前必須説明
tenantIdstringはい
renderEmailTemplateBodyRenderEmailTemplateBodyはい
localestringいいえ

レスポンス

戻り値: RenderEmailTemplate200Response

renderEmailTemplate の例
Copy Copy
1
2const tenantId: string = 'acme-corp-987';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'user-invite',
5 subject: "You're invited to Acme",
6 placeholders: { firstName: 'Alex' },
7 metadata: { source: 'signup-flow' }
8};
9const locale: string = 'en-US';
10const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
11

メールテンプレートを更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateEmailTemplateBodyUpdateEmailTemplateBodyはい

レスポンス

戻り値: FlagCommentPublic200Response

updateEmailTemplate の例
Copy Copy
1
2const tenantId: string = "tenant_76a4b2";
3const id: string = "template_9f3c1e";
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: "Comment Flag Notification",
6 subject: "A comment was flagged on your-site.com",
7 bodyHtml: "<p>Admin,</p><p>User \{{commenterName}} flagged a comment: “\{{commentText}}”</p>",
8 isEnabled: true,
9 description: "Email sent to moderators when a comment is flagged (optional field included)"
10};
11const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
12

イベントログを取得 Internal Link

req tenantId urlId userIdWS

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
urlIdstringはい
userIdWSstringはい
startTimenumberはい
endTimenumberはい

レスポンス

戻り値: GetEventLog200Response

getEventLog の例
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // 任意の上流値
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

グローバルイベントログを取得 Internal Link

req tenantId urlId userIdWS

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
urlIdstringはい
userIdWSstringはい
startTimenumberはい
endTimenumberはい

レスポンス

戻り値: GetEventLog200Response

getGlobalEventLog の例
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // 7日前
6const endTimeOptional: number | undefined = undefined; // 終了時刻(オプション)
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

フィード投稿を作成 Internal Link

パラメータ

NameType必須説明
tenantIdstringはい
createFeedPostParamsCreateFeedPostParamsはい
broadcastIdstringいいえ
isLivebooleanいいえ
doSpamCheckbooleanいいえ
skipDupCheckbooleanいいえ

レスポンス

戻り値: CreateFeedPost200Response

createFeedPost の例
Copy Copy
1
2const tenantId: string = 'tenant_87f3b2';
3const mediaAsset: FeedPostMediaItemAsset = { url: 'https://cdn.example.com/images/post-123.jpg', mimeType: 'image/jpeg', width: 1200, height: 800, size: 245000 };
4const mediaItem: FeedPostMediaItem = { id: 'media_1', type: 'image', assets: [mediaAsset], altText: 'Conference keynote stage' };
5const link: FeedPostLink = { url: 'https://news.example.com/keynote-recap', title: 'Keynote recap' };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: 'Product Launch Highlights',
8 content: 'Highlights from today’s product launch and roadmap updates.',
9 authorId: 'user_42',
10 mediaItems: [mediaItem],
11 links: [link],
12 tags: ['product', 'launch', 'announcement']
13};
14const broadcastId: string = 'broadcast_20260424';
15const isLive: boolean = true;
16const doSpamCheck: boolean = true;
17const skipDupCheck: boolean = false;
18const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
19

フィード投稿を作成(公開) Internal Link


パラメータ

名前必須説明
tenantIdstringはい
createFeedPostParamsCreateFeedPostParamsはい
broadcastIdstringいいえ
ssostringいいえ

レスポンス

戻り値: CreateFeedPostPublic200Response

createFeedPostPublic の例
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3const asset: FeedPostMediaItemAsset = { url: "https://cdn.fastcomments.com/uploads/team-photo.jpg", mimeType: "image/jpeg", sizeBytes: 324512 };
4const mediaItem: FeedPostMediaItem = { type: "image", assets: [asset], caption: "Team launch day" };
5const link: FeedPostLink = { url: "https://www.example.com/blog/product-update-march-2026", title: "Product update — March 2026" };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: "Product update — March 2026",
8 content: "<p>We shipped performance improvements and two new integrations.</p>",
9 media: [mediaItem],
10 link,
11 visibility: "public",
12 tags: ["product","release","march-2026"],
13 customConfig: { allowComments: true, requireTOS: false }
14};
15const broadcastId: string = "broadcast_2026_03_25_live";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSIsImlhdCI6MTY5MDI0MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
17const result: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
18

フィード投稿を削除(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
postIdstringはい
broadcastIdstringいいえ
ssostringいいえ

レスポンス

戻り値: DeleteFeedPostPublic200Response

deleteFeedPostPublic の例
Copy Copy
1
2const tenantId: string = "tenant_5f8a9b3c";
3const postId: string = "post_a1b2c3d4";
4const broadcastId: string = "broadcast_2026-03-25T10:00:00Z";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwiaWF0IjoxNjE5MjM5MjAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6
7const resultWithOptional: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
8const resultRequiredOnly: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId);
9

フィード投稿一覧を取得 Internal Link

req tenantId afterId

パラメータ

名前必須説明
tenantIdstringはい
afterIdstringいいえ
limitnumberいいえ
tagsArrayいいえ

レスポンス

返却値: GetFeedPosts200Response

getFeedPosts の例
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

フィード投稿一覧を取得(公開) Internal Link

req tenantId afterId

パラメータ

名前Type必須説明
tenantIdstringはい
afterIdstringいいえ
limitnumberいいえ
tagsArrayいいえ
ssostringいいえ
isCrawlerbooleanいいえ
includeUserInfobooleanいいえ

レスポンス

返却値: GetFeedPostsPublic200Response

getFeedPostsPublic の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const afterId: string = 'fp_20260301_042';
4const limit: number = 25;
5const tags: Array<string> = ['technology', 'announcement'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiamRvZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo);
10

フィード投稿の統計を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
postIdsArrayはい
ssostringいいえ

レスポンス

返却値: GetFeedPostsStats200Response

getFeedPostsStats の例
Copy Copy
1
2const tenantId: string = 'tenant_9b2f1c4a';
3const postIds: Array<string> = [
4 '8f14e45f-ea82-4c7a-b6b2-1a2b3c4d5e6f',
5 'd0e1f2a3-b4c5-6d7e-8f90-1234567890ab'
6];
7const sso: string = 'sso_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
9const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, sso);
10

ユーザーのリアクションを取得(公開) Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringYes
postIdsArrayNo
ssostringNo

レスポンス

返却値: GetUserReactsPublic200Response

getUserReactsPublic の例
Copy Copy
1
2const tenantId: string = "acme-tenant-8a4d2c";
3const postIds: string[] = ["post-645a2f", "post-645a30"];
4const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY2MTYwMDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5const result: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
6

フィード投稿にリアクション(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
postIdstringはい
reactBodyParamsReactBodyParamsはい
isUndobooleanいいえ
broadcastIdstringいいえ
urlIdstringいいえ
ssostringいいえ

レスポンス

戻り値: ReactFeedPostPublic200Response

reactFeedPostPublic の例
Copy Copy
1
2const tenantId: string = "global-markets";
3const postId: string = "8e2c3f9a-4b6d-4f1a-9c2d-e8a1b2c3d4e5";
4const reactBodyParams: ReactBodyParams = { reactionType: "like", clientApp: "web-ui", timestamp: new Date().toISOString() };
5const isUndo: boolean = false;
6const broadcastId: string = "broadcast-2026-05-20";
7const urlId: string = "feed-post-8e2c";
8const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.payload";
9
10const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, urlId, sso);
11

フィード投稿を更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
feedPostFeedPostはい

レスポンス

戻り値: FlagCommentPublic200Response

updateFeedPost の例
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // オプションの配列を含む
27 links: [link], // オプションのリンクを含む
28 isPublished: true // ここではオプションの公開フラグを使用
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

フィード投稿を更新(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
postIdstringはい
updateFeedPostParamsUpdateFeedPostParamsはい
broadcastIdstringいいえ
ssostringいいえ

レスポンス

返却: CreateFeedPostPublic200Response

updateFeedPostPublic の例
Copy Copy
1
2const tenantId: string = "tenant_9f4b2";
3const postId: string = "post_21a8e";
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: "Quarterly product update",
6 body: "Major performance improvements and bug fixes deployed today. See release notes and schedule.",
7 links: [{ url: "https://status.example.com/release-notes", title: "Release notes" }],
8 media: [
9 {
10 type: "image",
11 assets: [{ url: "https://cdn.example.com/updates/q2.png", mimeType: "image/png", width: 1200, height: 628 }]
12 }
13 ]
14};
15const broadcastId: string = "broadcast_live_202603";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
17const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
18

コメントを通報(公開) Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
isFlaggedbooleanはい
ssostringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

flagCommentPublic の例
Copy Copy
1
2const tenantId: string = "tenant_9f8b3c";
3const commentId: string = "comment_72a1d4";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1Njc4OSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

大きな GIF を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
largeInternalURLSanitizedstringはい

レスポンス

戻り値: GifGetLargeResponse

getGifLarge の例
Copy Copy
1
2const tenantId: string = 'tenant_8a92f4';
3const largeInternalURLSanitized: string = 'https://cdn.streamingco.com/gifs/product-demo-large.gif';
4let maybeStatus: APIStatus | undefined = undefined; // 利用可能な場合のオプションメタデータ
5const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6

GIF 検索を取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
searchstringはい
localestringいいえ
ratingstringいいえ
pagenumberいいえ

レスポンス

戻り値: GifSearchResponse

getGifsSearch の例
Copy Copy
1
2(async () => {
3 const tenantId: string = "global-media";
4 const search: string = "laughing baby";
5 const locale: string = "en-US";
6 const rating: string = "pg";
7 const page: number = 2;
8 const result: GifSearchResponse = await getGifsSearch(tenantId, search, locale, rating, page);
9 console.log(result);
10})();
11

トレンドの GIF を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
localestringいいえ
ratingstringいいえ
pagenumberいいえ

レスポンス

戻り値: GifSearchResponse

getGifsTrending の例
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const locale: string = 'en-US';
4const rating: string = 'PG';
5const page: number = 1;
6const result: GifSearchResponse = await getGifsTrending(tenantId, locale, rating, page);
7

ハッシュタグを追加 Internal Link

パラメータ

名前必須説明
tenantIdstringいいえ
createHashTagBodyCreateHashTagBodyいいえ

レスポンス

戻り値: AddHashTag200Response

addHashTag の例
Copy Copy
1
2const tenantId: string | undefined = undefined;
3const createHashTagBody: CreateHashTagBody = {
4 name: 'release-2026',
5 description: 'Feedback and bug reports for the April 2026 product release',
6 synonyms: ['v2-release', 'launch-2026'],
7 color: '#1d72b8',
8 isActive: true,
9 createdBy: 'product.manager@acme-corp.com'
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
12

ハッシュタグを一括追加 Internal Link

パラメータ

名前必須説明
tenantIdstringいいえ
bulkCreateHashTagsBodyBulkCreateHashTagsBodyいいえ

レスポンス

返却値: AddHashTagsBulk200Response

addHashTagsBulk の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
4 tags: [
5 { name: 'feature-request', slug: 'feature-request', description: 'Requests for new capabilities', isActive: true, customConfig: { visibility: 'public' } as unknown as CustomConfigParameters }
6 ]
7};
8const addHashTagsResponse: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
9
10const bulkCreateHashTagsBodyNoTenant: BulkCreateHashTagsBody = {
11 tags: [
12 { name: 'ux-feedback', slug: 'ux-feedback', description: 'User experience suggestions', isActive: true }
13 ]
14};
15const addHashTagsResponseNoTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBodyNoTenant);
16

ハッシュタグを削除 Internal Link

パラメータ

NameTypeRequiredDescription
tagstringはい
tenantIdstringいいえ
deleteHashTagRequestDeleteHashTagRequestいいえ

レスポンス

戻り値: FlagCommentPublic200Response

deleteHashTag の例
Copy Copy
1
2const tag: string = "spring-sale-2026";
3const tenantId: string = "tenant-9876";
4const deleteHashTagRequest: DeleteHashTagRequest = {
5 requestedBy: "admin@retailco.com",
6 reason: "Campaign ended; remove associated auto-tags",
7 cascadeDelete: true
8};
9const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteHashTagRequest);
10

ハッシュタグ一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
pagenumberいいえ

レスポンス

戻り値: GetHashTags200Response

getHashTags の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const pageNumber: number = 2;
4const responseWithPage: GetHashTags200Response = await getHashTags(tenantId, pageNumber);
5const responseWithoutPage: GetHashTags200Response = await getHashTags(tenantId);
6

ハッシュタグを部分更新 Internal Link

パラメータ

名前必須説明
tagstringはい
tenantIdstringいいえ
updateHashTagBodyUpdateHashTagBodyいいえ

レスポンス

戻り値: PatchHashTag200Response

patchHashTag の例
Copy Copy
1
2const tag: string = "feature-ux-refresh";
3const tenantId: string = "tenant_4f92c1";
4const updateHashTagBody: UpdateHashTagBody = {
5 label: "UX Refresh",
6 description: "Track comments related to the 2026 UX redesign",
7 isActive: true,
8 metadata: { owner: "product-design", rolloutPhase: "phase-2" }
9};
10const response: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
11

モデレーターを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createModeratorBodyCreateModeratorBodyはい

レスポンス

戻り値: CreateModerator200Response

createModerator の例
Copy Copy
1
2const tenantId: string = "tenant_8f3b6c";
3const optionalConfig: CustomConfigParameters = { moderationThreshold: 5, escalateOnRepeatedOffenses: true };
4const newModerator: CreateModeratorBody = {
5 email: "lina.gomez@dailynews.com",
6 fullName: "Lina Gomez",
7 role: "senior_moderator",
8 enabled: true,
9 notifyByEmail: true,
10 customConfig: optionalConfig
11};
12const response: CreateModerator200Response = await createModerator(tenantId, newModerator);
13

モデレーターを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
sendEmailstringいいえ

レスポンス

返却: FlagCommentPublic200Response

deleteModerator の例
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6d';
3const id: string = 'mod_4a3e11ec9d1f0242ac120003';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6

モデレーターを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetModerator200Response

getModerator の例
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-123';
3const id: string = 'mod-987654321';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

モデレーター一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
skipnumberいいえ

レスポンス

戻り値: GetModerators200Response

getModerators Example
Copy Copy
1
2const tenantId: string = 'tenant-12345-prod';
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, 50);
5

招待を送信 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
fromNamestringはい

レスポンス

戻り値: FlagCommentPublic200Response

sendInvite の例
Copy Copy
1
2const tenantId: string = 'acme-corp-128';
3const id: string = 'comment-8421f';
4const fromName: string = 'Marcus Lindström';
5const note: string | undefined = undefined; // オプションのパラメータ例
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

モデレーターを更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateModeratorBodyUpdateModeratorBodyはい

レスポンス

戻り値: FlagCommentPublic200Response

updateModerator の例
Copy Copy
1
2const tenantId: string = "acme-enterprises-42";
3const id: string = "moderator_517";
4const updateModeratorBody: UpdateModeratorBody = {
5 displayName: "Sofia Martinez",
6 email: "sofia.martinez@acme.com",
7 permissions: ["approve_comments", "flag_spam", "suspend_users"],
8 active: true,
9 avatarUrl: "https://cdn.acme.com/avatars/sofia.jpg" // オプションのフィールドを示しています
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

通知カウントを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: FlagCommentPublic200Response

deleteNotificationCount の例
Copy Copy
1
2const tenantId: string = "org-72a8f1b9";
3const id: string = "notif-8f9c2e4a";
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5console.log(result);
6

キャッシュされた通知カウントを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetCachedNotificationCount200Response

getCachedNotificationCount の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // オプションのパラメータフラグ(例)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

通知カウントを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringいいえ
urlIdstringいいえ
fromCommentIdstringいいえ
viewedbooleanいいえ
typestringいいえ

レスポンス

戻り値: GetNotificationCount200Response

getNotificationCount の例
Copy Copy
1
2const tenantId: string = 'tenant_abc123';
3const userId: string = 'user_987654321';
4const urlId: string = 'https://example.com/news/2026/new-features';
5const viewed: boolean = false;
6const type: string = 'reply';
7const notificationCountResponse: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, undefined, viewed, type);
8

通知一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringいいえ
urlIdstringいいえ
fromCommentIdstringいいえ
viewedbooleanいいえ
typestringいいえ
skipnumberいいえ

レスポンス

返却: GetNotifications200Response

getNotifications の例
Copy Copy
1
2const tenantId: string = "tenant_84b3f2";
3const userId: string = "user_1279";
4const urlId: string = "https://www.example.com/articles/2026/03/25/new-feature";
5const fromCommentId: string = "cmt_5421";
6const viewed: boolean = false;
7const type: string = "mention";
8const skip: number = 0;
9const notifications: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
10

通知を更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateNotificationBodyUpdateNotificationBodyはい
userIdstringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

updateNotification の例
Copy Copy
1
2const tenantId: string = 'tenant_prod_8f4b2c';
3const id: string = 'notification_61a2e9';
4const userId: string = 'moderator_107';
5const updateNotificationBody: UpdateNotificationBody = {
6 name: 'Flagged Comment Notification',
7 enabled: true,
8 channels: ['email', 'inbox'],
9 templateId: 'tmpl_mod_alerts_01',
10 severity: 'high'
11};
12const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
13

ページを追加 Internal Link

Parameters

名前必須説明
tenantIdstringはい
createAPIPageDataCreateAPIPageDataはい

Response

戻り値: AddPageAPIResponse


ページを削除 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: DeletePageAPIResponse


URL ID でページを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい

レスポンス

戻り値: GetPageByURLIdAPIResponse


ページ一覧を取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい

レスポンス

戻り値: GetPagesAPIResponse


ページを部分更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateAPIPageDataUpdateAPIPageDataはい

レスポンス

戻り値: PatchPageAPIResponse

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

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい

レスポンス

戻り値: FlagCommentPublic200Response

deletePendingWebhookEvent の例
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // オプションのフラグの例(この呼び出しでは必須ではありません)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

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

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringいいえ
externalIdstringいいえ
eventTypestringいいえ
typestringいいえ
domainstringいいえ
attemptCountGTnumberいいえ

レスポンス

戻り値: GetPendingWebhookEventCount200Response

getPendingWebhookEventCount の例
Copy Copy
1
2const tenantId: string = "tenant_8d3b7a2f";
3const commentId: string | undefined = "comment_79a2b";
4const eventType: string | undefined = "comment.created";
5const domain: string | undefined = "forum.acme-corp.com";
6const attemptCountGT: number | undefined = 1;
7const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
8 tenantId,
9 commentId,
10 undefined,
11 eventType,
12 undefined,
13 domain,
14 attemptCountGT
15);
16

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

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringいいえ
externalIdstringいいえ
eventTypestringいいえ
typestringいいえ
domainstringいいえ
attemptCountGTnumberいいえ
skipnumberいいえ

レスポンス

返却値: GetPendingWebhookEvents200Response

getPendingWebhookEvents の例
Copy Copy
1
2const tenantId: string = 'tenant_9b3f7c';
3const commentId: string | undefined = undefined;
4const externalId: string | undefined = 'external-572a';
5const eventType: string | undefined = 'comment.updated';
6const type: string | undefined = 'outbound';
7const domain: string | undefined = 'reviews.example.com';
8const attemptCountGT: number | undefined = 1;
9const skip: number | undefined = 20;
10
11const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

質問設定を作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createQuestionConfigBodyCreateQuestionConfigBodyはい

レスポンス

戻り値: CreateQuestionConfig200Response

createQuestionConfig の例
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const createQuestionConfigBody: CreateQuestionConfigBody = {
4 title: "Post-purchase feedback",
5 description: "Quick survey about your recent order",
6 required: true,
7 renderingType: "single_choice",
8 options: [
9 { label: "Very dissatisfied", value: "1" },
10 { label: "Dissatisfied", value: "2" },
11 { label: "Neutral", value: "3" },
12 { label: "Satisfied", value: "4" },
13 { label: "Very satisfied", value: "5" }
14 ] as QuestionConfigCustomOptionsInner[]
15} as CreateQuestionConfigBody;
16const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
17

質問設定を削除 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: FlagCommentPublic200Response

deleteQuestionConfig の例
Copy Copy
1
2const tenantId: string = "tenant_42fa9b7c";
3const id: string = "qcfg-0f8fad5b-d9cb-469f-a165-70867728950e";
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

質問設定を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetQuestionConfig200Response

getQuestionConfig の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-92';
3const id: string = 'question-2026-07-42';
4const response: GetQuestionConfig200Response = await getQuestionConfig(tenantId, id);
5
6function summarize(cfg: GetQuestionConfig200Response, includeDetails?: boolean): string {
7 return includeDetails ? 'Question config (detailed)' : 'Question config (summary)';
8}
9
10const summary: string = summarize(response);
11

質問設定一覧を取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
skipnumberいいえ

レスポンス

戻り値: GetQuestionConfigs200Response

getQuestionConfigs の例
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

質問設定を更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateQuestionConfigBodyUpdateQuestionConfigBodyはい

レスポンス

戻り値: FlagCommentPublic200Response

updateQuestionConfig の例
Copy Copy
1
2const tenantId: string = 'tenant_42e8b';
3const id: string = 'question_9f4a2';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = {
5 questionText: 'How helpful was this article?',
6 description: 'Shown to users below the question (optional)',
7 required: true,
8 renderingType: 'Likert' as QuestionRenderingType,
9 customOptions: [
10 { label: 'Very helpful', value: '5' } as QuestionConfigCustomOptionsInner,
11 { label: 'Somewhat helpful', value: '3' } as QuestionConfigCustomOptionsInner,
12 { label: 'Not helpful', value: '1' } as QuestionConfigCustomOptionsInner
13 ],
14 whenSave: 'notify' as QuestionWhenSave
15};
16const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
17

質問結果を作成 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
createQuestionResultBodyCreateQuestionResultBodyはい

レスポンス

戻り値: CreateQuestionResult200Response

createQuestionResult の例
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const createQuestionResultBody: CreateQuestionResultBody = {
4 questionId: 'q-34567',
5 respondentId: 'user-8923',
6 answers: [{ optionId: 'opt_A', text: 'Agree', count: 1 }],
7 score: 5,
8 meta: [{ key: 'platform', value: 'web' }],
9 notifyModerators: false // 任意のパラメータ
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

質問結果を削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

返却値: FlagCommentPublic200Response

deleteQuestionResult の例
Copy Copy
1
2const tenantIdEnv: string | undefined = process.env.FASTCOMMENTS_TENANT_ID;
3const tenantId: string = tenantIdEnv ?? 'tenant_78b3f2';
4const id: string = 'qres-9f2a3b1c';
5const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
6

質問結果を取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetQuestionResult200Response

getQuestionResult の例
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // オプションパラメータの例
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

質問結果一覧を取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

レスポンス

戻り値: GetQuestionResults200Response

getQuestionResults の例
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9b3f";
4 const urlId: string = "survey-2026-spring";
5 const userId: string = "user_00123";
6 const startDate: string = "2026-04-01T00:00:00Z";
7 const questionIds: string = "q_42,q_43";
8 const skip: number = 0;
9 const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, undefined, questionIds, skip);
10 console.log(result);
11})();
12

質問結果を更新 Internal Link


パラメーター

名前必須説明
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

レスポンス

戻り値: FlagCommentPublic200Response

updateQuestionResult の例
Copy Copy
1
2const tenantId: string = 'tenant_7f8b3c';
3const id: string = 'questionResult_4621';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 questionId: 'q_1024',
6 result: 'flagged',
7 score: 0.92,
8 notes: 'Automated moderation flagged for review',
9 meta: [{ key: 'source', value: 'ai-moderator' }] as MetaItem[], // オプションのメタデータ
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

質問結果を集計 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
questionIdstringいいえ
questionIdsArrayいいえ
urlIdstringいいえ
timeBucketAggregateTimeBucketいいえ
startDateDateいいえ
forceRecalculatebooleanいいえ

レスポンス

戻り値: AggregateQuestionResults200Response

aggregateQuestionResults の例
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const questionIds: string[] = ["q-2026-sales", "q-2026-support"];
4const urlId: string = "url_7f2c";
5const timeBucket: AggregateTimeBucket = { unit: "week", size: 1 };
6const startDate: Date = new Date("2026-01-01T00:00:00Z");
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined,
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

質問結果を一括集計 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestはい
forceRecalculatebooleanいいえ

Response

返り値: BulkAggregateQuestionResults200Response

bulkAggregateQuestionResults の例
Copy Copy
1
2const tenantId: string = "tenant_acme_42";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 questions: [
5 { questionId: "q-001", threadId: "thread-1001", questionType: "rating" },
6 { questionId: "q-002", threadId: "thread-1002", questionType: "yes_no" }
7 ],
8 timeRange: { from: "2026-03-01T00:00:00Z", to: "2026-04-01T00:00:00Z" },
9 groupBy: ["questionId", "threadId"]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

コメントと質問結果を結合 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
questionIdstringいいえ
questionIdsArrayいいえ
urlIdstringいいえ
startDateDateいいえ
forceRecalculatebooleanいいえ
minValuenumberいいえ
maxValuenumberいいえ
limitnumberいいえ

レスポンス

戻り値: CombineCommentsWithQuestionResults200Response

combineCommentsWithQuestionResults の例
Copy Copy
1
2const tenantId: string = 'tenant-acme-001';
3const questionId: string | undefined = 'q-analytics-42';
4const questionIds: string[] | undefined = ['q-analytics-42', 'q-feedback-17'];
5const urlId: string | undefined = 'url-987654';
6const startDate: Date | undefined = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean | undefined = true;
8const minValue: number | undefined = 1;
9const maxValue: number | undefined = 5;
10const limit: number | undefined = 250;
11const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
12 tenantId,
13 questionId,
14 questionIds,
15 urlId,
16 startDate,
17 forceRecalculate,
18 minValue,
19 maxValue,
20 limit
21);
22

SSO ユーザーを追加 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createAPISSOUserDataCreateAPISSOUserDataはい

レスポンス

返却値: AddSSOUserAPIResponse


SSO ユーザーを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
deleteCommentsbooleanいいえ
commentDeleteModestringいいえ

レスポンス

戻り値: DeleteSSOUserAPIResponse

メールで SSO ユーザーを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
emailstringはい

レスポンス

戻り値: GetSSOUserByEmailAPIResponse


ID で SSO ユーザーを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetSSOUserByIdAPIResponse


SSO ユーザー一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
skipnumberいいえ

レスポンス

返却: GetSSOUsers200Response


SSO ユーザーを部分更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateAPISSOUserDataUpdateAPISSOUserDataはい
updateCommentsbooleanいいえ

レスポンス

戻り値: PatchSSOUserAPIResponse


SSO ユーザーを置換 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
updateAPISSOUserDataUpdateAPISSOUserDataはい
updateCommentsbooleanいいえ

レスポンス

戻り値: PutSSOUserAPIResponse

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

サブスクリプションを作成 Internal Link

パラメーター

名前必須説明
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataYes

レスポンス

返却値: CreateSubscriptionAPIResponse

createSubscription の例
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "user_98765",
5 planId: "pro_monthly",
6 paymentMethod: { type: "card", cardId: "card_abc123" },
7 autoRenew: true,
8 trialDays: 14, // オプションのパラメーターの例
9 metadata: { campaign: "spring_launch" } // オプションのパラメーターの例
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

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


パラメータ

名前必須説明
tenantIdstringはい
idstringはい
userIdstringいいえ

レスポンス

戻り値: DeleteSubscriptionAPIResponse


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

パラメーター

名前必須説明
tenantIdstringはい
userIdstringいいえ

レスポンス

戻り値: GetSubscriptionsAPIResponse

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

サブスクリプションを更新 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataはい
userIdstringいいえ

レスポンス

戻り値: UpdateSubscriptionAPIResponse

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

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

パラメータ

名前必須説明
tenantIdstringYes
yearNumbernumberNo
monthNumbernumberNo
dayNumbernumberNo
skipnumberNo

レスポンス

戻り値: GetTenantDailyUsages200Response

getTenantDailyUsages の例
Copy Copy
1
2const tenantId: string = 'tenant_5f4a3b2c-1d6e-4f9a-b9d8-123456789abc';
3const yearNumber: number = 2026;
4const monthNumber: number = 3;
5const dayNumber: number = 24;
6const skip: number = 0;
7
8const result: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, dayNumber, skip);
9

テナントパッケージを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createTenantPackageBodyCreateTenantPackageBodyはい

レスポンス

戻り値: CreateTenantPackage200Response

createTenantPackage の例
Copy Copy
1
2const tenantId: string = "tenant_acme-corp_001";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 name: "Acme Standard Package",
5 description: "Default package for Acme Corp comments with moderation and SSO enabled",
6 enabled: true,
7 maxCommentsPerThread: 500,
8 voteStyle: "thumbs",
9 gifRating: "PG-13",
10 tosConfig: { enabled: true, url: "https://acme.example.com/terms" } // オプションパラメータの例を示す
11};
12const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
13

テナントパッケージを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenantPackage の例
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_8f3a2b4c9d01";
4 const packageId: string = "pkg_2026-04-security-patch";
5 const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6 console.log(result);
7})();
8

テナントパッケージを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetTenantPackage200Response

getTenantPackage の例
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c8';
3const packageId: string = 'pkg_standard_2026';
4const requestOptions: { includeConfig?: boolean } = { includeConfig: true };
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

テナントパッケージ一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
skipnumberいいえ

レスポンス

返却値: GetTenantPackages200Response

getTenantPackages の例
Copy Copy
1
2const tenantId: string = 'tenant-7b3c2f';
3const skipCount: number = 10;
4const packages: GetTenantPackages200Response = await getTenantPackages(tenantId, skipCount);
5const packagesFromStart: GetTenantPackages200Response = await getTenantPackages(tenantId);
6

テナントパッケージを置換 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
replaceTenantPackageBodyReplaceTenantPackageBodyはい

レスポンス

戻り値: FlagCommentPublic200Response

replaceTenantPackage の例
Copy Copy
1
2const tenantId: string = "tenant-9f3c2a";
3const id: string = "pkg_4f8b21";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 packageName: "Premium Moderation Pack",
6 enabled: true,
7 apiStatus: { mode: "active" } as APIStatus,
8 customConfigParameters: { maxFlagsBeforeReview: 5 } as CustomConfigParameters,
9 voteStyle: "thumbs" as VoteStyle,
10 tosConfig: { requireAcceptance: true } as TOSConfig
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

テナントパッケージを更新 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
updateTenantPackageBodyUpdateTenantPackageBodyはい

レスポンス

返却値: FlagCommentPublic200Response

updateTenantPackage の例
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_sf_001";
4 const id: string = "pkg-premium-v2";
5 const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: "San Francisco Premium",
7 enabled: true,
8 customConfig: { maxComments: 500 },
9 tosConfig: { required: true } // オプションのフィールドは存在することで示しており、他のフィールドは省略しています
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

テナントユーザーを作成 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

レスポンス

戻り値: CreateTenantUser200Response

createTenantUser の例
Copy Copy
1
2const tenantId: string = "tenant_74b3a9f4b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@acmecorp.com",
5 displayName: "Jane Doe",
6 role: "moderator",
7 sendWelcomeEmail: true, // オプションのパラメータの例
8 metadata: { department: "Customer Support" }
9};
10const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
11

テナントユーザーを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
deleteCommentsstringいいえ
commentDeleteModestringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenantUser の例
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme_corp_tenant_9f1a2b";
4 const id: string = "user_4d2a1b6c";
5 const deleteComments: string = "true"; // ユーザーのコメントも削除する
6 const commentDeleteMode: string = "permanent"; // "permanent" または "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

テナントユーザーを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetTenantUser200Response

getTenantUser の例
Copy Copy
1
2const tenantId: string = 'tenant_fc5a9b2c';
3const userId: string = 'user_0a12b3';
4const result: GetTenantUser200Response = await getTenantUser(tenantId, userId);
5const user: User | undefined = (result as any).user; // ペイロードにアクセス
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

テナントユーザー一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
skipnumberいいえ

レスポンス

戻り値: GetTenantUsers200Response

getTenantUsers の例
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

テナントユーザーを置換 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい
replaceTenantUserBodyReplaceTenantUserBodyはい
updateCommentsstringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

replaceTenantUser の例
Copy Copy
1
2const tenantId: string = "tenant_acmeCorp";
3const id: string = "user_84b2";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 email: "alice.jenkins@acmecorp.com",
6 displayName: "Alice Jenkins",
7 roles: ["moderator", "editor"],
8 disabled: false
9} as ReplaceTenantUserBody;
10const updateComments: string = "Migrated user account and reattributed historical comments";
11
12const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
13

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
redirectURLstringいいえ

レスポンス

返却: FlagCommentPublic200Response

sendLoginLinkの例
Copy Copy
1
2const tenantId: string = "tenant_12a9f3b7";
3const id: string = "user_84b2c7d1";
4const redirectURL: string = "https://app.mycompany.com/welcome?ref=login_email";
5const resultWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
6const resultWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
7

テナントユーザーを更新 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
updateTenantUserBodyUpdateTenantUserBodyはい
updateCommentsstringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

updateTenantUser の例
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9d";
3const id: string = "user_52c9f1ab";
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: "jane.doe@example.com",
6 displayName: "Jane Doe",
7 roles: ["moderator"],
8 isActive: true,
9 metadata: { signupSource: "sso", locale: "en-US" }
10};
11const updateComments: string = "Promoted to moderator and updated display name";
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

テナントを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

レスポンス

戻り値: CreateTenant200Response

createTenant の例
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme Corporation',
5 domainConfiguration: { primaryDomain: 'comments.acme.com', enforceHttps: true } as APIDomainConfiguration,
6 billingInfo: { planId: 'enterprise', contactEmail: 'billing@acme.com' } as BillingInfo
7 // ssoConfig や customConfig といったオプションのフィールドは意図的に省略しています
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

テナントを削除 Internal Link


パラメータ

NameTypeRequiredDescription
tenantIdstringはい
idstringはい
surestringいいえ

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenant の例
Copy Copy
1
2const tenantId: string = 'tenant_42c9f1';
3const id: string = 'flag_9a7b3c';
4const sure: string = 'confirm-delete';
5const result: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
6

テナントを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetTenant200Response

getTenant の例
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // オプションのオーバーライド(利用可能な場合)
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

テナント一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
metastringいいえ
skipnumberいいえ

レスポンス

戻り値: GetTenants200Response

getTenants の例
Copy Copy
1
2const tenantId: string = 'tenant_8421e7';
3const meta: string = 'include=domains,billing,customConfig';
4const skip: number = 20;
5
6const tenantsBasic: GetTenants200Response = await getTenants(tenantId);
7const tenantsWithOptions: GetTenants200Response = await getTenants(tenantId, meta, skip);
8

テナントを更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateTenantBodyUpdateTenantBodyはい

レスポンス

戻り値: FlagCommentPublic200Response

updateTenant の例
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const id: string = 'tenant-42';
4const billingInfo: BillingInfo = { billingEmail: 'billing@acme.com', address: '123 Market St' } as BillingInfo;
5const updateTenantBody: UpdateTenantBody = { displayName: 'Acme Corporation', billingInfo } as UpdateTenantBody;
6const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
7

チケットの状態を変更 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringはい
idstringはい
changeTicketStateBodyChangeTicketStateBodyはい

レスポンス

戻り値: ChangeTicketState200Response

changeTicketState の例
Copy Copy
1
2const tenantId: string = "tenant_7f3b2c9a";
3const userId: string = "user_5a1d9fb2";
4const id: string = "ticket_3e8a1b6f";
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: "closed",
7 reason: "Fixed in backend release 2.4.1",
8 notifyUsers: true,
9 metadata: { resolutionOwner: "agent_12", priority: "high" } // オプションフィールドの例
10};
11const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
12

チケットを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringはい
createTicketBodyCreateTicketBodyはい

レスポンス

戻り値: CreateTicket200Response

createTicketの例
Copy Copy
1
2const tenantId: string = 'acme-company-001';
3const userId: string = 'u_78f4b2';
4const createTicketBody: CreateTicketBody = {
5 title: 'Unable to access project dashboard',
6 description: 'Receiving 403 when accessing /dashboard for project X',
7 priority: 'high',
8 tags: ['dashboard', 'access'] // オプションのフィールドの例
9};
10const result: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
11

チケットを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
userIdstringいいえ

レスポンス

戻り値: GetTicket200Response

getTicket の例
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const ticketId: string = 'tkt-20260325-42';
4const userId: string = 'user-8452';
5
6const ticketResponseWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketResponseWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8

チケット一覧を取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
userIdstringいいえ
statenumberいいえ
skipnumberいいえ
limitnumberいいえ

レスポンス

戻り値: GetTickets200Response

getTickets の例
Copy Copy
1
2const tenantId: string = "tenant_92f3b4c1";
3const userId: string = "user_742a9f3e";
4const state: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const ticketsFull: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
8const ticketsMinimal: GetTickets200Response = await getTickets("tenant_92f3b4c1");
9

翻訳を取得 Internal Link

パラメータ

名前必須説明
namespacestringはい
componentstringはい
localestringいいえ
useFullTranslationIdsbooleanいいえ

レスポンス

戻り値: GetTranslationsResponse

getTranslations の例
Copy Copy
1
2const translationsDefault: GetTranslationsResponse = await getTranslations("payments", "checkout");
3const translationsFrenchDetailed: GetTranslationsResponse = await getTranslations("payments", "checkout", "fr-FR", true);
4

画像をアップロード Internal Link

画像をアップロードしてリサイズする

パラメータ

名前必須説明
tenantIdstringはい
fileBlobはい
sizePresetSizePresetいいえ
urlIdstringいいえ

レスポンス

戻り値: UploadImageResponse


ID でユーザーバッジ進捗を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

返却: GetUserBadgeProgressById200Response

getUserBadgeProgressById の例
Copy Copy
1
2const optionalTenantSuffix: string | undefined = undefined;
3const tenantId: string = `5f8d0d55-1234-4ab1-9e2a-3f2b5c6d7e8f${optionalTenantSuffix ?? ''}`;
4const id: string = '3a2b1c4d-5678-4ef0-9abc-def123456789';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, id);
6

ユーザーIDでユーザーバッジ進捗を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringはい

レスポンス

戻り値: GetUserBadgeProgressById200Response

getUserBadgeProgressByUserId の例
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // オプションのソース(undefined になり得ます)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

ユーザーバッジ進捗一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringYes
userIdstringNo
limitnumberNo
skipnumberNo

レスポンス

戻り値: GetUserBadgeProgressList200Response

getUserBadgeProgressList の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f8c2b9d';
4 const userId: string = 'user_9a7e215c';
5 const limit: number = 25;
6 const skip: number = 0;
7 const resultMinimal: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId);
8 const resultFull: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 console.log(resultMinimal, resultFull);
10})();
11

ユーザーバッジを作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
createUserBadgeParamsCreateUserBadgeParamsはい

レスポンス

戻り値: CreateUserBadge200Response

createUserBadge の例
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const params: CreateUserBadgeParams = {
4 name: "Top Contributor",
5 slug: "top-contributor",
6 description: "Awarded for 100 approved comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top-contributor.png",
8 active: true,
9 criteria: { approvedComments: 100 },
10 customConfig: { showOnProfile: true } // optional parameter
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, params);
13

ユーザーバッジを削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: UpdateUserBadge200Response

deleteUserBadge の例
Copy Copy
1
2type DeleteOptions = { notifyModerators?: boolean };
3
4const tenantId: string = 'tenant_8a3f21';
5const id: string = 'badge_71f2b';
6const options: DeleteOptions = { notifyModerators: true };
7
8const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
9

ユーザーバッジを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetUserBadge200Response

getUserBadge の例
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

ユーザーバッジ一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
userIdstringいいえ
badgeIdstringいいえ
typenumberいいえ
displayedOnCommentsbooleanいいえ
limitnumberいいえ
skipnumberいいえ

レスポンス

返却: GetUserBadges200Response

getUserBadges の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_5f4d3c2a';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 1;
6const displayedOnComments: boolean = true;
7const limit: number = 50;
8const skip: number = 0;
9
10const result: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
11

ユーザーバッジを更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
updateUserBadgeParamsUpdateUserBadgeParamsはい

レスポンス

戻り値: UpdateUserBadge200Response

updateUserBadge の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_987';
4 const id: string = 'badge_top_contributor_42';
5 const updateUserBadgeParams: UpdateUserBadgeParams = {
6 title: 'Top Contributor',
7 description: 'Awarded for reaching 100 high-quality comments',
8 color: '#FFD700',
9 iconUrl: 'https://cdn.acme.com/badges/top-contributor.svg',
10 active: true,
11 notifyUsers: true
12 } as UpdateUserBadgeParams;
13 const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
14 console.log(result);
15})();
16

ユーザーの通知カウントを取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
ssostringいいえ

レスポンス

戻り値: GetUserNotificationCount200Response

getUserNotificationCount の例
Copy Copy
1
2(async () => {
3 const tenantId: string = '9f1e2d3c-4b5a-6d7e-8f90-123456789abc';
4 const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MjMifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
5 const resultWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6 const resultWithoutSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
7 console.log(resultWithSSO, resultWithoutSSO);
8})();
9

ユーザーの通知を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
pageSizenumberいいえ
afterIdstringいいえ
includeContextbooleanいいえ
afterCreatedAtnumberいいえ
unreadOnlybooleanいいえ
dmOnlybooleanいいえ
noDmbooleanいいえ
includeTranslationsbooleanいいえ
ssostringいいえ

レスポンス

返却: GetUserNotifications200Response

getUserNotifications の例
Copy Copy
1
2const tenantId: string = 'tenant_7f3b1c';
3const pageSize: number = 25;
4const afterId: string = 'notif_b2f9e4';
5const includeContext: boolean = true;
6const afterCreatedAt: number = Date.now() - 24 * 60 * 60 * 1000;
7const unreadOnly: boolean = true;
8const dmOnly: boolean = false;
9const noDm: boolean = false;
10const includeTranslations: boolean = true;
11const sso: string = 'sso_tok_user_9f8d7c';
12const response: GetUserNotifications200Response = await getUserNotifications(
13 tenantId,
14 pageSize,
15 afterId,
16 includeContext,
17 afterCreatedAt,
18 unreadOnly,
19 dmOnly,
20 noDm,
21 includeTranslations,
22 sso
23);
24

ユーザーの通知カウントをリセット Internal Link

パラメータ

名前必須説明
tenantIdstringはい
ssostringいいえ

レスポンス

戻り値: ResetUserNotifications200Response

resetUserNotificationCount の例
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f3b2c4a";
4 const ssoToken: string | undefined = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9._sample_payload_.signature";
5 const responseWithSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
6 const responseWithoutSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
7 console.log(responseWithSSO, responseWithoutSSO);
8})();
9

ユーザーの通知をリセット Internal Link

パラメータ

Name必須説明
tenantIdstringはい
afterIdstringいいえ
afterCreatedAtnumberいいえ
unreadOnlybooleanいいえ
dmOnlybooleanいいえ
noDmbooleanいいえ
ssostringいいえ

レスポンス

戻り値: ResetUserNotifications200Response

resetUserNotificationsの例
Copy Copy
1
2const tenantId: string = "tenant_prod_4a9f12";
3const afterId: string = "notification_87213";
4const afterCreatedAt: number = Math.floor(Date.now() / 1000) - 3600;
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.payload";
8const result: ResetUserNotifications200Response = await resetUserNotifications(tenantId, afterId, afterCreatedAt, unreadOnly, dmOnly, undefined, sso);
9

ユーザーのコメント通知購読状態を更新 Internal Link

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

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
notificationIdstringはい
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumはい
commentIdstringはい
ssostringいいえ

レスポンス

返却値: UpdateUserNotificationStatus200Response

updateUserNotificationCommentSubscriptionStatus の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const notificationId: string = 'notif-2026-03-25-01';
4const commentId: string = 'cmt-8f3a2b';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso-payload.signature';
7const result: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

ユーザーのページ通知購読状態を更新 Internal Link

ページの通知を有効または無効にします。ユーザーがページを購読している場合、新しいルートコメントに対して通知が作成され、また

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい
urlstringはい
pageTitlestringはい
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumはい
ssostringいいえ

レスポンス

戻り値: UpdateUserNotificationStatus200Response

updateUserNotificationPageSubscriptionStatus の例
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const urlId: string = 'blog-launch-2026';
4const url: string = 'https://acme.example.com/blog/launch-march-2026';
5const pageTitle: string = 'Acme Product Launch — March 2026';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
8const response: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

ユーザーの通知状態を更新 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
notificationIdstringはい
newStatusUpdateUserNotificationStatusNewStatusEnumはい
ssostringいいえ

レスポンス

戻り値: UpdateUserNotificationStatus200Response

updateUserNotificationStatus の例
Copy Copy
1
2const tenantId: string = 'tenant_84a2c3';
3const notificationId: string = 'notif_20260325_01';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_signature_example';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

ユーザーのプレゼンスステータスを取得 Internal Link

パラメータ

NameTypeRequiredDescription
tenantIdstringはい
urlIdWSstringはい
userIdsstringはい

レスポンス

戻り値: GetUserPresenceStatuses200Response

getUserPresenceStatuses の例
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // 任意のソース
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

ユーザーを検索 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい
usernameStartsWithstringいいえ
mentionGroupIdsArrayいいえ
ssostringいいえ
searchSectionSearchUsersSearchSectionEnumいいえ

レスポンス

戻り値: SearchUsers200Response

searchUsers の例
Copy Copy
1
2const tenantId: string = 'tenant_8392';
3const urlId: string = 'articles/2026/03/25/fastcomments-release';
4const usernameStartsWith: string = 'jo';
5const mentionGroupIds: Array<string> = ['editors', 'senior-writers'];
6const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.ALL;
8const result: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

ユーザーを取得 Internal Link


パラメータ

名前必須説明
tenantIdstringはい
idstringはい

レスポンス

戻り値: GetUser200Response

getUser の例
Copy Copy
1
2const idSuffix: string | undefined = undefined;
3const tenantId: string = "acme-enterprises";
4const id: string = idSuffix ?? "user_98765";
5const response: GetUser200Response = await getUser({ tenantId, id });
6

投票を作成 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
commentIdstringはい
directionCreateVoteDirectionEnumはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

戻り値: VoteComment200Response

createVote の例
Copy Copy
1
2const tenantId: string = 'tenant_5f2a9b';
3const commentId: string = 'cmt_3b7e21';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_9x7k2p';
6const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
7

投票を削除 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
idstringはい
editKeystringいいえ

レスポンス

返却値: DeleteCommentVote200Response

deleteVote の例
Copy Copy
1
2const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
3const id: string = 'vote-7a1b2c3d-9f8e-4b6a-8123-abcdef012345';
4const editKey: string = 'editKey_4f3e2d1c';
5
6const resultWithEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
7const resultWithoutEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id);
8

投票一覧を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい

レスポンス

戻り値: GetVotes200Response

getVotes の例
Copy Copy
1
2const tenantId: string = 'tenant-42c-eu';
3const urlId: string = 'article-7f9b';
4const includeMetadata: boolean | undefined = true;
5const votes: GetVotes200Response = await getVotes(tenantId, urlId);
6

ユーザーの投票を取得 Internal Link

パラメータ

名前必須説明
tenantIdstringはい
urlIdstringはい
userIdstringいいえ
anonUserIdstringいいえ

レスポンス

返却値: GetVotesForUser200Response

getVotesForUser の例
Copy Copy
1
2(async (): Promise<void> => {
3 const tenantId: string = "local-news-ny";
4 const urlId: string = "articles/2026-03-25/ev-infrastructure-update";
5 const userId: string = "user_78b6f3d9";
6 const anonUserId: string = "anon_9c3f7a1b";
7 const result: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
8 console.log(result);
9})();
10

ヘルプが必要ですか?

JavaScript/TypeScript SDKに関して問題が発生したり質問がある場合は、以下をご利用ください:

貢献

貢献は歓迎します!貢献に関するガイドラインはGitHubリポジトリをご覧ください。