FastComments.com

カスタマイズと設定

カスタマイズと設定

コンテキスト

ここでは、コメントウィジェットがサポートする各機能と設定についての詳細なドキュメントを確認できます。

本ドキュメントではコアコンセプトをカバーし、各機能領域について使い方やよくある落とし穴を含めて詳しく説明します。

コード例を示し、該当する行をハイライトします。該当する場合は設定ページのスクリーンショットも提供します。

コード例では当社のバニラJavaScriptライブラリを使用しますが、設定オプションはコメントウィジェットの全バージョン(React、Vue など)でまったく同じ名前を使用しています。

このガイドで説明するほとんどの設定と機能は、コードを書く必要はありません。

異なるページで同じコメントを表示する Internal Link

urlId パラメータはコメントがどのページ、またはどのIDに紐づくかを定義できるため、これらのページでは単に urlId を同じ値に設定すればよいです。

The Same Comments on Multiple Pages
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "urlId": "https://example.com/source-page"
8}];
9</script>
10

カスタムフォント Internal Link

FastComments はカスタマイズ可能になるよう設計されており、ウィジェットで使用するフォントも例外ではありません。

デフォルトでは、FastComments は幅広いデバイスでできるだけ見栄えが良くなるように system font stack を使用します。

独自のフォントを定義するには、Custom CSS ドキュメント を参照してください。

そこにはカスタム CSS を定義する方法が記載されており、希望するフォントを設定できるようになります。

フォントの定義方法

フォントを上書きするには、.fast-comments, textarea セレクタを使用して CSS を定義することをお勧めします。例:

カスタム外部フォントの例
Copy CopyRun External Link
1
2@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');
3.fast-comments, textarea {
4 font-family: 'Roboto', sans-serif;
5}
6

ダーク背景(ダークモード)への対応 Internal Link

デフォルトでは、FastComments のコメントウィジェットはほとんどのサイトでダークモードを自動的に検出します。

ダークモードが検出されると、FastComments は白背景に黒い文字から黒背景に白い文字へ切り替わります。画像も変更されます。

ページ読み込み時に、ウィジェットはコメントウィジェットの背後にあるページの背景がどれくらい暗いかを判定しようとします。これはつまり ページ自体は白い背景でも、コメントウィジェットを黒い背景のコンテナ内に置けば、ダークモードが コメントを読みやすくするために自動的に有効になるはず、ということです。

しかし、「luminance」を判定する検出メカニズムは、望むときにダークモードを有効にしない場合があります。強制的に有効にするには、次のように hasDarkBackground フラグを true に設定してください:

Force Dark Background Mode
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "hasDarkBackground": true
8}];
9</script>
10

コメントからページへのリンク Internal Link

通知メールの送信時や、モデレーションページなどのユーザーインターフェースにコメントを表示する際に、コメントからそのコメントが存在するページへのリンクを張れると便利です。

URL ID が常に ID であるとは限らない場合、URL を別の場所に保存する必要があります。それが "url" プロパティの役割で、以下のように定義されています。

カスタム URL の定義
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5"
8}];
9</script>
10

よくあるユースケースは、コメントスレッドを記事などの識別子に紐付け、その上で特定のページにリンクを張ることです。例えば:

カスタム URL と URL ID の同時定義
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5",
8 "urlId": "article-5"
9}];
10</script>
11

URL から一般的なマーケティングパラメータは除去されません。デフォルトでは、現在のページの URL がそのままコメントと共に保存されます。

表示するページの決定 Internal Link

コメントを取得してレンダリングする際、コメントウィジェットはどのページから開始するかを知る必要があります。デフォルトでは最初のページから始まり、そのページのみがレンダリングされます。

必要に応じて、描画する正確なページを設定 startingPage としてコメントウィジェットに渡すことができます。

Specifying The Page to Render
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": 1
8}];
9</script>
10

ページ番号は0から始まることに注意してください。そのため、上の例は2ページ目をレンダリングします。

ページをリロードせずにコメントスレッドを切り替える Internal Link

urlId はコメントが紐付けられるページまたは記事の ID であることについては既に説明しました。

また、おさらいとして、urlId が定義されていない場合は現在のページの URL がデフォルトとして使用されます。

では、ページの再読み込みなしにコメントが紐付けられるページやコンテンツが動的に変化する SPA(シングルページアプリケーション)の場合はどうでしょうか?

Angular、React、Vue など

Angular や React などの当社のライブラリでは、ウィジェットに渡される urlId プロパティを更新するだけで、コメントウィジェットが更新されます。例えば React アプリでの動作は、こちらで確認できます。

VanillaJS

VanillaJS ライブラリを使用している場合、Angular や React のようなデータバインディングや状態伝播を処理するフレームワークがないため、少し複雑になります。

VanillaJS ウィジェットをインスタンス化すると、ウィジェットを更新するために呼び出せる関数がいくつか返されます。

以下は、ページハッシュを変更してコメントウィジェットを更新する実際に動作する例です:

ページハッシュ切り替えの例
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<button id="change-page"></button>
4<div id="fastcomments-widget"></div>
5<script>
6 (function fastCommentsMain() {
7 let config = {
8 tenantId: 'demo'
9 };
10 let instance = window.FastCommentsUI(document.getElementById('fastcomments-widget'), config);
11
12 let page = '#page-1';
13 function getNextPage() {
14 if (page === '#page-1') {
15 return '#page-2';
16 } else {
17 return '#page-1';
18 }
19 }
20
21 let button = document.getElementById('change-page');
22 function nextPage() {
23 page = getNextPage();
24 button.innerText = 'Go to ' + getNextPage();
25 window.location.hash = page;
26 let locationString = window.location.toString();
27
28 config.url = locationString; // 通知が正しいページにリンクできるよう、url も更新します
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

画像リダイレクトの無効化 Internal Link

デフォルトでは、FastComments はユーザーが画像をアップロードできるようにしています。ユーザーがその画像をクリックすると、FastComments はデフォルトで 別タブを開き、その画像をフルサイズで表示します。このフラグを true に設定するとこの動作が無効になります:

Disable Image Redirect
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "disableImageRedirect": true
8}];
9</script>
10

画像のクリックを自分で捕捉する予定がない場合(onImageClicked を参照)、画像がクリック可能に見える見た目を取り除くために、これを何らかのスタイリングと組み合わせることを推奨します。

新しいコメントのハイライト Internal Link

FastCommentsでは、新しいコメントをハイライトする方法をいくつか提供しています。

まず最も重要な点として、デフォルトでは、アプリ内通知をトリガーしたコメント(返信、同じスレッド内の返信、または購読しているページへのコメント)は、ユーザーのアバターがわずかに光ることで自動的にハイライトされます。この色は、is-unread クラスを使用してCSSでカスタマイズできます。

過去24時間以内に投稿されたコメントには 24hr クラスが適用され、スタイリングに使用できます。

最後に、ユーザーのセッション中に表示される新しいライブコメントは、アニメーションによって数秒間ハイライトされます。これは is-live CSSクラスを通じて行われ、こちらもカスタマイズ可能です。

メールテンプレート Internal Link

FastComments からお客様へ送信されるメールはカスタマイズできます。テンプレート、ロジック、 翻訳もすべて変更できます。テキストはロケールごとにカスタマイズでき、スタイリング ドメインごとに変更することも可能です。 カスタムメールテンプレートの詳細はこちら

新しいライブコメントを下部に表示 Internal Link

デフォルトでは、新しいライブコメントはリアルタイムで投稿されると、コメントリストの上部に表示されます。

このオプションを有効にすると、新しいライブコメントはリストの下部に追加されるようになります。これは、ユーザーがコメントスレッドを閲覧している間にコメントがライブで投稿された場合の表示方法に影響します。

新しいライブコメントを下部に表示
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "newCommentsToBottom": true
8}];
9</script>
10

この設定を有効にした場合:

  • 他のユーザーが投稿した新しいライブコメントは、コメントリストの下部に表示されます
  • ユーザーは、新しいコメントが既存のコメントの下にリアルタイムで表示されるのを見ることができます
  • これはライブコメントの更新にのみ影響し、ページの初回読み込みには影響しません
  • ディスカッションをフォローしているユーザーの読書フローを維持するのに役立ちます

この設定は、リアルタイムで届く新しいライブコメントの配置場所にのみ影響することに注意してください。ページ読み込み時の初期ソート順には影響しません。

無限スクロールの有効化 Internal Link

デフォルトでは、FastComments ウィジェットは表示されているすべてのコメントに合わせて縦方向に自動的にサイズを調整します。ページネーションは現在のページ末尾にある「次を表示」ボタンで行われます。これは多くのユーザーにとって最も自然に感じられる操作方法であると判断しているためです。

しかし、無限スクロールの方が好まれるケースもあります。例えば、Stream Chat 製品ではこの機能を使用しています。

enableInfiniteScrolling フラグを true に設定することで、「次を表示」ボタンを非表示にして無限スクロールに切り替えることができます:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true
8}];
9</script>
10

これにはカスタム CSS の追加も必要です。スクロールを有効にするには、.comments セレクタに対して次のようなカスタム CSS を追加します。例えば:

無限スクロールを有効にする
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

完全な動作例は次のとおりです:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true,
8 "customCSS": ".comments { max-height: 500px; overflow-y: auto; }"
9}];
10</script>
11

上の例では customCSS プロパティを使用していますが、パフォーマンスの観点からは代わりにウィジェット設定 UI を使用することを推奨します。 カスタム CSS のドキュメントを参照してください。

すべてのコメントを一度に表示 - ページネーションの無効化 Internal Link

ページネーションを無効にして、すべてのコメントを一度にレンダリングするには、startingPageを-1に設定します。

Render All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": -1
8}];
9</script>
10

新しいトップレベルコメントの防止 Internal Link

noNewRootComments を true に設定すると、ウィジェットはルート返信エリアを非表示にしますが、ユーザーは返信 を子コメントに対して行うことができます。例えば、ページ読み込み時に条件付きでこれを設定し、一部のユーザーのみがトップレベルのコメントを残せるようにすることができます。

Prevent New Root Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "noNewRootComments": true
8}];
9</script>
10

最大返信深さ Internal Link

デフォルトでは、FastComments は返信のネストを無制限に許可し、ユーザーが返信に対して際限なく返信できるスレッド構造を作成します。

maxReplyDepth オプションを使うと、返信スレッドの深さを制限できます。最大深度に達すると、そのレベルのコメントには返信ボタンが表示されなくなります。

Limiting Reply Depth to 2 Levels
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "maxReplyDepth": 2
8}];
9</script>
10

With maxReplyDepth set to 2:

  • ユーザーはトップレベルでコメントできます(depth 0)
  • ユーザーはトップレベルのコメントに返信できます(depth 1)
  • その返信にさらに返信できます(depth 2)
  • depth 2 を超える返信は許可されません

maxReplyDepth を 1 に設定すると、トップレベルのコメントへの返信のみが許可され、より平坦な議論の構造になります。

maxReplyDepth を 0 に設定すると、すべての返信が無効になり、トップレベルのコメントのみが許可されます。指定しない場合、返信は無制限にネストされます。

未送信コメントがある状態で離脱しようとしたら警告 Internal Link

デフォルトでは、ユーザーがコメントを入力し、送信前にページをリロードしたり、タブを閉じたり、別のページへ移動したりすると、下書きは黙って失われます。

warnOnUnsavedComment を true に設定すると、コメントボックスや編集中のテキストが残っている間にページを離れようとした際、ブラウザがユーザーに確認を求めます。コメントが送信されるとテキストはクリアされるため、プロンプトは表示されません。

未保存コメントの警告
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "warnOnUnsavedComment": true
8}];
9</script>
10

このプロンプトはブラウザ固有のダイアログを使用します。最新のブラウザは独自の文言を表示し、カスタムテキストは無視されるため、メッセージをカスタマイズすることはできません。

このオプションは必要に応じて小さな拡張機能をロードするため、無効にしているサイトのウィジェットには何も追加されません。

シングルサインオン (SSO) の概要 Internal Link

SSO(Single Sign-On、シングルサインオン)とは、あなたやあなたのユーザーが新しいアカウントを作成することなくFastCommentsを利用できるようにするための一連の規約です。

匿名コメントを許可していない場合、FastCommentsでコメントするにはアカウントが必要です。サインアッププロセスは非常に簡単にしています。ユーザーはコメント時にメールアドレスを残すだけです。 しかし、それでも余分な手間を避けたいサイトがあることは理解しています。

サイト全体でログインフローを1つにすることで、この手間を減らすことができます。

利用するには?

現在、すべてのアカウントタイプでSSOを利用できます。ただし、SSOユーザーの最大数はプランによって異なります。他の機能と同様に、Proプラン以上では直接の開発サポートが提供されます。

まず各オプションを比較し、その後それぞれの詳細を見ていきましょう。

ユーザーとコメントの移行

DisqusのようなSSO対応プラットフォームから移行する場合、すでにユーザーとそのコメントが存在しています。

コメントは、API、インポートUI、またはカスタマーサポートによる移行の一部としてインポートされます。移行元のプラットフォームがサポートされている場合は、インポートUIの利用が推奨されます。インポートUIには、エラーハンドリング、アバターおよびメディアの抽出とアップロード、バッチジョブ監視システムが組み込まれています。

ユーザーそのものは、初めてコメントスレッドを表示した際に自動的に追加されます。あるいは、API経由で事前に追加することもできますが、この作業にはあまりメリットがありません。

コメントがインポートされ、SSOユーザーがAPI経由で手動追加されていない場合、ユーザーが任意のコメントスレッドを表示した際に初めてアカウントが作成されるときに、コメントは自動的にそのユーザーのアカウントに移行されます。その後、ユーザーは自分が元々書いたコメントを管理、編集、削除できるようになります。

自動移行はメールアドレスまたはユーザー名によって行われます。Disqusのように、エクスポート時にメールアドレスが提供されないプラットフォームもあるため、その場合はユーザー名にフォールバックします。

  • 一致するユーザー名と、SSOペイロード内のメールアドレスを渡していただければ、通知やメンションが機能するように、個々のコメントオブジェクトにメールアドレスを追加します。

コメントとユーザーを一度にインポートしたい場合は、API経由でユーザーをインポートした後、サポートと連携してコメントを各ユーザーのアカウントに移行してください。

まとめると、移行の最も簡単な手順は以下の通りです:

  1. コメントをインポートする。
    1. Manage Data -> Imports のインポートUIを使用する場合、アバターやその他のメディアは自動的に移行されます。
  2. Secure SSOまたはSimple SSOをセットアップする。
  3. ユーザーが初めてログインした際に、ユーザーごとに自動的に移行が行われるようにする。
    1. ユーザーのコメント数が5万件未満であれば、通常、ページの読み込み時間に1秒未満しか追加されません。

WordPressユーザー

WordPressプラグインをご利用の場合、コードを書く必要はありません! プラグインの管理ページに移動し、SSO Settingsをクリックして、Enableをクリックするだけです。

これにより、ワンクリックのウィザードが表示され、APIキーが作成され、WordPressインストールに送信され、SSOが有効になります。この操作を1回のボタンクリックにまとめました。

プラグインを初めてインストールする場合は、SSO Settingsボタンのある管理ページが表示される前に、セットアッププロセスを完了する必要がある点にご注意ください。

WordPress SSO - モデレーター

FastComments WordPressプラグインでモデレーターがコメントした際に「Moderator」バッジを表示するには、現在のところ、FastCommentsダッシュボードでもモデレーターとして追加され、メールアドレスの確認が完了している必要がある点にご注意ください。

カスタム統合

カスタム統合には2つのオプションがあります。

オプション1 - Secure SSO

Secure SSOでは、コメント、投票、コメント閲覧を行っているユーザーが、あなたのサイトの実際のユーザーであることをFastCommentsが認識します。

有効なペイロードを作成さえすれば、ユーザーは常にシームレスなコメント体験を得られます。

Secure SSOでは、SSOペイロードはHMAC認証を使用してサーバーサイドで作成され、クライアントのウィジェットに渡されます。

Secure SSOでは、ユーザーのアカウントはFastCommentsの他のユーザーベースから完全に分離されています。つまり、Company AとCompany Bという2つのパートナーがいる場合、それぞれが「Bob」というユーザー名のSSOユーザーを持つことができます。

必要条件

  • バックエンド開発に関する基本的な知識。
  • シークレットAPIキーの取り扱いに関する基本的な知識。
  • API開発またはサーバーサイドレンダリングに関する基本的な知識。

メリット

  • セキュア。
  • シームレスなコメント体験。

デメリット

  • バックエンド開発が必要。

ユーザーデータの更新

Secure SSOでは、SSOユーザーペイロードを渡すたびに、最新の情報でユーザーが更新されます。例えば、ユーザーのユーザー名が X で、SSOペイロードで Y を渡すと、ユーザー名は Y に変更されます。

この方法で値を削除したい場合は、undefined ではなく null を設定してください。

Secure SSO API

SSOユーザーとやり取りするためのAPIも提供しています。詳しくはドキュメントをご覧ください。

Secure SSOを使用する場合、ユーザーはページ読み込み時にバックグラウンドで自動的に作成されます。ユーザーを一括インポートする必要はありません。

オプション2 - Simple SSO

Secure SSOの代替手段として、ユーザー情報をコメントウィジェットに直接渡す方法があります。

Simple SSOではメールアドレスの提供は必須ではありませんが、提供しない場合、そのコメントは「Unverified」と表示されます。

注意! 2022年初頭以降、Simple SSOのユーザー名はFastComments.com全体で一意である必要はありません。

理想的には、Simple SSOはバックエンドアクセスを提供しないプラットフォームで開発する場合にのみ選択すべきです。

必要条件

  • クライアントサイド開発に関する基本的な知識。
  • 少なくともユーザーのメールアドレスを知っている必要がある。

メリット

  • シンプル。
  • すべてのアクティビティは引き続き検証される。
  • ユーザーはユーザー名やメールアドレスを入力する必要がない。

デメリット

  • クライアントサイドのペイロードが細工されて任意のユーザーになり得るため、Secure SSOよりもセキュリティが低い。

Simple SSO API

Simple SSOフローで自動作成されたユーザーは、SSOUser オブジェクトとして保存されます。これらは SSOUser API経由でアクセスおよび管理できます。詳しくはドキュメントをご覧ください。

カスタム統合 - Disqus SSO からの移行 Internal Link

Disqus と FastComments Secure SSO の最大の違いは、Disqus が暗号化に SHA1 を使用しているのに対し、当社は SHA256 を使用している点です。

つまり、Disqus からの移行は簡単です - 使用するハッシュアルゴリズムを SHA1 から SHA256 に変更し、UI に渡されるプロパティ名を更新するだけです。

カスタム統合 - Commento SSO からの移行 Internal Link

Commento は大幅に異なる SSO アプローチを採用しています - ユーザーを認証するために呼び出すエンドポイントを用意する必要があります。

FastComments はその逆で - 単にユーザーの情報をあなたの秘密鍵でエンコードしてハッシュし、それを渡すだけです。

コールバック Internal Link

コメントウィジェット用のすべてのライブラリ(現在は Angular、React、Vue)はコールバックをサポートしています。

コールバックは設定オブジェクトで指定し、各ライブラリで同じシグネチャを持ちます。

サポートされているコールバックは以下です:

  • onInit
  • onAuthenticationChange
  • onRender
  • commentCountUpdated
  • onReplySuccess
  • onVoteSuccess
  • onImageClicked
  • onOpenProfile
  • onCommentSubmitStart
  • onCommentsRendered

正確なシグネチャはTypeScript 定義で確認できます。

以下はすべてのコールバックを使用した例です:

コールバックの例
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: 'demo',
8 onInit: function () {
9 console.log('Library started to fetch comments!');
10 },
11 onAuthenticationChange: function (eventName, userObj) {
12 console.log('User authenticated!', eventName, userObj);
13 },
14 onRender: function () {
15 console.log('Render event happened!');
16 },
17 commentCountUpdated: function (newCount) {
18 console.log('New comment count:', newCount);
19 },
20 onReplySuccess: function (comment) {
21 console.log('New comment saved!', comment);
22 },
23 onVoteSuccess: function (comment, voteId, direction, status) {
24 console.log('New vote saved!', comment, voteId, direction, status);
25 },
26 onImageClicked: function (src) {
27 console.log('Image clicked!', src);
28 },
29 onOpenProfile: function (userId) {
30 console.log('User tried to open profile', userId);
31 // return true; // デフォルトの動作(fastcomments.com のユーザープロファイルを開く)を防ぐには true を返します。
32 },
33 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
34 console.log('Trying to submit comment', comment);
35 setTimeout(function() { // 非同期動作をエミュレートしています(API 呼び出し等)。
36 if(confirm('Should submit?')) {
37 continueSubmitFn();
38 } else {
39 cancelFn('Some optional error message');
40 }
41 }, 1000);
42 },
43 onCommentsRendered: function(comments) {
44 // comments はページのデフォルトのソート順で並べられます。デフォルトのソートは Most Relevant(例:投票数が多いもの等)や Newest First である場合があります。
45 const topCommentInList = comments[0];
46 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
47 }
48 }];
49</script>
50

ページタイトル Internal Link

現在のページタイトルは指定された urlId に関連付けられ、モデレーションツールで使用するために保存されます。

デフォルトでは、これは document.title から取得されます。

必要に応じて、独自のページタイトルを次のように指定できます:

Specifying The Page Title
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "pageTitle": "Article 42"
8}];
9</script>
10

コメント数とすべてのネストされた返信のカウント Internal Link

コメントウィジェットの上部に表示されるコメント数は、ページや記事自体への直接の返信である「トップレベル」のコメントのみを表示するか、ネストされたすべてのコメントの数を表示するかを選択できます。

デフォルトでは、これは true です。つまり、後者のすべてのコメントの数を表示します。古いバージョンのコメントウィジェットでは、デフォルト値は false です。

countAll フラグを true に設定することで、ネストされたすべてのコメントの数を表示するように動作を変更できます。

すべてのコメントをカウントする
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": true
8}];
9</script>
10

トップレベルのコメントのみをカウントしたい場合は、フラグを false に設定します。

トップレベルのコメントをカウントする
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": false
8}];
9</script>
10

現在、この設定はコードを変更せずにカスタマイズすることはできません。

メンショングループID Internal Link

オートコンプリートの**@mentions**で使用するIDの一覧。ユーザー同士のグループが交差していない場合にタグ付けされないようにしたいときに便利です。

指定すると、@文字を入力したときに、他のグループに属するユーザーのみがオートコンプリートに表示されます。

Limit Groups for Mentions
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "mentionGroupIds": [
8 "yxZAhjzda",
9 "QT19nXbqB"
10 ]
11}];
12</script>
13