Method: accounts.list

Elenca gli account accessibili all'utente chiamante e corrispondenti ai vincoli della richiesta, come le dimensioni della pagina o i filtri. Non si tratta solo di elencare i subaccount di un AMC, ma di tutti gli account a cui l'utente chiamante ha accesso, inclusi altri AMC, account collegati, account autonomi e così via.

Richiesta HTTP

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

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri di ricerca

Parametri
pageSize

integer

Campo facoltativo. Il numero massimo di account da restituire. Il servizio potrebbe restituire un valore inferiore a questo valore. Se non specificato, verranno restituiti al massimo 250 account. Il valore massimo è 500; i valori superiori a 500 verranno forzati a 500.

pageToken

string

Campo facoltativo. Un token di pagina, ricevuto da una precedente chiamata a accounts.list. Forniscilo per recuperare la pagina successiva.

Durante l'impaginazione, tutti gli altri parametri forniti a accounts.list devono corrispondere alla chiamata che ha fornito il token della pagina.

filter

string

Campo facoltativo. Un filtro facoltativo che consente di restituire solo gli account che corrispondono al filtro.

Ecco alcuni esempi di filtri validi:

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

I filtri a livello di account hanno la seguente semantica:

  • accountName Si riferisce al campo accountName dell'account.
  • relationship(...) Si riferisce a una relazione tra l'account e un altro account. All'interno della funzione è possibile specificare questa relazione.

I filtri a livello di relazione hanno la seguente semantica:

  • providerId Si riferisce all'ID numerico dell'account che è l'altro membro della relazione. Ad esempio, se il filtro deve essere limitato agli account che hanno una relazione con l'account accounts/name/123, providerId deve essere filtrato come providerId = 123.
  • callerHasAccessToProvider() In questo modo, gli account risultanti verranno limitati agli account che hanno una relazione con un altro account in cui l'utente chiamante ha accesso anche all'altro membro della relazione (o al fornitore).
  • externalAccountId Si riferisce all'ID account esterno configurato per la relazione.
  • accountIdAlias Si riferisce all'alias dell'ID account configurato per la relazione.
  • service(...) Si riferisce a un servizio fornito nell'ambito della relazione. Nota: una relazione tra due account può comprendere più servizi.

I filtri a livello di servizio hanno la seguente semantica:

  • handshakeState Si riferisce allo stato di handshake del servizio. Quando un servizio viene stabilito, a volte deve essere prima approvato dagli altri membri o da entrambi i membri della relazione. Di conseguenza, un servizio può essere nello stato PENDING o APPROVED.
  • type Si riferisce al tipo di servizio. I valori possibili sono:
    • ACCOUNT_MANAGEMENT Il fornitore gestisce l'account.
    • ACCOUNT_AGGREGATION Il fornitore è un aggregatore dell'account.

Il filtro segue un sottoinsieme della specifica del filtro AIP e la sua grammatica formale EBNF. La grammatica per questo filtro è più restrittiva e specifica

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

Inoltre, si applica quanto segue:

  • Ogni campo in una combinazione può essere visualizzato una sola volta (ad esempio, è possibile filtrare per accountName solo una volta a livello di account oppure per providerId solo una volta per ogni livello di relazione).
  • Per i campi stringa (come accountName o accountIdAlias) è possibile esprimere un operatore CONTAINS racchiudendo la query in *. Ad esempio, accountName = "*foo*" restituirà tutti gli account con accountName contenente foo. Puoi esprimere ortogonalmente un operatore NOT_CONTAINS utilizzando !=. Ad esempio, accountName != "*foo*" restituirà tutti gli account con un valore accountName che non contiene foo. Nota: è possibile cercare account il cui accountName contiene il carattere a stella * utilizzando ***.
  • Gli spazi vuoti aggiuntivi vengono ignorati.
  • Tutti i valori, ad eccezione dei valori solo numerici, devono essere racchiusi tra virgolette doppie.
  • Se viene utilizzata una disgiunzione, le congiunzioni su ciascun lato devono utilizzare le parentesi anche se la congiunzione contiene solo una singola espressione. Le parentesi non sono consentite altrove, ad eccezione delle chiamate di funzione (come relationship o service). Questo serve a esprimere chiaramente che le congiunzioni sono più forti delle disgiunzioni logicamente.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

Messaggio di risposta per il metodo accounts.list.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Campi
accounts[]

object (Account)

Gli account corrispondenti a ListAccountsRequest.

nextPageToken

string

Un token, che può essere inviato come pageToken per recuperare la pagina successiva. Se questo campo viene omesso, non verranno visualizzate altre pagine.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

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

Per ulteriori informazioni, consulta la panoramica di OAuth 2.0.