Nodaro ドキュメント
ドキュメントノードリファレンスモデルAI エージェント(MCP)開発者向けセルフホスティングリサーチ
TypeScript SDK

コミュニティライブラリ

TypeScript から Nodaro のコミュニティライブラリを閲覧し、共有されたキャラクター、ロケーション、オブジェクトを自分のアカウントに複製し、お気に入りに登録し、掲載を通報します。

Nodaro Cloud · Business エディション で利用できます

client.community は、コミュニティライブラリを読み取ります。これは、Nodaro チームがキュレーションする、キャラクター、ロケーション、オブジェクトの共有コレクションです。閲覧と検索、1 件の掲載の読み取り、掲載を自分のアカウントへ複製すること、お気に入りへの登録、モデレーション用の通報ができます。これらのメソッドは、コミュニティ REST API を呼び出します。この機能と、肖像・同意に関するルールについては、コミュニティライブラリを参照してください。

コミュニティライブラリは、複数ユーザー向けのインストール環境、つまり Nodaro Cloud と Business エディションにあります。1 人用の Community エディションのインストール環境では、どの呼び出しも NotFoundError を返します。

メソッド

メソッド内容
browse(params?)掲載を閲覧、検索します
get(slug)1 件の掲載を読み取ります
getFull(slug)1 件の掲載を、完全な公開スナップショットとともに読み取ります
favorites()お気に入りに登録した掲載を一覧表示します
clone(id, entityType)掲載を自分のアカウントに複製します
favorite(id)お気に入りを追加または解除します
report(id, reason)モデレーション用に掲載を通報します

公開機能は SDK に含まれていません。SDK で使う個人用 API トークンと OAuth トークンでは、公開できません。

client.community

掲載は CommunityCard です。そのフィールドは、API が送るとおりの snake_case です。CommunityEntityType は、"character"、"location"、"object" のいずれかです。

browse(params?)

公開されている掲載のページと、nextCursor を返します(GET /v1/community/browse)。次のページを取得するには、nextCursor を cursor に渡してください。最後のページでは null になります。

browse(params?: BrowseCommunityParams): Promise<{ data: CommunityCard[]; nextCursor: string | null }>

Prop

Type

const { data: listings, nextCursor } = await client.community.browse({
  entityType: "character",
  sort: "popular",
  limit: 20,
})

get(slug)

スラッグを指定して、1 件の掲載を読み取ります(GET /v1/community/detail/:slug)。

get(slug: string): Promise<{ data: CommunityCard }>

Prop

Type

const { data: listing } = await client.community.get("detective-mara")

掲載が存在しない場合や、すでに有効でない場合は、NotFoundError をスローします。

getFull(slug)

1 件の掲載を、完全な公開スナップショット(詳細ページに表示されるとおりの画像、ボイス、テキスト)とともに読み取ります(GET /v1/community/detail/:slug/full)。

getFull(slug: string): Promise<{ data: CommunityFullDetail }>

Prop

Type

const { data: detail } = await client.community.getFull("detective-mara")

favorites()

お気に入りに登録した掲載を一覧表示します(GET /v1/community/favorites)。

favorites(): Promise<{ data: CommunityCard[] }>
const { data: favorites } = await client.community.favorites()

clone(id, entityType)

掲載を、独立したコピーとしてあなたのライブラリに複製します(POST /v1/community/listings/:id/clone)。ファイルはあなた自身のストレージにコピーされるため、元の掲載が変更されたり削除されたりしても、コピーは残ります。新しいアセットの種類と ID を返します。

clone(id: string, entityType: "character" | "location" | "object"): Promise<{ entityType: string; id: string }>

Prop

Type

const { id: characterId } = await client.community.clone(listingId, "character")
const character = await client.characters.get(characterId)

OAuth トークンには assets:write スコープが必要です。ストレージが満杯の場合は、StorageExceededError をスローします。

favorite(id)

掲載をお気に入りに追加します。すでに追加されている場合は削除します(POST /v1/community/listings/:id/favorite)。新しい状態を返します。

favorite(id: string): Promise<{ favorited: boolean }>

Prop

Type

const { favorited } = await client.community.favorite(listingId)

report(id, reason)

モデレーション用に掲載を通報します(POST /v1/community/listings/:id/report)。

report(id: string, reason: CommunityReportReason): Promise<{ ok: true }>

Prop

Type

await client.community.report(listingId, "real_person_no_consent")

よくある質問

最終更新

目次