フィルタリングとページネーションを使用して、企業やプロジェクトのユーザーのリストを取得します。


ユーザーのリスト

Blueは、企業全体、プロジェクト固有、または個別のユーザー検索の異なるスコープでユーザーをリストするための複数のクエリを提供します。これらのクエリは、ページネーション、フィルタリング、およびソートをサポートしており、大規模なユーザーベースを効率的に管理できます。

基本例 - 企業ユーザー

企業内のすべてのユーザーをリストします:

query ListCompanyUsers {
  companyUserList(companyId: "acme-corp") {
    users {
      id
      email
      fullName
      jobTitle
      lastActiveAt
    }
    pageInfo {
      totalItems
      hasNextPage
    }
  }
}

高度な例 - フィルタリングされたプロジェクトユーザー

検索とページネーションを使用してプロジェクトユーザーをリストします:

query ListProjectUsers {
  projectUserList(
    projectId: "web-redesign"
    search: "engineer"
    first: 20
    orderBy: lastActiveAt_DESC
  ) {
    edges {
      node {
        id
        email
        fullName
        accessLevel
        customRole {
          id
          name
        }
      }
    }
    pageInfo {
      hasNextPage
      endCursor
    }
  }
}

利用可能なクエリ

companyUserList

オプションのフィルタリングを使用して、企業内のすべてのユーザーをリストします。

入力パラメータ

パラメータ タイプ 必須 説明
companyId String! ✅ はい 企業IDまたはスラッグ
notInProjectId String いいえ このプロジェクトにすでにいるユーザーを除外
search String いいえ 名前またはメールで検索
first Int いいえ 返す結果の数(前方ページネーション)
after String いいえ 前方ページネーションのカーソル
last Int いいえ 返す結果の数(後方ページネーション)
before String いいえ 後方ページネーションのカーソル
skip Int いいえ スキップする結果の数
orderBy UserOrderByInput いいえ ソート順(下記参照)

projectUserList

特定のプロジェクト内のすべてのユーザーをリストします。

入力パラメータ

パラメータ タイプ 必須 説明
projectId String! ✅ はい プロジェクトIDまたはスラッグ
search String いいえ 名前またはメールで検索
first Int いいえ 結果の数(最大:200)
after String いいえ ページネーションのカーソル
orderBy UserOrderByInput いいえ ソート順

user

IDによって単一のユーザーを取得します。

入力パラメータ

パラメータ タイプ 必須 説明
id String! ✅ はい ユーザーID

ソートオプション

UserOrderByInput 値

説明
createdAt_ASC 登録日でソート(古い順)
createdAt_DESC 登録日でソート(新しい順)
lastActiveAt_ASC 最後のアクティビティでソート(古い順)
lastActiveAt_DESC 最後のアクティビティでソート(新しい順)
firstName_ASC 名字でソート(A-Z)
firstName_DESC 名字でソート(Z-A)
lastName_ASC 姓でソート(A-Z)
lastName_DESC 姓でソート(Z-A)
email_ASC メールアドレスでソート(A-Z)
email_DESC メールアドレスでソート(Z-A)
username_ASC ユーザー名でソート(A-Z)
username_DESC ユーザー名でソート(Z-A)
jobTitle_ASC 職位でソート(A-Z)
jobTitle_DESC 職位でソート(Z-A)

レスポンスフィールド

ユーザーオブジェクト

フィールド タイプ 説明
id String! ユニークなユーザー識別子
uid String! Firebase認証UID
username String! ユーザーが選択したユーザー名
email String! メールアドレス(オーナー/管理者のみが表示)
firstName String
lastName String
fullName String 結合された名と姓
jobTitle String 職業名
phoneNumber String 連絡先番号
dateOfBirth DateTime 生年月日
isEmailVerified Boolean! メール確認状況
lastActiveAt DateTime 最後のアクティビティのタイムスタンプ
createdAt DateTime! アカウント作成日
updatedAt DateTime! 最後のプロフィール更新
isOnline Boolean! 現在のオンライン状況
timezone String ユーザーのタイムゾーン
locale String 言語の好み
theme JSON UIテーマの好み
image Image プロフィール画像オブジェクト

プロジェクトユーザー追加フィールド

プロジェクトユーザーをリストする際に、追加のフィールドが利用可能です:

フィールド タイプ 説明
accessLevel UserAccessLevel! プロジェクト内のユーザーの役割
customRole ProjectUserRole カスタム役割の詳細(該当する場合)
joinedAt DateTime! ユーザーがプロジェクトに参加した日時

ページネーション情報

フィールド タイプ 説明
totalItems Int! ユーザーの総数
totalPages Int 総ページ数(オフセットページネーション用)
page Int 現在のページ番号
perPage Int ページあたりのアイテム数
hasNextPage Boolean! さらに結果が利用可能
hasPreviousPage Boolean! 前の結果が利用可能
startCursor String 最初のアイテムカーソル
endCursor String 最後のアイテムカーソル

必要な権限

クエリ 必要な権限
companyUserList Any authenticated user in the company
projectUserList Any project member (including VIEW_ONLY)
user Any authenticated user

エラー応答

企業が見つかりません

{
  "errors": [{
    "message": "Company not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

プロジェクトが見つかりません

{
  "errors": [{
    "message": "Project not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

認証されていないアクセス

{
  "errors": [{
    "message": "You don't have access to this resource",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

重要な注意事項

  • パフォーマンス: 大規模なユーザーリストにはページネーションを使用してください(リクエストごとに最大200ユーザー)
  • 検索: 名、姓、メールフィールドを横断して検索します
  • メールプライバシー: メールアドレスは、オーナーまたは管理者のアクセスレベルを持つユーザーにのみ表示されます
  • オンライン状況: isOnlineはWebSocket接続を介してリアルタイムで更新されます
  • プロフィール画像: 異なるサイズにはimage.variantsフィールドを使用します
  • フィルタリング: notInProjectIdパラメータは、ユーザー選択インターフェースを構築する際に便利です
  • アクセスレベル: プロジェクトユーザーリストには、企業リストでは利用できない役割情報が含まれています

関連操作

AIアシスタント

回答はAIを使用して生成されており、間違いが含まれる可能性があります。

どのようにお手伝いできますか?

Blueやこのドキュメントについて何でも聞いてください。

送信するにはEnterを押してください • 新しい行を作成するにはShift+Enterを押してください • ⌘Iで開く