Method: accounts.list

Listet Konten auf, auf die der aufrufende Nutzer zugreifen kann und die den Einschränkungen der Anfrage wie Seitengröße oder Filter entsprechen. Dabei werden nicht nur die Unterkonten eines MCA aufgelistet, sondern alle Konten, auf die der aufrufende Nutzer Zugriff hat, einschließlich anderer MCAs, verknüpfter Konten, eigenständiger Konten usw.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Abfrageparameter

Parameter
pageSize

integer

Optional. Die maximale Anzahl von Konten, die zurückgegeben werden sollen. Der Dienst gibt möglicherweise weniger als diesen Wert zurück. Wenn keine Angabe gemacht wird, werden maximal 250 Konten zurückgegeben. Der Höchstwert ist 500. Werte über 500 werden in 500 umgewandelt.

pageToken

string

Optional. Ein Seitentoken, das von einem vorherigen accounts.list-Aufruf empfangen wurde. Geben Sie diese an, um die nachfolgende Seite abzurufen.

Beim Paginieren müssen alle anderen für accounts.list bereitgestellten Parameter mit dem Aufruf übereinstimmen, der das Seitentoken bereitgestellt hat.

filter

string

Optional. Ein optionaler Filter, mit dem nur Konten zurückgegeben werden, die dem Filter entsprechen.

Beispiele für gültige Filter:

  • 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(...))

Die Filter auf Kontoebene haben die folgende Semantik:

  • accountName Bezieht sich auf das Feld accountName des Kontos.
  • relationship(...) Bezieht sich auf eine Beziehung zwischen dem Konto und einem anderen Konto. Innerhalb der Funktion kann diese Beziehung weiter spezifiziert werden.

Die Filter auf Beziehungsebene haben die folgende Semantik:

  • providerId Die numerische ID des Kontos, das das andere Mitglied der Beziehung ist. Soll der Filter beispielsweise auf Konten beschränkt werden, die eine Beziehung zum Konto accounts/name/123 haben, dann sollte providerId als providerId = 123 gefiltert werden.
  • callerHasAccessToProvider() Dadurch werden die resultierenden Konten auf Konten beschränkt, die in einer Beziehung zu einem anderen Konto stehen, bei dem der aufrufende Nutzer auch Zugriff auf das andere Mitglied der Beziehung (oder den Anbieter) hat.
  • externalAccountId Bezieht sich auf die externe Konto-ID, die für die Beziehung konfiguriert ist.
  • accountIdAlias Bezieht sich auf den Konto-ID-Alias, der für die Beziehung konfiguriert ist.
  • service(...) Dies bezieht sich auf einen Dienst, der im Rahmen der Geschäftsbeziehung bereitgestellt wird. Hinweis: Eine Beziehung zwischen zwei Konten kann mehrere Dienste umfassen.

Die Filter auf Dienstebene haben die folgende Semantik:

  • handshakeState bezieht sich auf den Handshakestatus des Dienstes. Wenn eine Dienstleistung aufgebaut wird, muss sie manchmal zuerst von den anderen oder beiden Mitgliedern der Geschäftsbeziehung genehmigt werden. Daher kann ein Dienst den Status PENDING oder APPROVED haben.
  • type Bezieht sich auf den Diensttyp. Mögliche Werte sind:
    • ACCOUNT_MANAGEMENT Das Konto wird vom Anbieter verwaltet.
    • ACCOUNT_AGGREGATION Der Anbieter ist ein Aggregator des Kontos.

Der Filter folgt einem Teil der AIP-Filterspezifikation und seiner formalen EBNF-Grammatik. Die Grammatik für diesen Filter ist restriktiver und spezifischer

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
    : " = " | " != "
    ;

Darüber hinaus gilt Folgendes:

  • Jedes Feld in einer Verbindung darf nur einmal angezeigt werden. So kann beispielsweise auf Kontoebene nur einmal nach accountName gefiltert werden oder auf jeder Beziehungsebene kann nur einmal nach providerId gefiltert werden.
  • Für Stringfelder wie accountName oder accountIdAlias kann ein CONTAINS-Operator ausgedrückt werden, indem die Abfrage in * eingeschlossen wird. Beispiel: accountName = "*foo*" gibt alle Konten mit einer accountName zurück, die foo enthält. Orthogonal ist es möglich, einen NOT_CONTAINS-Operator mit != auszudrücken. accountName != "*foo*" gibt beispielsweise alle Konten mit einer accountName zurück, die foo nicht enthält. Hinweis: Sie können mit *** nach Konten mit einer accountName suchen, die das Sternsymbol * enthält.
  • Zusätzliche Leerzeichen werden ignoriert.
  • Alle Werte, mit Ausnahme von reinen numerischen Werten, müssen in doppelte Anführungszeichen gesetzt werden.
  • Wenn eine Disjunktion verwendet wird, müssen die Konjunktionen auf jeder Seite Klammern verwenden, auch wenn die Konjunktion nur einen einzigen Ausdruck hat. Klammern sind nur bei Funktionsaufrufen wie relationship oder service zulässig. Damit soll deutlich ausgedrückt werden, dass Konjunktionen stärker binden als Disjunktionen.

Anfragetext

Der Anfragetext muss leer sein.

Antworttext

Antwortnachricht für die Methode accounts.list.

Wenn der Vorgang erfolgreich ist, enthält der Antworttext Daten mit folgender Struktur:

JSON-Darstellung
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Felder
accounts[]

object (Account)

Die Konten, die mit ListAccountsRequest übereinstimmen.

nextPageToken

string

Ein Token, das als pageToken gesendet werden kann, um die nächste Seite abzurufen. Wenn dieses Feld weggelassen wird, gibt es keine nachfolgenden Seiten.

Autorisierungsbereiche

Erfordert den folgenden OAuth-Bereich:

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

Weitere Informationen finden Sie in der Übersicht über OAuth 2.0.