メインコンテンツへスキップ

Blocklet Service

BlockletServiceは、Blockletが基盤となるABT Nodeサービスと対話するための主要なインターフェースとして機能する強力なクライアントです。複雑なGraphQLクエリとHTTPリクエストを、クリーンでPromiseベースのJavaScript APIにラップすることで、ユーザー

BlockletServiceは、Blockletが基盤となるABT Nodeサービスと対話するための主要なインターフェースとして機能する強力なクライアントです。複雑なGraphQLクエリとHTTPリクエストを、クリーンでPromiseベースのJavaScript APIにラップすることで、ユーザー管理、セッション処理、ロールベースのアクセス制御(RBAC)、Blockletメタデータの取得などのタスクを簡素化します。

このサービスは、Blockletプラットフォームの全能力を活用する、安全で機能豊富なアプリケーションを構築するために不可欠です。このサービスを詳しく見る前に、認証ガイドで説明されている概念を理解しておくと役立ちます。

仕組み

アプリケーション内のBlockletServiceクライアントは、ABT Node上で実行されているblocklet-serviceと通信します。すべてのリクエストはBlockletのクレデンシャルを使用して自動的に認証され、コア機能への安全なアクセスを保証します。

Blocklet Service

はじめに

サービスを使用するには、インポートしてインスタンス化するだけです。クライアントは、Blocklet Serverから提供される環境変数に基づいて自動的に自身を設定します。

はじめに

javascript
import BlockletService from '@blocklet/sdk/service/blocklet';

const client = new BlockletService();

async function main() {
  const { user } = await client.getOwner();
  console.log('Blockletの所有者:', user.fullName);
}

main();

セッション管理

login

ユーザーを認証し、セッションを開始します。

パラメータ

  • params object (required) — ログインクレデンシャルまたはデータ。

戻り値

  • Promise Promise<object> — セッションとユーザー情報を含むオブジェクト。
    • user object — 認証されたユーザーのプロファイル。
    • token string — セッションのアクセストークン。
    • refreshToken string — セッションを延長するためのリフレッシュトークン。
    • visitorId string — 訪問者/デバイスの一意の識別子。

refreshSession

リフレッシュトークンを使用して期限切れのセッションを更新します。

パラメータ

  • refreshToken string (required) — 以前のセッションからのリフレッシュトークン。
  • visitorId string — 訪問者/デバイスの一意の識別子。

戻り値

  • Promise Promise<object> — 新しいセッションとユーザー情報を含むオブジェクト。
    • user object — 認証されたユーザーのプロファイル。
    • token string — 新しいアクセストークン。
    • refreshToken string — 新しいリフレッシュトークン。
    • provider string — ログインプロバイダー(例:「wallet」)。

switchProfile

ユーザーのプロファイル情報を更新します。

パラメータ

  • did string (required) — 更新するユーザーのDID。
  • profile object (required) — 更新するプロファイルフィールドを含むオブジェクト。
    • avatar string — 新しいアバターURL。
    • email string — 新しいメールアドレス。
    • fullName string — 新しいフルネーム。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

ユーザー管理

getUser

DIDによって単一ユーザーのプロファイルを取得します。

パラメータ

  • did string (required) — 取得するユーザーの一意のDID。
  • options object — クエリのオプション設定。
    • enableConnectedAccount boolean — trueの場合、ユーザーの接続済みアカウント(例:OAuthプロバイダー)に関する詳細を含めます。
    • includeTags boolean — trueの場合、ユーザーに関連付けられたタグを含めます。

戻り値

  • ResponseUser Promise<object> — ユーザーのプロファイルを含むオブジェクト。
    • user object — ユーザープロファイルオブジェクト。

getUsers

フィルタリングとソートをサポートする、ページ分割されたユーザーリストを取得します。

パラメータ

  • args object — クエリ、ソート、ページネーションのオプションを含むオブジェクト。
    • paging object — ページネーションオプション。
      • page number — 取得するページ番号。
      • pageSize number — ページあたりのユーザー数。
    • query object — フィルタリング基準。
      • role string — ユーザーロールでフィルタリング。
      • approved boolean — 承認ステータスでフィルタリング。
      • search string — ユーザーフィールドと照合するための検索文字列。
    • sort object — ソート基準。
      • updatedAt number — 更新タイムスタンプでソート。1は昇順、-1は降順。
      • createdAt number — 作成タイムスタンプでソート。1は昇順、-1は降順。
      • lastLoginAt number — 最終ログインタイムスタンプでソート。1は昇順、-1は降順。

戻り値

  • ResponseUsers Promise<object> — ページ分割されたユーザーオブジェクトのリスト。
    • users TUserInfo[] — ユーザープロファイルオブジェクトの配列。
    • paging object — ページネーション情報。
      • total number — ユーザーの総数。
      • pageSize number — ページあたりのユーザー数。
      • page number — 現在のページ番号。

getUsersCount

ユーザーの総数を取得します。

戻り値

  • ResponseGetUsersCount Promise<object> — ユーザー総数を含むオブジェクト。
    • count number — ユーザーの総数。

getUsersCountPerRole

各ロールのユーザー数を取得します。

戻り値

  • ResponseGetUsersCountPerRole Promise<object> — ロールごとのユーザー数を含むオブジェクト。
    • counts TKeyValue[] — 各オブジェクトが key (ロール名) と value (ユーザー数) を持つオブジェクトの配列。

getOwner

Blockletの所有者のプロファイルを取得します。

戻り値

  • ResponseUser Promise<object> — 所有者のユーザープロファイルを含むオブジェクト。

updateUserApproval

ユーザーのBlockletへのアクセスを承認または取り消します。

パラメータ

  • did string (required) — 更新するユーザーのDID。
  • approved boolean (required) — 承認するには true、取り消すには false に設定します。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

updateUserTags

ユーザーに関連付けられたタグを更新します。

パラメータ

  • args object (required)
    • did string (required) — ユーザーのDID。
    • tags number[] (required) — ユーザーに関連付けるタグIDの配列。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

updateUserExtra

ユーザーの追加メタデータを更新します。

パラメータ

  • args object (required)
    • did string (required) — ユーザーのDID。
    • remark string — ユーザーに関する備考やメモ。
    • extra string — カスタムデータを保存するためのJSON文字列。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

updateUserInfo

ユーザーの一般情報を更新します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • userInfo object (required) — 更新するユーザーフィールドを含むオブジェクト。ユーザーのdidを含める必要があります。
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

updateUserAddress

ユーザーの住所を更新します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • args object (required) — ユーザーのDIDと住所詳細を含むオブジェクト。
    • did string (required) — ユーザーのDID。
    • address object — ユーザーの住所。
      • country string — 国
      • province string — 州/都道府県
      • city string — 市
      • postalCode string — 郵便番号
      • line1 string — 住所1
      • line2 string — 住所2
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

ユーザーセッション

getUserSessions

ユーザーのアクティブなセッションのリストを取得します。

パラメータ

  • args object — クエリとページネーションのオプションを含むオブジェクト。
    • paging object — ページネーションオプション。
    • query object — フィルタリング基準。
      • userDid string — ユーザーDIDでフィルタリング。
      • status string — セッションステータスでフィルタリング。

戻り値

  • ResponseUserSessions Promise<object> — ページ分割されたユーザーセッションのリスト。
    • list TUserSession[] — セッションオブジェクトの配列。
    • paging object — ページネーション情報。

getUserSessionsCount

オプションのフィルタリング付きで、ユーザーセッションの総数を取得します。

パラメータ

  • args object — クエリオプションを含むオブジェクト。
    • query object — フィルタリング基準。
      • userDid string — ユーザーDIDでフィルタリング。

戻り値

  • ResponseUserSessionsCount Promise<object> — セッション数を含むオブジェクト。
    • count number — セッションの総数。

ソーシャル&コミュニティ

getUserFollowers

特定のユーザーをフォローしているユーザーのリストを取得します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • args object (required) — クエリオプション。
    • userDid string (required) — フォロワーを取得する対象のユーザーのDID。
    • paging object — ページネーションオプション。
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUserFollows Promise<object> — ページ分割されたフォロワーユーザーのリスト。

getUserFollowing

特定のユーザーがフォローしているユーザーのリストを取得します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • args object (required) — クエリオプション。
    • userDid string (required) — フォローリストを取得する対象のユーザーのDID。
    • paging object — ページネーションオプション。
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUserFollows Promise<object> — フォローされているユーザーのページ分割されたリスト。

getUserFollowStats

ユーザーのフォロワー数とフォロー数を取得します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • args object (required) — クエリオプション。
    • userDids string[] (required) — ユーザーDIDの配列。
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUserRelationCount Promise<object> — フォロワー数とフォロー数を含むオブジェクト。

checkFollowing

あるユーザーが他の1人以上のユーザーをフォローしているかどうかを確認します。

パラメータ

  • args object (required)
    • followerDid string (required) — 潜在的なフォロワーのDID。
    • userDids string[] (required) — 確認対象のユーザーDIDの配列。

戻り値

  • ResponseCheckFollowing Promise<object> — キーがユーザーDID、値がフォロー状況を示すブール値のオブジェクト。

followUser

あるユーザーが別のユーザーをフォローするようにします。

パラメータ

  • args object (required)
    • followerDid string (required) — フォローするユーザーのDID。
    • userDid string (required) — フォローされるユーザーのDID。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

unfollowUser

あるユーザーが別のユーザーのフォローを解除するようにします。

パラメータ

  • args object (required)
    • followerDid string (required) — フォローを解除するユーザーのDID。
    • userDid string (required) — フォローを解除されるユーザーのDID。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

getUserInvites

特定のユーザーによって招待されたユーザーのリストを取得します。有効なユーザーセッションクッキーが必要です。

パラメータ

  • args object (required) — クエリオプション。
    • userDid string (required) — 招待者のDID。
    • paging object — ページネーションオプション。
  • options object (required) — ヘッダーを含むリクエストオプション。
    • headers object (required)
      • cookie string (required) — ユーザーのセッションクッキー。

戻り値

  • ResponseUsers Promise<object> — ページ分割された招待ユーザーのリスト。

タグ管理

getTags

利用可能なすべてのユーザータグのリストを取得します。

パラメータ

  • args object
    • paging object — ページネーションオプション。

戻り値

  • ResponseTags Promise<object> — ページ分割されたタグオブジェクトのリスト。
    • tags TTag[] — タグオブジェクトの配列。
    • paging object — ページネーション情報。

createTag

新しいユーザータグを作成します。

パラメータ

  • args object (required)
    • tag object (required)
      • title string (required) — タグのタイトル。
      • description string — タグの説明。
      • color string — タグの16進数カラーコード。

戻り値

  • ResponseTag Promise<object> — 新しく作成されたタグを含むオブジェクト。

updateTag

既存のユーザータグを更新します。

パラメータ

  • args object (required)
    • tag object (required)
      • id number (required) — 更新するタグのID。
      • title string — 新しいタイトル。
      • description string — 新しい説明。
      • color string — 新しい色。

戻り値

  • ResponseTag Promise<object> — 更新されたタグを含むオブジェクト。

deleteTag

ユーザータグを削除します。

パラメータ

  • args object (required)
    • tag object (required)
      • id number (required) — 削除するタグのID。

戻り値

  • ResponseTag Promise<object> — 削除されたタグを含むオブジェクト。

ロールベースのアクセス制御(RBAC)

getRoles

利用可能なすべてのロールのリストを取得します。

戻り値

  • ResponseRoles Promise<object> — ロールのリストを含むオブジェクト。
    • roles TRole[] — ロールオブジェクトの配列。

getRole

名前によって単一のロールを取得します。

パラメータ

  • name string (required) — ロールの一意の名前。

戻り値

  • ResponseRole Promise<object> — ロールの詳細を含むオブジェクト。

createRole

新しいロールを作成します。

パラメータ

  • args object (required)
    • name string (required) — ロールの一意の識別子(例:editor)。
    • title string (required) — 人間が読めるタイトル(例:Content Editor)。
    • description string — ロールの目的の簡単な説明。

戻り値

  • ResponseRole Promise<object> — 新しく作成されたロールを含むオブジェクト。

updateRole

既存のロールを更新します。

パラメータ

  • name string (required) — 更新するロールの名前。
  • updates object (required) — 更新するフィールドを含むオブジェクト。
    • title string — 新しいタイトル。
    • description string — 新しい説明。

戻り値

  • ResponseRole Promise<object> — 更新されたロールを含むオブジェクト。

deleteRole

ロールを削除します。

パラメータ

  • name string (required) — 削除するロールの名前。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

getPermissions

利用可能なすべての権限のリストを取得します。

戻り値

  • ResponsePermissions Promise<object> — 権限のリストを含むオブジェクト。
    • permissions TPermission[] — 権限オブジェクトの配列。

getPermissionsByRole

特定のロールに付与されたすべての権限を取得します。

パラメータ

  • role string (required) — ロールの名前。

戻り値

  • ResponsePermissions Promise<object> — ロールの権限リストを含むオブジェクト。

createPermission

新しい権限を作成します。

パラメータ

  • args object (required)
    • name string (required) — 権限の一意の名前(例:post:create)。
    • description string — 権限が許可する内容の説明。

戻り値

  • ResponsePermission Promise<object> — 新しく作成された権限を含むオブジェクト。

updatePermission

既存の権限を更新します。

パラメータ

  • name string (required) — 更新する権限の名前。
  • updates object (required)
    • description string — 権限の新しい説明。

戻り値

  • ResponsePermission Promise<object> — 更新された権限を含むオブジェクト。

deletePermission

権限を削除します。

パラメータ

  • name string (required) — 削除する権限の名前。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

grantPermissionForRole

ロールに権限を割り当てます。

パラメータ

  • role string (required) — ロールの名前。
  • permission string (required) — 付与する権限の名前。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

revokePermissionFromRole

ロールから権限を取り消します。

パラメータ

  • role string (required) — ロールの名前。
  • permission string (required) — 取り消す権限の名前。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

updatePermissionsForRole

ロールの既存のすべての権限を新しいセットに置き換えます。

パラメータ

  • role string (required) — ロールの名前。
  • permissions string[] (required) — ロールに設定する権限名の配列。

戻り値

  • ResponseRole Promise<object> — 更新されたロールを含むオブジェクト。

hasPermission

ロールが特定の権限を持っているかどうかを確認します。

パラメータ

  • role string (required) — 確認するロールの名前。
  • permission string (required) — 検証する権限の名前。

戻り値

  • BooleanResponse Promise<object> — ブール値の result プロパティを持つオブジェクト。
    • result boolean — ロールが権限を持っている場合は true、そうでない場合は false

パスポート管理

issuePassportToUser

ユーザーに新しいパスポートを発行し、ロールを割り当てます。

パラメータ

  • args object (required)
    • userDid string (required) — パスポートを受け取るユーザーのDID。
    • role string (required) — このパスポートで割り当てるロール。

戻り値

  • ResponseUser Promise<object> — 新しいパスポートを含む、更新されたユーザープロファイルを含むオブジェクト。

enableUserPassport

以前に取り消されたユーザーのパスポートを有効にします。

パラメータ

  • args object (required)
    • userDid string (required) — ユーザーのDID。
    • passportId string (required) — 有効にするパスポートのID。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

revokeUserPassport

ユーザーのパスポートを取り消します。

パラメータ

  • args object (required)
    • userDid string (required) — ユーザーのDID。
    • passportId string (required) — 取り消すパスポートのID。

戻り値

  • ResponseUser Promise<object> — 更新されたユーザープロファイルを含むオブジェクト。

removeUserPassport

ユーザーのパスポートを永久に削除します。

パラメータ

  • args object (required)
    • userDid string (required) — ユーザーのDID。
    • passportId string (required) — 削除するパスポートのID。

戻り値

  • GeneralResponse Promise<object> — 成功または失敗を示す一般的なレスポンスオブジェクト。

Blockletとコンポーネント情報

getBlocklet

現在のBlockletのメタデータと状態を取得します。

パラメータ

  • attachRuntimeInfo boolean (default: false) — trueの場合、CPUやメモリ使用量などのランタイム情報を含めます。
  • useCache boolean (default: true) — falseの場合、キャッシュをバイパスして最新のデータを取得します。

戻り値

  • ResponseBlocklet Promise<object> — Blockletの状態とメタデータを含むオブジェクト。

getComponent

現在のBlocklet内の特定のコンポーネントの状態をDIDによって取得します。

パラメータ

  • did string (required) — 取得するコンポーネントのDID。

戻り値

  • ComponentState Promise<object> — コンポーネントの状態とメタデータを含むオブジェクト。

getTrustedDomains

フェデレーションログインのための信頼できるドメインのリストを取得します。

戻り値

  • string[] Promise<string[]> — 信頼できるドメインURLの配列。

getVault

Blockletのvault情報を取得し、検証します。

戻り値

  • vault Promise<string> — 検証が成功した場合のvault文字列。

clearCache

パターンに基づいてノード上のキャッシュデータをクリアします。

パラメータ

  • args object
    • pattern string — 削除するキャッシュキーに一致するパターン。

戻り値

  • ResponseClearCache Promise<object> — 削除されたキャッシュキーのリストを含むオブジェクト。
    • removed string[] — キャッシュから削除されたキーの配列。

アクセスキー管理

createAccessKey

プログラムによるアクセスのための新しいアクセスキーを作成します。

パラメータ

  • params object (required)
    • remark string — アクセスキーの説明。
    • passport string — キーに関連付けるロール/パスポート。デフォルトは「guest」。

戻り値

  • ResponseCreateAccessKey Promise<object> — 新しく作成されたアクセスキーとシークレットを含むオブジェクト。

getAccessKey

単一のアクセスキーの詳細を取得します。

パラメータ

  • params object (required)
    • accessKeyId string (required) — 取得するアクセスキーのID。

戻り値

  • ResponseAccessKey Promise<object> — アクセスキーの詳細を含むオブジェクト。

getAccessKeys

アクセスキーのリストを取得します。

パラメータ

  • params object
    • paging object — ページネーションオプション。

戻り値

  • ResponseAccessKeys Promise<object> — ページ分割されたアクセスキーオブジェクトのリスト。

verifyAccessKey

アクセスキーが有効かどうかを検証します。

パラメータ

  • params object (required)
    • accessKeyId string (required) — 検証するアクセスキーのID。

戻り値

  • ResponseAccessKey Promise<object> — 有効な場合、アクセスキーの詳細を含むオブジェクト。

BlockletServiceをマスターしたら、次にユーザーにメッセージを送信する方法を探求したくなるかもしれません。通知サービスガイドで詳細をご覧ください。