FastComments.com

FastComments JavaScript/TypeScript SDK


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

FastComments API の公式 JavaScript/TypeScript SDK

リポジトリ

GitHubで表示


インストール Internal Link

npm install fastcomments-sdk

APIドキュメント Internal Link


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

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


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

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

公開APIと保護されたAPI Internal Link

The SDK は3つの主要な API クラスを提供します:

  • DefaultApi - 認証に API キーを必要とする保護されたエンドポイント。サーバー側の操作に使用してください。
  • PublicApi - API キーなしでアクセスできる公開エンドポイント。ブラウザやモバイルデバイスなどから直接呼び出せます。
  • HiddenApi - 高度なユースケース向けの内部/管理者用エンドポイント。

例: Public API の使用(ブラウザ対応)

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

const publicApi = new PublicApi();

// ページのコメントを取得(API キー不要)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

例: Default API の使用(サーバー側のみ)

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

const config = new Configuration({
  apiKey: 'your-api-key' // これは秘密にしてください!
});
const defaultApi = new DefaultApi(config);

// 管理者権限でコメントを取得
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO(シングルサインオン)連携 Internal Link

FastComments は既存のユーザー認証システムと統合するための SSO をサポートしています。SSO 機能は Node.js の crypto 機能を必要とするため、サーバーエクスポートでのみ利用可能です。

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

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

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

// 組み込みのヘルパーを使って simple SSO を作成  
const userData = {
  username: 'john_doe',
  email: 'john@example.com',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg'
};

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

const ssoToken = sso.createToken();

// ssoToken をクライアント側コードに送信する
// クライアント側のコードはこのトークンをブラウザ用 SDK で使用できます

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

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

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

// 組み込みのヘルパーを使って secure SSO を作成
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

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

const ssoConfig = sso.prepareToSend();

// サーバー上の API 呼び出しで使用
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// または ssoConfig をクライアントに送ってブラウザで使用

ブラウザからの SSO の使用(サーバー生成トークンあり)

// クライアント側のコード(ブラウザ)
import { PublicApi } from 'fastcomments-sdk/browser';

// サーバーのエンドポイントから SSO トークンを取得
const ssoToken = await fetch('/api/sso-token').then(r => r.json());

const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: ssoToken // サーバー生成の SSO トークンを使用
});

コメント作成時の SSO

// サーバー側: SSO とコメントを作成
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

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

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

一般的なユースケース Internal Link

ページのコメントを取得する

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

コメントを作成する

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

コメントに投票する

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 は賛成(アップボート)、-1 は反対(ダウンボート)
  }
});

ユーザー管理 (APIキーが必要)

// ユーザーを検索する (DefaultApi が必要)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

ライブイベント(リアルタイム更新) Internal Link

ライブイベントを購読して、コメント、投票、その他のアクティビティのリアルタイム更新を取得します。

ページレベルのイベント

特定のページのライブイベント(コメント、投票など)を監視します:

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

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

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

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

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

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

ユーザーイベントを購読

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

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

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

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

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

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

// Close when done
userSubscription.close();

userIdWS の取得

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

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

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

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

ブロードキャストID Internal Link

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

import { v4 as uuidv4 } from 'uuid';

const response = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'page-id',
    comment: 'My comment',
    broadcastId: uuidv4() // この操作のための一意のID
  }
});

エラー処理 Internal Link

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

集計 Internal Link


groupBy が提供されている場合にグループ化し、複数の操作を適用してドキュメントを集約します。 sum、countDistinct、avg など、さまざまな操作がサポートされています。

パラメータ

名前 必須 説明
tenantId string はい
aggregationRequest AggregationRequest はい
parentTenantId string いいえ
includeStats boolean いいえ

レスポンス

戻り値: AggregationResponse


監査ログを取得する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
limit number いいえ
skip number いいえ
order SORTDIR いいえ
after number いいえ
before number いいえ

レスポンス

戻り値: GetAuditLogs200Response

getAuditLogs の例
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_9b8f6c';
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = 'desc';
7 const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000;
8 const response: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after);
9 console.log(response);
10}
11main();
12

公開コメントからブロックする Internal Link

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
publicBlockFromCommentParams PublicBlockFromCommentParams はい
sso string いいえ

レスポンス

返却: 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


パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
publicBlockFromCommentParams PublicBlockFromCommentParams はい
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string Yes
commentIds string Yes
sso string No

レスポンス

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


パラメータ

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

レスポンス

返却値: BlockFromCommentPublic200Response

blockUserFromComment の例
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const id: string = "comment_67890";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated abusive language",
6 blockDurationHours: 168,
7 blockReplies: true,
8 notifyAuthor: true
9};
10const userId: string = "user_abc123";
11const anonUserId: string = "anon_xyz789";
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
13

公開コメントを作成する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい
broadcastId string はい
commentData CommentData はい
sessionId string いいえ
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
contextUserId string いいえ
isLive boolean いいえ

レスポンス

戻り値: DeleteComment200Response

deleteComment の例
Copy Copy
1
2const tenantId: string = 'tenant_7b3f2a';
3const commentId: string = 'cmt_8a1f4d2b';
4const contextUserId: string = 'user_102';
5const isLive: boolean = true;
6const result: DeleteComment200Response = await deleteComment(tenantId, commentId, contextUserId, isLive);
7

公開コメントを削除する Internal Link


パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
editKey string いいえ
sso string いいえ

レスポンス

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

名前 必須 説明
tenantId string はい
commentId string はい
voteId string はい
urlId string はい
broadcastId string はい
editKey string いいえ
sso string いいえ

レスポンス

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

パラメータ

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

レスポンス

戻り値: FlagComment200Response

flagComment の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const id: string = 'comment_7f3a2b9e';
4const userId: string = 'user_jdoe_1001';
5const anonUserId: string = 'anon_3f2b_visitor';
6const result: FlagComment200Response = await flagComment(tenantId, id, userId, anonUserId);
7

コメントを取得する Internal Link

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
page number いいえ
limit number いいえ
skip number いいえ
asTree boolean いいえ
skipChildren number いいえ
limitChildren number いいえ
maxTreeDepth number いいえ
urlId string いいえ
userId string いいえ
anonUserId string いいえ
contextUserId string いいえ
hashTag string いいえ
parentId string いいえ
direction SortDirections いいえ

レスポンス

戻り値: GetComments200Response

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

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい
page number いいえ
direction SortDirections いいえ
sso string いいえ
skip number いいえ
skipChildren number いいえ
limit number いいえ
limitChildren number いいえ
countChildren boolean いいえ
fetchPageForCommentId string いいえ
includeConfig boolean いいえ
countAll boolean いいえ
includei10n boolean いいえ
locale string いいえ
modules string いいえ
isCrawler boolean いいえ
includeNotificationCount boolean いいえ
asTree boolean いいえ
maxTreeDepth number いいえ
useFullTranslationIds boolean いいえ
parentId string いいえ
searchText string いいえ
hashTags Array いいえ
userId string いいえ
customConfigStr string いいえ
afterCommentId string いいえ
beforeCommentId string いいえ

レスポンス

戻り値: GetCommentsPublic200Response

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
editKey string いいえ
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
dir number はい
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
sso string いいえ

レスポンス

返却値: 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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
createCommentParams CreateCommentParams はい
isLive boolean いいえ
doSpamCheck boolean いいえ
sendEmails boolean いいえ
populateNotifications boolean いいえ

レスポンス

返却値: 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

パラメータ

名前 必須 説明
tenantId string はい
createCommentParams Array はい
isLive boolean いいえ
doSpamCheck boolean いいえ
sendEmails boolean いいえ
populateNotifications boolean いいえ

レスポンス

返却値: 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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
commentTextUpdateRequest CommentTextUpdateRequest はい
editKey string いいえ
sso string いいえ

レスポンス

戻り値: SetCommentText200Response

setCommentText の例
Copy Copy
1
2const tenantId: string = 'tenant_6721f4';
3const commentId: string = 'cmt_9a3b2d';
4const broadcastId: string = 'live_2026_03_25';
5const editKey: string = 'edit_k_4f7b9';
6const sso: string = 'sso_tok_eyJhbGciOiJIUzI1';
7const commentTextUpdateRequest: CommentTextUpdateRequest = {
8 text: 'Updated to clarify the timeline and link the relevant docs.',
9 mentions: [{ userId: 'user_102', displayName: 'Alex Rivera' }],
10 hashtags: [{ tag: 'product-update' }]
11};
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso);
13

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

パラメータ

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

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
id string はい
userId string いいえ
anonUserId string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
broadcastId string はい
sso string いいえ

レスポンス

戻り値: 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 Type Required Description
tenantId string はい
id string はい
updatableCommentParams UpdatableCommentParams はい
contextUserId string いいえ
doSpamCheck boolean いいえ
isLive boolean いいえ

レスポンス

戻り値: FlagCommentPublic200Response

updateComment の例
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_01";
3const id: string = "comment_20260325_4592";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Updated the response to include a link to the RFC and fixed a typo in the second paragraph.",
6 editedByUserId: "user_8721",
7 isVisible: true
8};
9const contextUserId: string = "user_8721";
10const doSpamCheck: boolean = true;
11const isLive: boolean = true;
12const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
13

コメントに投票する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
urlId string はい
broadcastId string はい
voteBodyParams VoteBodyParams はい
sessionId string いいえ
sso string いいえ

レスポンス

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


パラメータ

名前 必須 説明
tenantId string はい
addDomainConfigParams AddDomainConfigParams はい

レスポンス

戻り値: AddDomainConfig200Response


ドメイン設定を削除する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
domain string はい

レスポンス

戻り値: DeleteDomainConfig200Response


ドメイン設定を取得する Internal Link


パラメータ

名前 必須 説明
tenantId string はい
domain string はい

レスポンス

戻り値: GetDomainConfig200Response


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


パラメータ

名前 必須 説明
tenantId string はい

レスポンス

戻り値: GetDomainConfigs200Response


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

パラメータ

名前 必須 説明
tenantId string はい
domainToUpdate string はい
patchDomainConfigParams PatchDomainConfigParams はい

レスポンス

戻り値: GetDomainConfig200Response


ドメイン設定を置換する Internal Link


パラメータ

名前 必須 説明
tenantId string はい
domainToUpdate string はい
updateDomainConfigParams UpdateDomainConfigParams はい

レスポンス

戻り値: GetDomainConfig200Response


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

パラメータ

名前 必須 説明
tenantId string はい
createEmailTemplateBody CreateEmailTemplateBody はい

レスポンス

戻り値: CreateEmailTemplate200Response

createEmailTemplate の例
Copy Copy
1
2const tenantId: string = "tenant_7a9f3c2b";
3const customConfig: CustomConfigParameters = { smtpHost: "smtp.fastmail.com", smtpPort: 587, useTLS: true };
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Account Notification",
6 subject: "Your ACME account was updated",
7 fromEmail: "no-reply@acme-corp.com",
8 replyTo: "support@acme-corp.com",
9 html: "<p>Hi {{user.firstName}}, your account settings were changed.</p>",
10 text: "Hi {{user.firstName}}, your account settings were changed.",
11 isActive: true,
12 description: "Used for transactional account update emails",
13 customConfig
14};
15const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
16

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

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteEmailTemplate の例
Copy Copy
1
2const tenantId: string = 'tenant_7f4c9d1e';
3const templateId: string = 'tmpl_welcome_2024-03';
4const notifyAdmin: boolean | undefined = true; // オプションのパラメータの例
5
6const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
7

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
errorId string はい

レスポンス

返却: FlagCommentPublic200Response

deleteEmailTemplateRenderError の例
Copy Copy
1
2const tenantId: string = 'tenant_7f3b4c2a';
3const templateEnvironment: string | undefined = 'production'; // オプションの環境セレクター
4const id: string = `emailTemplates/${templateEnvironment ?? 'staging'}/welcome_v2`;
5const errorId: string = 'err_5a9d2f1c';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
7console.log(result);
8

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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい

レスポンス

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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
skip number いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
renderEmailTemplateBody RenderEmailTemplateBody はい
locale string いいえ

レスポンス

戻り値: RenderEmailTemplate200Response

renderEmailTemplate の例
Copy Copy
1
2const tenantId: string = 'tenant_b6f3c2';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'comment-notification',
5 recipient: { name: 'Ava Thompson', email: 'ava.thompson@publisher.com' },
6 context: {
7 siteName: 'City Gazette',
8 commentText: 'Thanks for the in-depth coverage — very helpful.',
9 articleTitle: 'Downtown Redevelopment Plan Advances',
10 threadUrl: 'https://citygazette.example/articles/2026/redevelopment#comments'
11 }
12};
13const locale: string = 'en-US';
14const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateEmailTemplateBody UpdateEmailTemplateBody はい

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
urlId string はい
userIdWS string はい
startTime number はい
endTime number はい

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
urlId string はい
userIdWS string はい
startTime number はい
endTime number はい

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
createFeedPostParams CreateFeedPostParams はい
broadcastId string いいえ
isLive boolean いいえ
doSpamCheck boolean いいえ
skipDupCheck boolean いいえ

レスポンス

返却値: CreateFeedPost200Response

createFeedPost の例
Copy Copy
1
2const tenantId: string = "tenant_7f3b9a";
3const createFeedPostParams: CreateFeedPostParams = {
4 title: "Weekly Product Update — March 2026",
5 body: "We've shipped performance improvements and bug fixes across the web client. See the release notes for details.",
6 authorId: "user_86fa2b",
7 allowComments: true,
8 media: [
9 {
10 url: "https://cdn.example.com/images/update-march.png",
11 mimeType: "image/png",
12 caption: "Performance graph",
13 assets: [{ url: "https://cdn.example.com/images/update-march@2x.png", width: 1600, height: 900 }]
14 }
15 ],
16 links: [{ url: "https://www.example.com/release-notes/march-2026", title: "Release notes" }]
17};
18const broadcastId: string = "broadcast_prod_updates_202603";
19const isLive: boolean = false;
20const doSpamCheck: boolean = true;
21const skipDupCheck: boolean = false;
22const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
23

公開フィード投稿を作成する Internal Link


パラメータ

名前 必須 説明
tenantId string はい
createFeedPostParams CreateFeedPostParams はい
broadcastId string いいえ
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
postId string はい
broadcastId string いいえ
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
afterId string いいえ
limit number いいえ
tags Array いいえ

レスポンス

返却値: 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 必須 説明
tenantId string はい
afterId string いいえ
limit number いいえ
tags Array いいえ
sso string いいえ
isCrawler boolean いいえ
includeUserInfo boolean いいえ

レスポンス

返却値: 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

パラメータ

名前 必須 説明
tenantId string はい
postIds Array はい
sso string いいえ

レスポンス

返却値: 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

パラメータ

Name Type Required Description
tenantId string Yes
postIds Array No
sso string No

レスポンス

返却値: 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

パラメータ

名前 必須 説明
tenantId string はい
postId string はい
reactBodyParams ReactBodyParams はい
isUndo boolean いいえ
broadcastId string いいえ
sso string いいえ

レスポンス

返却値: ReactFeedPostPublic200Response

reactFeedPostPublic の例
Copy Copy
1
2const tenantId: string = 'd290f1ee-6c54-4b01-90e6-d701748f0851';
3const postId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍', source: 'web' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast-2026-03-25-001';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
8const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, sso);
9

フィード投稿を更新する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
id string はい
feedPost FeedPost はい

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
postId string はい
updateFeedPostParams UpdateFeedPostParams はい
broadcastId string いいえ
sso string いいえ

レスポンス

返却: 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

パラメータ

名前 必須 説明
tenantId string はい
commentId string はい
isFlagged boolean はい
sso string いいえ

レスポンス

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

ハッシュタグを追加する Internal Link

パラメーター

Name Type Required Description
tenantId string いいえ
createHashTagBody CreateHashTagBody いいえ

レスポンス

戻り値: AddHashTag200Response

addHashTag の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const createHashTagBody: CreateHashTagBody = {
4 name: 'feature-request',
5 label: 'Feature Request',
6 color: '#FF5722',
7 enabled: true
8};
9const response: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
10const responseWithoutTenant: AddHashTag200Response = await addHashTag(undefined, createHashTagBody);
11

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

パラメータ

名前 必須 説明
tenantId string いいえ
bulkCreateHashTagsBody BulkCreateHashTagsBody いいえ

Response

戻り値: AddHashTagsBulk200Response

addHashTagsBulk の例
Copy Copy
1
2// テナント識別子を作成(オプションのパラメータ)
3const tenantId: string = "tenant_9f8c2b7a";
4
5// 個々のタグエントリを準備
6const tag1: BulkCreateHashTagsBodyTagsInner = {
7 name: "product-feedback",
8 label: "Product Feedback",
9 color: "#1f8a70",
10 description: "User suggestions and enhancement requests",
11 isActive: true
12};
13
14const tag2: BulkCreateHashTagsBodyTagsInner = {
15 name: "bug-report",
16 label: "Bug Report",
17 color: "#d64545",
18 description: "User-reported defects and issues",
19 isActive: true
20};
21
22// 一括作成ボディ(オプションのパラメータ)
23const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
24 tags: [tag1, tag2]
25};
26
27// グローバルな非同期関数を呼び出し、型付き結果を代入
28const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
29

ハッシュタグを削除する Internal Link

パラメータ

名前 必須 説明
tag string はい
tenantId string いいえ
deleteHashTagRequest DeleteHashTagRequest いいえ

レスポンス

戻り値: FlagCommentPublic200Response

deleteHashTag の例
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_12345";
4const deleteRequest: DeleteHashTagRequest = { initiatedBy: "moderator@newsorg.com", purgeAllOccurrences: true };
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteRequest);
6

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

パラメータ

名前 必須 説明
tenantId string はい
page number いいえ

レスポンス

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

パラメータ

名前 必須 説明
tag string はい
tenantId string いいえ
updateHashTagBody UpdateHashTagBody いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
createModeratorBody CreateModeratorBody はい

レスポンス

戻り値: CreateModerator200Response

createModerator の例
Copy Copy
1
2const tenantId: string = 'tenant_7d9f2b4a';
3const customConfig: CustomConfigParameters = { timezone: 'UTC', moderationQueueEnabled: true };
4const createModeratorBody: CreateModeratorBody = {
5 email: 'jane.martin@publisher.com',
6 displayName: 'Jane Martin',
7 roles: ['moderator'],
8 sendWelcomeEmail: true,
9 customConfig
10};
11const response: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

モデレーターを削除する Internal Link

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

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

モデレーターを取得する Internal Link

パラメータ

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

レスポンス

戻り値: GetModerator200Response

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

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

パラメータ

名前 必須 説明
tenantId string はい
skip number いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
fromName string はい

レスポンス

返却: FlagCommentPublic200Response

sendInvite の例
Copy Copy
1
2const tenantId: string = 'tenant_acme-42';
3const id: string = 'comment_8f3b21a7';
4const fromName: string = 'Elena Morales';
5const replyToEmail: string | undefined = undefined;
6
7const result: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName, replyToEmail);
8

モデレーターを更新する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateModeratorBody UpdateModeratorBody はい

レスポンス

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

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteNotificationCount の例
Copy Copy
1
2const tenantSuffix: string | undefined = undefined;
3const tenantId: string = tenantSuffix ? `tenant-${tenantSuffix}` : 'tenant-9142a7';
4const id: string = '3f9b2a44-1c2e-4d3b-9f6a-8e7c6d5b2a1f';
5const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
6console.log(result);
7

キャッシュされた通知数を取得する Internal Link


パラメータ

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

レスポンス

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

パラメータ

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

レスポンス

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

パラメータ

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

レスポンス

返却: 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

パラメータ

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

レスポンス

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

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

Response

戻り値: AddPageAPIResponse


ページを削除する Internal Link


パラメータ

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

レスポンス

戻り値: DeletePageAPIResponse


URL IDでページを取得する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい

レスポンス

戻り値: GetPageByURLIdAPIResponse


ページ一覧を取得する Internal Link


パラメータ

名前 必須 説明
tenantId string はい

レスポンス

戻り値: GetPagesAPIResponse


ページを部分更新する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateAPIPageData UpdateAPIPageData はい

レスポンス

戻り値: PatchPageAPIResponse

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

パラメータ

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

レスポンス

返却: FlagCommentPublic200Response

deletePendingWebhookEvent の例
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42f7c9b1';
4 const id: string = 'pending_webhook_ev_8f3b9a2d';
5 const reason?: string = undefined; // オプションのパラメータの例(関数で必須ではありません)
6 const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
7 console.log(result);
8})();
9

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string いいえ
externalId string いいえ
eventType string いいえ
type string いいえ
domain string いいえ
attemptCountGT number いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
commentId string いいえ
externalId string いいえ
eventType string いいえ
type string いいえ
domain string いいえ
attemptCountGT number いいえ
skip number いいえ

レスポンス

返却値: GetPendingWebhookEvents200Response

getPendingWebhookEvents の例
Copy Copy
1
2const tenantId: string = 'tenant_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

パラメータ

Name Type Required Description
tenantId string Yes
createQuestionConfigBody CreateQuestionConfigBody Yes

レスポンス

返却値: CreateQuestionConfig200Response

createQuestionConfig の例
Copy Copy
1
2const tenantId: string = "tenant_9f8b2c";
3const option: QuestionConfigCustomOptionsInner = { id: "opt_yes", label: "Yes, helpful", value: "yes" };
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 title: "Article usefulness",
6 prompt: "Was this article helpful?",
7 type: "singleChoice",
8 required: false, // オプションのパラメータの例
9 options: [option],
10 saveBehavior: "immediate"
11};
12const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
13

質問設定を削除する Internal Link

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteQuestionConfig の例
Copy Copy
1
2const tenantId: string = "acme-enterprises-01";
3const idOptional: string | undefined = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4const id: string = idOptional ?? "11111111-1111-1111-1111-111111111111";
5const response: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
6

質問設定を取得する Internal Link

パラメータ

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

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
skip number いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateQuestionConfigBody UpdateQuestionConfigBody はい

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
createQuestionResultBody CreateQuestionResultBody はい

レスポンス

返却値: CreateQuestionResult200Response

createQuestionResult の例
Copy Copy
1
2const tenantId: string = "tenant-72b1f4";
3const meta: MetaItem[] = [{ key: "platform", value: "web" }];
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "question-83472",
6 commenterId: "user-5521",
7 answers: [{ subQuestionId: "sq-1", value: "Yes" }],
8 meta, // 任意のメタデータ
9 note: "Follow-up requested" // 任意のパラメーターの例
10};
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

質問結果を削除する Internal Link

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteQuestionResult の例
Copy Copy
1
2const tenantId: string = "org-82479";
3const questionId: string = "q-6a3d2e1f";
4const includeArchived?: boolean = false; // 代替ターゲット選択を示すオプションのパラメータ
5const targetId: string = includeArchived ? "q-archived-112233" : questionId;
6const result: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, targetId);
7

質問結果を取得する Internal Link

パラメータ

Name Type Required Description
tenantId string はい
id string はい

レスポンス

返却: GetQuestionResult200Response

getQuestionResult の例
Copy Copy
1
2const post: { title: string; questionId?: string } = { title: 'Product feedback' };
3const tenantId: string = 'acme-corp-tenant-01';
4const id: string = post.questionId ?? 'q-8f3a7b2c4d9e';
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6

質問結果一覧を取得する Internal Link

パラメータ

Name 必須 説明
tenantId string はい
urlId string いいえ
userId string いいえ
startDate string いいえ
questionId string いいえ
questionIds string いいえ
skip number いいえ

レスポンス

戻り値: GetQuestionResults200Response

getQuestionResults の例
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const urlId: string = "articles/product-launch-2026";
4const userId: string = "user_2048";
5const startDate: string = "2026-03-01T00:00:00Z";
6const questionId: string | undefined = undefined;
7const questionIds: string | undefined = "q_101,q_102";
8const skip: number | undefined = 0;
9
10const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
11

質問結果を更新する Internal Link


パラメーター

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

レスポンス

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

パラメータ

名前 Type 必須 説明
tenantId string はい
questionId string いいえ
questionIds Array いいえ
urlId string いいえ
timeBucket AggregateTimeBucket いいえ
startDate Date いいえ
forceRecalculate boolean いいえ

レスポンス

戻り値: AggregateQuestionResults200Response

aggregateQuestionResults の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_98765';
3const questionIds: Array<string> = ['q-102', 'q-103'];
4const urlId: string = 'url_55b3';
5const timeBucket: AggregateTimeBucket = { unit: 'day', size: 7 };
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined, // questionId を省略し、代わりに questionIds を使用
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

質問結果を一括集計する Internal Link


パラメータ

名前 必須 説明
tenantId string はい
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest はい
forceRecalculate boolean いいえ

レスポンス

戻り値: BulkAggregateQuestionResults200Response

bulkAggregateQuestionResults の例
Copy Copy
1
2const tenantId: string = "tenant_live_7c9d";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 { questionId: "q_feedback_rating", includeSubQuestions: false, filters: { locale: "en-US" } }
6 ],
7 timeBuckets: [
8 { granularity: "day", startUtc: "2026-03-01T00:00:00Z", endUtc: "2026-03-15T00:00:00Z" }
9 ]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

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

パラメータ

名前 必須 説明
tenantId string はい
questionId string いいえ
questionIds Array いいえ
urlId string いいえ
startDate Date いいえ
forceRecalculate boolean いいえ
minValue number いいえ
maxValue number いいえ
limit number いいえ

レスポンス

返却値: CombineCommentsWithQuestionResults200Response

combineCommentsWithQuestionResults の例
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2';
3const questionIds: string[] = ['question-42', 'question-43'];
4const urlId: string = 'url_5d7b';
5const startDate: Date = new Date('2026-02-01T00:00:00Z');
6const forceRecalculate: boolean = true;
7const minValue: number = 1;
8const maxValue: number = 5;
9const limit: number = 50;
10const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
11 tenantId,
12 undefined,
13 questionIds,
14 urlId,
15 startDate,
16 forceRecalculate,
17 minValue,
18 maxValue,
19 limit
20);
21

SSOユーザーを追加する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
createAPISSOUserData CreateAPISSOUserData はい

レスポンス

返却値: AddSSOUserAPIResponse


SSOユーザーを削除する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
id string はい
deleteComments boolean いいえ
commentDeleteMode string いいえ

レスポンス

戻り値: DeleteSSOUserAPIResponse

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


パラメータ

名前 必須 説明
tenantId string はい
email string はい

レスポンス

戻り値: GetSSOUserByEmailAPIResponse


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


パラメータ

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

レスポンス

戻り値: GetSSOUserByIdAPIResponse


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

パラメータ

名前 必須 説明
tenantId string はい
skip number いいえ

レスポンス

返却: GetSSOUsers200Response


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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateAPISSOUserData UpdateAPISSOUserData はい
updateComments boolean いいえ

レスポンス

戻り値: PatchSSOUserAPIResponse


SSOユーザーを置換する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateAPISSOUserData UpdateAPISSOUserData はい
updateComments boolean いいえ

レスポンス

戻り値: PutSSOUserAPIResponse


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

パラメータ

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

レスポンス

返却値: CreateSubscriptionAPIResponse

createSubscription の例
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "u_987654",
5 planId: "pro_monthly",
6 startDate: new Date().toISOString(),
7 trialDays: 14, // 任意パラメータの例を示しています
8 metadata: { source: "marketing-email" } // 任意パラメータの例を示しています
9};
10const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
11const subscription: APIUserSubscription = result.subscription;
12

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


パラメータ

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

レスポンス

戻り値: DeleteSubscriptionAPIResponse


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

パラメータ

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

レスポンス

戻り値: GetSubscriptionsAPIResponse

getSubscriptions の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const userId: string = 'user_76a3b9f2';
4const subscriptionsForUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
5const subscriptionsForTenant: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
6

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


パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string Yes
yearNumber number No
monthNumber number No
dayNumber number No
skip number No

レスポンス

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

パラメータ

Name Type Required Description
tenantId string Yes
createTenantPackageBody CreateTenantPackageBody Yes

レスポンス

戻り値: CreateTenantPackage200Response

createTenantPackage の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: 'Standard Moderation',
5 description: 'Suitable for small-to-medium sites: basic moderation, spam rules, and analytics',
6 maxCommentsPerMinute: 50,
7 allowAnonymousComments: false, // オプションのパラメータが指定されています
8 // オプションのフィールドは省略されています: 例: 高度なモデレーションルール、カスタムCSS
9 customConfigParameters: {
10 enableProfanityFilter: true,
11 imageContentProfanityLevel: 'medium' // 説明用の値。CustomConfigParameters 形式を使用します
12 }
13};
14const response: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
15console.log(response);
16

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

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenantPackage の例
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_987';
3const packageId: string = 'pkg_pro_2026_01';
4type DeleteOptions = { force?: boolean; notify?: boolean };
5const options: DeleteOptions = { force: true }; // 任意のパラメータの例
6const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
7

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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
skip number いいえ

レスポンス

戻り値: GetTenantPackages200Response

getTenantPackages の例
Copy Copy
1
2const tenantId: string = "tenant_7f8e3b4c";
3const skip: number = 20;
4const packagesDefault: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
replaceTenantPackageBody ReplaceTenantPackageBody はい

レスポンス

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


パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateTenantPackageBody UpdateTenantPackageBody はい

レスポンス

戻り値: FlagCommentPublic200Response

updateTenantPackage の例
Copy Copy
1
2const tenantId: string = "tenant_3b7f9d-prod";
3const id: string = "pkg_enterprise_2026";
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: "Enterprise Plus",
6 isActive: true,
7 // オプションのフィールドは意図的に省略されています(例: description、limits)
8} as UpdateTenantPackageBody;
9const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
10

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

パラメータ

Name Type Required Description
tenantId string はい
createTenantUserBody CreateTenantUserBody はい

レスポンス

返却: CreateTenantUser200Response

createTenantUser の例
Copy Copy
1
2const tenantId: string = 'tenant_6f4b2c';
3const createTenantUserBody: CreateTenantUserBody = {
4 email: 'sara.kim@example.com',
5 displayName: 'Sara Kim',
6 role: 'moderator',
7 notifyOnMentions: true
8};
9const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
10

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

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenantUser の例
Copy Copy
1
2const tenantId: string = '4f3a9b2e-1c6a-4f7b-9e2a-0b8d6f1c2a3e';
3const userId: string = '9d2f7b3a-5c4e-48a2-b1f0-6c7d8e9f0a12';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'permanent';
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, userId, deleteComments, commentDeleteMode);
7

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


パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
skip number いいえ

レスポンス

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


パラメータ

名前 必須 説明
tenantId string はい
id string はい
replaceTenantUserBody ReplaceTenantUserBody はい
updateComments string いいえ

レスポンス

戻り値: FlagCommentPublic200Response

replaceTenantUser の例
Copy Copy
1
2const tenantId: string = 'tenant_9d8f4b2c';
3const id: string = 'user_f47ac10b';
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: 'ext-5234',
6 email: 'jane.doe@acme.com',
7 displayName: 'Jane Doe',
8 roles: ['moderator'],
9 metadata: { department: 'product', region: 'us-east-1' }
10};
11const updateComments: string = 'propagate-display-name-to-comments';
12
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

パラメータ

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

レスポンス

返却: FlagCommentPublic200Response

sendLoginLinkの例
Copy Copy
1
2const tenantId: string = "tenant_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

パラメータ

Name Type Required Description
tenantId string はい
id string はい
updateTenantUserBody UpdateTenantUserBody はい
updateComments string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
createTenantBody CreateTenantBody はい

レスポンス

戻り値: CreateTenant200Response

createTenantの例
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const createTenantBody: CreateTenantBody = {
4 name: "Acme Corporation",
5 domain: "comments.acme.com",
6 adminContact: { name: "Jane Doe", email: "jane.doe@acme.com" },
7 billingInfo: { planId: "pro-monthly", billingContactEmail: "billing@acme.com" },
8 importedSite: { siteId: "site-123", siteName: "Acme Blog" } // 任意のインポート済みサイト
9};
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

テナントを削除する Internal Link

パラメータ

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

レスポンス

戻り値: FlagCommentPublic200Response

deleteTenant の例
Copy Copy
1
2const tenantId: string = "tenant_7f3d2c";
3const id: string = "flag_8392b1a7";
4const sure: string = "confirmed";
5
6const responseWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id);
7const responseWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
8

テナントを取得する Internal Link


パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
meta string いいえ
skip number いいえ

レスポンス

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

パラメータ

名前 タイプ 必須 説明
tenantId string はい
id string はい
updateTenantBody UpdateTenantBody はい

レスポンス

戻り値: FlagCommentPublic200Response

updateTenant の例
Copy Copy
1
2const tenantId: string = "tenant_4821";
3const id: string = "flag_7b9e";
4const billingInfo: BillingInfo | undefined = undefined; // 任意、現在の請求情報を維持する場合は省略
5const updateTenantBody: UpdateTenantBody = {
6 name: "Acme News Comments",
7 defaultDomain: "comments.acme.com",
8 ...(billingInfo ? { billingInfo } : {})
9};
10const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
11

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

パラメータ

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

レスポンス

戻り値: ChangeTicketState200Response

changeTicketState の例
Copy Copy
1
2const tenantId: string = 'tenant_82f9b3';
3const userId: string = 'user_9472';
4const id: string = 'ticket_550e8400-e29b-41d4-a716-446655440000';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'resolved',
7 comment: 'Confirmed fix deployed to production; closing ticket.',
8 notifySubscribers: true
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

チケットを作成する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
userId string はい
createTicketBody CreateTicketBody はい

レスポンス

返り値: CreateTicket200Response

createTicket の例
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const userId: string = "user_72b9f4";
4const createTicketBody: CreateTicketBody = {
5 subject: "Subscription renewal failed for card on file",
6 description: "Customer's card was declined by the payment processor during automatic renewal. Transaction ID: txn_9a8b7c. Please review gateway logs and retry.",
7 priority: "high", // オプションのフィールドの例
8 contactEmail: "billing@acme-corp.com", // 任意の連絡先情報
9 relatedUrl: "https://acme-corp.com/account/billing"
10};
11const ticketResponse: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

チケットを取得する Internal Link

パラメータ

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

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
userId string いいえ
state number いいえ
skip number いいえ
limit number いいえ

レスポンス

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

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

パラメータ

名前 必須 説明
tenantId string はい
file Blob はい
sizePreset SizePreset いいえ
urlId string いいえ

レスポンス

戻り値: UploadImageResponse


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

パラメータ

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

レスポンス

返却: 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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string Yes
userId string No
limit number No
skip number No

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
createUserBadgeParams CreateUserBadgeParams はい

レスポンス

返却値: CreateUserBadge200Response

createUserBadge の例
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const createUserBadgeParams: CreateUserBadgeParams = {
4 name: 'Top Contributor',
5 slug: 'top-contributor',
6 imageUrl: 'https://assets.fastcomments.com/badges/top-contributor.png',
7 description: 'Awarded for 100 helpful comments',
8 active: true,
9 criteria: { commentsCount: 100 }, // オプションの条件
10 displayOrder: 10,
11 metadata: { featured: true } // オプションのメタデータ
12};
13const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
14console.log(result);
15

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

パラメータ

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

レスポンス

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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
userId string いいえ
badgeId string いいえ
type number いいえ
displayedOnComments boolean いいえ
limit number いいえ
skip number いいえ

レスポンス

返却: 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

パラメータ

名前 必須 説明
tenantId string はい
id string はい
updateUserBadgeParams UpdateUserBadgeParams はい

レスポンス

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

パラメータ

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

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
pageSize number いいえ
afterId string いいえ
includeContext boolean いいえ
afterCreatedAt number いいえ
unreadOnly boolean いいえ
dmOnly boolean いいえ
noDm boolean いいえ
includeTranslations boolean いいえ
sso string いいえ

レスポンス

返却: 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

パラメータ

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

レスポンス

戻り値: 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 必須 説明
tenantId string はい
afterId string いいえ
afterCreatedAt number いいえ
unreadOnly boolean いいえ
dmOnly boolean いいえ
noDm boolean いいえ
sso string いいえ

レスポンス

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

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

パラメータ

Name Type Required Description
tenantId string はい
notificationId string はい
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum はい
commentId string はい
sso string いいえ

レスポンス

返却値: 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

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

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい
url string はい
pageTitle string はい
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum はい
sso string いいえ

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
notificationId string はい
newStatus UpdateUserNotificationStatusNewStatusEnum はい
sso string いいえ

レスポンス

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

パラメータ

Name Type Required Description
tenantId string はい
urlIdWS string はい
userIds string はい

レスポンス

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

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい
usernameStartsWith string いいえ
mentionGroupIds Array いいえ
sso string いいえ
searchSection SearchUsersSearchSectionEnum いいえ

レスポンス

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

パラメータ

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

レスポンス

戻り値: GetUser200Response

getUser の例
Copy Copy
1
2const tenantId: string = 'tenant_7b3f42';
3const id: string = 'user_9c4d2a';
4const userResponse: GetUser200Response = await getUser(tenantId, id);
5console.log(userResponse);
6

投票を作成する Internal Link

パラメータ

Name Type Required Description
tenantId string はい
commentId string はい
direction CreateVoteDirectionEnum はい
userId string いいえ
anonUserId string いいえ

レスポンス

戻り値: VoteComment200Response

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

投票を削除する Internal Link

パラメータ

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

レスポンス

戻り値: DeleteCommentVote200Response

deleteVote の例
Copy Copy
1
2const tenantId: string = "tenant_7c3f2b4a";
3const voteId: string = "vote_4f8d9a11";
4const editKey: string = "edit_2b9f8c";
5const resultWithoutKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId);
6const resultWithKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId, editKey);
7

投票一覧を取得する Internal Link

パラメータ

名前 必須 説明
tenantId string はい
urlId string はい

レスポンス

戻り値: GetVotes200Response

getVotes の例
Copy Copy
1
2const tenantId: string = 'acme-corp-8f3b';
3const refCampaign: string | undefined = 'newsletter-march2026'; // オプションのクエリパラメータ
4const urlId: string = `https://www.example.com/articles/2026/03/25/fastcomments-integration${refCampaign ? `?ref=${refCampaign}` : ''}`;
5
6const votes: GetVotes200Response = await getVotes(tenantId, urlId);
7

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

パラメータ

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

レスポンス

返却値: 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リポジトリをご覧ください。