Method: accounts.list

呼び出し元のユーザーがアクセスでき、ページサイズやフィルタなどのリクエストの制約に一致するアカウントを一覧表示します。MCA のサブアカウントだけでなく、呼び出し元のユーザーがアクセスできるすべてのアカウント(他の MCA、リンクされたアカウント、スタンドアロン アカウントなど)が一覧表示されます。

HTTP リクエスト

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts

この URL は gRPC Transcoding 構文を使用します。

クエリ パラメータ

パラメータ
pageSize

integer

省略可。返されるアカウントの最大数。サービスが返す値はこれよりも少ないことがあります。指定されていない場合は、最大で 250 アカウントが返されます。最大値は 500 です。500 を超える値は 500 に強制変換されます。

pageToken

string

省略可。前回の accounts.list 呼び出しから受け取ったページトークン。後続のページを取得するにはこれを指定します。

ページ分割を行う場合、accounts.list に指定する他のすべてのパラメータは、ページトークンを提供した呼び出しと一致する必要があります。

filter

string

省略可。フィルタに一致するアカウントのみを返すフィルタ(省略可)。

有効なフィルタの例を次に示します。

  • accountName = "*store*" AND relationship(providerId = 123)
  • relationship(providerId = 123 AND service(type = "ACCOUNT_AGGREGATION"))
  • (accountName = "storeA") OR (accountName = "storeB")
  • relationship(service( handshakeState = "APPROVED" AND type = "ACCOUNT_MANAGEMENT"))
  • relationship(callerHasAccessToProvider() AND externalAccountId = "extAcctId" AND accountIdAlias = "alias")
  • (relationship(service(type = "ACCOUNT_MANAGEMENT") AND service(handshakeState = "PENDING"))) OR (accountName = "store" AND relationship(...))

アカウント レベルのフィルタは次のようになり、

  • accountNameアカウントの accountName フィールドを参照します。
  • relationship(...)アカウントと別のアカウントとの関係を示します。関数内で、この関係をさらに指定できます。

関係レベルのフィルタのセマンティクスは次のとおりです。

  • providerId関係の他のメンバーであるアカウントの数値 ID を指します。たとえば、アカウント accounts/name/123 と関係があるアカウントに限定する場合は、providerIdproviderId = 123 としてフィルタします。
  • callerHasAccessToProvider()これにより、通話元のユーザーが、その関係の他のメンバー(またはプロバイダ)にもアクセスできる別のアカウントと関係があるアカウントだけに、作成されるアカウントが制限されます。
  • externalAccountIdこれは、関係用に構成された外部アカウント ID を指します。
  • accountIdAliasこれは、関係用に構成されたアカウント ID のエイリアスを指します。
  • service(...)関係の一部として提供されるサービスを指します。注: 2 つのアカウント間の関係には、複数のサービスが含まれる場合があります。

service レベルのフィルタのセマンティクスは次のとおりです。

  • handshakeStateサービスの handshake 状態を指します。サービスが確立されると、まず関係の他方または両方のメンバーによる承認が必要となることがあります。したがって、サービスは PENDING 状態または APPROVED 状態になる可能性があります。
  • type: サービスのタイプ。有効な値は次のとおりです。
    • ACCOUNT_MANAGEMENT: プロバイダがアカウントを管理します。
    • ACCOUNT_AGGREGATION プロバイダはアカウントのアグリゲータです。

このフィルタは、AIP フィルタの仕様とその正式な EBNF 文法のサブセットに準拠しています。このフィルタの文法はより制限的で具体的です

filter
    : accountFilterDisj
    | accountFilterConj
    ;
accountFilterDisj
    : "(" accountFilterConj " OR " accountFilterConj ")"
    ;
accountFilterConj
    : accountFilter {" AND " accountFilter}
    ;
accountFilter
    : accountNameFilter | relationshipFn
    ;
accountNameFilter
    : "accountName" comparator value
    ;
relationshipFn
    : "relationship(" relationshipConj ")"
    ;
relationshipConj
    : relationshipFilter {" AND " relationshipFilter}
    ;
relationshipFilter
    : "providerId = " numValue
    | "callerHasAccessToProvider()"
    | "externalAccountId" comparator value
    | "accountIdAlias" comparator value
    | serviceFn
    ;
serviceFn
    : "service(" serviceConj ")"
    ;
serviceConj
    : serviceFilter {" AND " serviceFilter}
    ;
serviceFilter
    : handshakeStateFilter
    | typeFilter
    ;
handshakeStateFilter
    : "handshakeState = " value
    ;
typeFilter
    : "type = " value
    ;
comparator
    : " = " | " != "
    ;

さらに、以下が適用されます。

  • 結合内の各フィールドは 1 回だけ使用できます(たとえば、アカウント単位では accountName でフィルタできるのは 1 回だけ、providerId は関係レベルごとに 1 回だけフィルタできます)。
  • 文字列フィールド(accountNameaccountIdAlias など)では、クエリを * で囲むことで CONTAINS 演算子を表現できます。たとえば accountName = "*foo*" と指定すると、accountNamefoo を含むすべてのアカウントが返されます。直交的には、!= を使用して NOT_CONTAINS 演算子を表現できます。たとえば accountName != "*foo*" と指定すると、accountNamefoo が含まれていないアカウントがすべて返されます。注: *** を使用すると、accountName にスター文字「*」が含まれるアカウントを検索できます。
  • 余分な空白文字は無視されます。
  • 数値のみの値を除くすべての値は、二重引用符で囲む必要があります。
  • 分離を使用する場合、接続詞に式が 1 つしかない場合でも、それぞれの側の接続詞には括弧を使用する必要があります。括弧は、関数呼び出し(relationshipservice など)以外の場所では使用できません。これは、論理的に結合が分離よりも結合が強力であることを明確に示すためです。

リクエスト本文

リクエストの本文は空にする必要があります。

レスポンスの本文

accounts.list メソッドに対するレスポンス メッセージ。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
フィールド
accounts[]

object (Account)

ListAccountsRequest に一致するアカウント。

nextPageToken

string

次のページを取得するために pageToken として送信できるトークン。このフィールドを省略すると、後続のページはなくなります。

認可スコープ

次の OAuth スコープが必要です。

  • https://www.googleapis.com/auth/content

詳しくは、OAuth 2.0 の概要をご覧ください。