
言語 🇯🇵 日本語
ドキュメント
はじめに
使用方法
設定
SolidJS アプリにコメントを追加する
これは FastComments の公式 SolidJS ライブラリです。
あなたの SolidJS アプリにライブコメント、チャット、レビューウィジェットを埋め込めます。
リポジトリ
AI コーディングエージェント 
コーディングエージェントに必要な FastComments のコンテキスト(ウィジェット、設定、Secure SSO、REST API、SDK)を提供します:
npx skills add fastcomments/skills
Claude Code、Codex、Cursor、Copilot、Gemini、そして skills CLI がサポートするすべてのエージェントで動作します。
ライブデモ 
すべてのウィジェットをライブで試すには https://fastcomments.com/commenting-system-for-solidjs/。
使用方法 
import { FastCommentsCommentWidget } from 'fastcomments-solidjs';
export default function App() {
return <FastCommentsCommentWidget tenantId="demo" urlId="some-page-id" />;
}
設定変更へのリアクション(命令的ハンドル) 
Solid は任意のオブジェクト上の深いミューテーションを自動的に追跡しないため、
最初のレンダー後の設定変更は明示的にプッシュする必要があります。各ウィジェットは
ハンドルを返す apiRef を受け取り、リアクティビティを駆動するために createEffect から
handle.update(partial) を呼び出します:
import { createEffect, createSignal } from 'solid-js';
import { FastCommentsCommentWidget, type FastCommentsCommentWidgetHandle } from 'fastcomments-solidjs';
export default function Paginated() {
const [page, setPage] = createSignal(0);
let handle: FastCommentsCommentWidgetHandle | undefined;
createEffect(() => handle?.update({ urlId: `product-${page()}` }));
return (
<>
<button onClick={() => setPage(page() + 1)}>next</button>
<FastCommentsCommentWidget
apiRef={(h) => (handle = h)}
tenantId="demo"
urlId={`product-${page()}`}
/>
</>
);
}
update() はいつでも安全に呼び出せます:
- スクリプトがロードされる前: 部分的な設定は一時保存され、初期化時に適用されます。
- 非同期の初期化中(reviews-summary、user-activity-feed): 部分的な設定はキューに入れられ、コールバックが解決されたときに適用されます。
- 初期化後: ライブウィジェットの
.update()メソッドに直接転送されます。
命令的ハンドル API
interface WidgetHandle<Config> {
getInstance: () => WidgetInstance | null; // latest live instance (or null before mount)
onInstance: (cb: (instance: WidgetInstance) => void) => void; // fires once instance is ready
update: (partial: Partial<Config>) => void; // merge-and-push config
}
.update() でカバーされない命令的な操作(例: openProfile)には getInstance() を使用します:
const openProfile = () =>
(handle?.getInstance() as { openProfile?: (o: { userId: string }) => void } | null)
?.openProfile?.({ userId: 'demo' });
コンポーネント 
fastcomments-react からのすべてのウィジェットは、同じ名前で利用可能です:
| コンポーネント | ハンドル型 | 埋め込みの説明 |
|---|---|---|
FastCommentsCommentWidget | FastCommentsCommentWidgetHandle | フラッグシップのライブコメントウィジェット |
FastCommentsCommentCountWidget | FastCommentsCommentCountWidgetHandle | インラインコメント数バッジ |
FastCommentsLiveChatWidget | FastCommentsLiveChatWidgetHandle | ストリーミングライブチャットウィジェット |
FastCommentsCollabChatWidget | FastCommentsCollabChatWidgetHandle | テキストアンカー型コラボレーションチャット |
FastCommentsImageChatWidget | FastCommentsImageChatWidgetHandle | 領域ベースの画像コメント |
FastCommentsRecentCommentsWidget | FastCommentsRecentCommentsWidgetHandle | 最近のコメントフィード |
FastCommentsRecentDiscussionsWidget | FastCommentsRecentDiscussionsWidgetHandle | 最近のディスカッションフィード |
FastCommentsReviewsSummaryWidget | FastCommentsReviewsSummaryWidgetHandle | 星評価のサマリー |
FastCommentsTopPagesWidget | FastCommentsTopPagesWidgetHandle | コメント数の多いページのランキング |
FastCommentsUserActivityFeedWidget | FastCommentsUserActivityFeedWidgetHandle | ユーザーごとのアクティビティタイムライン |
既存の要素にアタッチするウィジェット
FastCommentsCollabChatWidget と FastCommentsImageChatWidget は、呼び出し側が指定した要素にマウントされます。マウント後に要素を返す targetRef アクセサーを渡してください:
import { FastCommentsImageChatWidget } from 'fastcomments-solidjs';
export default function ImageChat() {
let img: HTMLImageElement | undefined;
return (
<>
<img ref={img} src="/screenshot.png" alt="" />
<FastCommentsImageChatWidget
tenantId="demo"
urlId="my-image"
targetRef={() => img}
/>
</>
);
}
リージョン
region="eu" を渡すと、ウィジェットのトラフィックが EU クラスター経由でルーティングされます。
お手伝いが必要ですか?
SolidJS Library に関して問題が発生したり質問がある場合は、次をご利用ください:
貢献
貢献は歓迎します!貢献ガイドラインについてはGitHubリポジトリをご覧ください。