Merchant Accounts API を使用すると、アクセス権があるアカウント(サブアカウントを含む)をフィルタして一覧表示できます。表示名や他のアカウントとの関係でフィルタできます。たとえば、表示名に文字列 "store"
が含まれ、リンク ステータスも PENDING
であるアカウントをフィルタリングすると、アカウントのリンク リクエストをまだ承認していないすべてのショップを表示できます。
すべてのサブアカウントを表示するには、accounts.v1beta.accounts.listSubAccounts
を呼び出します。
アクセス可能なすべてのアカウント(サブアカウントや、自分が User
であるアカウントを含む)のフィルタされたリストを表示するには、accounts.v1beta.accounts.list
を呼び出して、filter
フィールドにフィルタ条件を指定します。
filter
フィールドの構文の詳細については、フィルタ構文リファレンスをご覧ください。
使用できるフィルタの種類は次のとおりです。
アカウント フィルタ
次のフィールドを使用して、account
レベルでフィルタできます。
accountName
:account
リソースのaccountName
でフィルタします。relationship(...)
: アカウントと別のアカウントの関係のタイプでフィルタします。1 つのリクエストに複数のrelationship(...)
フィルタを含めることができます。
関係フィルタ
relationship(...)
関数を使用すると、次の条件に基づいてフィルタリングできます。
providerId
: サービス プロバイダの販売者 ID。たとえば、account/123
が提供するサービスを持つアカウントのみをフィルタで返す必要がある場合は、providerId = 123
を使用します。callerHasAccessToProviderFilter()
: アクセス可能なサービス プロバイダとの関係があるアカウントをフィルタします。externalAccountId
: サービス プロバイダがサービスを提供するアカウントの外部アカウント ID。accountIdAlias:
: 関係に構成されているアカウント ID エイリアス。service(...)
: 関係の一部として提供されるサービス。1 つのrelationship(...)
関数に複数のservice(...)
関数を含めることができます。
サービス フィルタ
service(...)
関数を使用すると、関係のステータスと、それらの関係が提供するサービスの種類に基づいて、アカウントをさらにフィルタリングできます。
handshakeState
: 2 つのアカウント間のサービス契約の状態。指定できる値は次のとおりです。PENDING
APPROVED
type:
: プロバイダが提供するサービスの種類。指定できる値は次のとおりです。ACCOUNT_MANAGEMENT
プロバイダがアカウントを管理します。ACCOUNT_AGGREGATION
プロバイダはアカウントのアグリゲータです。
例
使用できるフィルタの例をいくつか示します。
表示名に「store」を含むアカウントと、ID が「123」のプロバイダをフィルタします。
accountName = "*store*" AND relationship(providerId = 123)
アカウント「123」のすべてのサブアカウントでフィルタ:
relationship(providerId = 123 AND service(type = "ACCOUNT_AGGREGATION"))
承認済みのアカウント管理サービスがあるアカウントをフィルタします。
relationship(service(handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))
プロバイダにアクセスできる、特定のエイリアスと ID を持つアカウントをフィルタします。このリクエストを行うには、プロバイダへのアクセス権も必要です。
relationship(callerHasAccessToProviderFilter() AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")
次のステップ
- アカウントのフィルタリングの詳細については、フィルタ構文をご覧ください。