Method: accounts.list

Zawiera listę kont, do których użytkownik nawiązuje połączenie, zgodnie z ograniczeniami żądania, takimi jak rozmiar strony lub filtry. Nie jest to jedynie lista subkont multikonta klientów, lecz wszystkich kont, do których ma dostęp użytkownik łączący, w tym innych multikont klientów, połączonych kont, samodzielnych kont itd.

Żądanie HTTP

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

Adres URL używa składni transkodowania gRPC.

Parametry zapytania

Parametry
pageSize

integer

Opcjonalnie. Maksymalna liczba kont do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie określono inaczej, zwrócony zostanie maksymalnie 250 kont. Maksymalna wartość to 500. Wartości powyżej 500 zostaną zmienione na 500.

pageToken

string

Opcjonalnie. Token strony otrzymany z poprzedniego wywołania funkcji accounts.list. Podaj go, aby pobrać kolejną stronę.

Podczas dzielenia na strony wszystkie pozostałe parametry podane w narzędziu accounts.list muszą być zgodne z wywołaniem, które dostarczyło token strony.

filter

string

Opcjonalnie. Opcjonalny filtr, który zwraca tylko te konta, które pasują do filtra.

Oto kilka przykładów prawidłowych filtrów:

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

Filtry na poziomie konta mają taką semantykę:

  • accountName Dotyczy to pola accountName na koncie.
  • relationship(...) Wskazuje relację konta z innym kontem. W ramach funkcji tę relację można dodatkowo określić.

Filtry na poziomie relacji mają taką semantykę:

  • providerIdJest to numeryczny identyfikator konta, które jest drugą częścią relacji. Jeśli np. filtr powinien ograniczać się do kont powiązanych z kontem accounts/name/123, pole providerId powinno zostać odfiltrowane jako providerId = 123.
  • callerHasAccessToProvider() Spowoduje to ograniczenie powstałych kont do takich kont, które są powiązane z innym kontem, gdzie użytkownik dzwoniący ma też dostęp do drugiego elementu relacji (lub dostawcy).
  • externalAccountIdOdnosi się do identyfikatora konta zewnętrznego skonfigurowanego na potrzeby relacji.
  • accountIdAliasOdnosi się to do aliasu identyfikatora konta skonfigurowanego dla relacji.
  • service(...) Dotyczy to usługi świadczonej w ramach relacji. Uwaga: relacja między dwoma kontami może obejmować wiele usług.

Filtry na poziomie usługi mają taką semantykę:

  • handshakeState Odnosi się do stanu uzgadniania połączenia usługi. Po ustanowieniu usługi musi ona czasem zostać najpierw zatwierdzona przez innych lub obu członków relacji. Dlatego usługa może mieć stan PENDING lub APPROVED.
  • type. Odnosi się do typu usługi. Możliwe wartości:
    • ACCOUNT_MANAGEMENT Dostawca zarządza kontem.
    • ACCOUNT_AGGREGATION Dostawca to pośrednik w zakresie konta.

Filtr jest zgodny z podzbiorem specyfikacji filtra AIP i z jego formalną gramatyką EBNF. Gramatyka tego filtra jest bardziej restrykcyjna i precyzyjna.

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

Dodatkowo obowiązują te zasady:

  • Każde pole w kontekście może się pojawić tylko raz (np. filtr można filtrować według kolumny accountName tylko raz na poziomie konta lub tylko raz na każdym poziomie relacji można użyć wartości providerId).
  • W przypadku pól ciągu znaków (takich jak accountName lub accountIdAlias) można wyrazić operator CONTAINS, umieszczając zapytanie w elemencie *. Na przykład funkcja accountName = "*foo*" zwróci wszystkie konta z parametrem accountName zawierającym foo. Operator NOT_CONTAINS można wyrażać ortogonalnie przy użyciu !=. Na przykład funkcja accountName != "*foo*" zwróci wszystkie konta z parametrem accountName, który nie zawiera foo. Uwaga: można wyszukiwać konta, których atrybut accountName zawiera gwiazdkę * i pozwala na wyszukiwanie za pomocą funkcji ***.
  • Dodatkowe spacje są ignorowane.
  • Wszystkie wartości, oprócz wartości liczbowych, muszą być ujęte w cudzysłów podwójny.
  • W przypadku rozdzielenia spójności po każdej stronie muszą używać nawiasów, nawet jeśli spójnik zawiera tylko jedno wyrażenie. Nawiasy nie są dozwolone nigdzie indziej, z wyjątkiem wywołań funkcji (takich jak relationship lub service). W ten sposób wyraźnie widać, że spójniki wiążą się silniej niż dysocjacje logiczne.

Treść żądania

Treść żądania musi być pusta.

Treść odpowiedzi

Komunikat odpowiedzi dla metody accounts.list.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Pola
accounts[]

object (Account)

Konta pasujące do: ListAccountsRequest.

nextPageToken

string

Token, który może zostać wysłany jako pageToken w celu pobrania następnej strony. Jeśli pominiesz to pole, nie będzie kolejnych stron.

Zakresy autoryzacji

Wymaga następującego zakresu OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie protokołu OAuth 2.0.