Method: accounts.list

Liste les comptes accessibles à l'utilisateur appelant et correspondant aux contraintes de la requête, telles que la taille de la page ou les filtres. Il ne s'agit pas seulement de lister les sous-comptes d'un MC, mais tous les comptes auxquels l'utilisateur appelant a accès, y compris d'autres multicomptes, des comptes associés, des comptes individuels, etc.

Requête HTTP

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

L'URL utilise la syntaxe de transcodage gRPC.

Paramètres de requête

Paramètres
pageSize

integer

Facultatif. Nombre maximal de comptes à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, 250 comptes au maximum seront renvoyés. La valeur maximale est 500. Les valeurs supérieures à 500 sont forcées à 500.

pageToken

string

Facultatif. Jeton de page reçu d'un appel accounts.list précédent. Fournissez-le pour récupérer la page suivante.

Lors de la pagination, tous les autres paramètres fournis à accounts.list doivent correspondre à l'appel ayant fourni le jeton de page.

filter

string

Facultatif. Filtre facultatif permettant d'afficher uniquement les comptes qui correspondent au filtre.

Voici quelques exemples de filtres valides:

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

Les filtres au niveau du compte utilisent la sémantique suivante:

  • accountName : champ accountName du compte.
  • relationship(...) Il s'agit d'une relation entre le compte et un autre compte. Dans la fonction, cette relation peut être spécifiée.

Les filtres au niveau de la relation ont la sémantique suivante:

  • providerId correspond à l'identifiant numérique du compte qui est l'autre membre de la relation. Par exemple, si le filtre doit se limiter aux comptes qui sont associés au compte accounts/name/123, providerId doit être filtré en tant que providerId = 123.
  • callerHasAccessToProvider() Les comptes obtenus sont alors limités aux comptes qui sont associés à un autre compte, dans lequel l'utilisateur appelant a également accès à l'autre membre de la relation (ou au fournisseur).
  • externalAccountId : ID de compte externe configuré pour la relation.
  • accountIdAlias : il s'agit de l'alias d'ID de compte configuré pour la relation.
  • service(...) : service fourni dans le cadre de la relation. Remarque: Une relation entre deux comptes peut comprendre plusieurs services.

Les filtres au niveau du service ont la sémantique suivante:

  • handshakeState : il s'agit de l'état du handshake du service. Lorsqu'un service est établi, il doit parfois être approuvé par l'autre ou les deux membres de la relation. Par conséquent, l'état d'un service peut être PENDING ou APPROVED.
  • type : type de service. Les valeurs possibles sont les suivantes :
    • ACCOUNT_MANAGEMENT Le fournisseur gère le compte.
    • ACCOUNT_AGGREGATION Le fournisseur est un agrégateur du compte.

Le filtre suit un sous-ensemble de la spécification de filtre AIP et de sa grammaire EBNF formelle. La grammaire de ce filtre est plus restrictive et spécifique.

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

En outre, les conditions suivantes s'appliquent:

  • Chaque champ d'une conjonction ne peut apparaître qu'une seule fois (par exemple, vous ne pouvez filtrer sur accountName qu'une seule fois au niveau du compte ou il n'est possible de filtrer providerId qu'une seule fois à chaque niveau de relation).
  • Pour les champs de chaîne (tels que accountName ou accountIdAlias), il est possible d'exprimer un opérateur CONTAINS en encapsulant la requête entre *. Par exemple, accountName = "*foo*" renvoie tous les comptes dont le accountName contient foo. Orthogonalement, il est possible d'exprimer un opérateur NOT_CONTAINS à l'aide de !=. Par exemple, accountName != "*foo*" renvoie tous les comptes dont le accountName ne contient pas foo. Remarque: Il est possible de rechercher des comptes dont l'accountName contient l'étoile * en utilisant ***.
  • Les espaces supplémentaires sont ignorés.
  • Toutes les valeurs, à l'exception des valeurs numériques uniquement, doivent être placées entre guillemets.
  • Si une disjonction est utilisée, les conjonctions de chaque côté doivent utiliser des parenthèses, même si la conjonction ne comporte qu'une seule expression. Les parenthèses ne sont pas autorisées ailleurs, sauf dans les appels de fonctions (comme relationship ou service). Cela permet d'indiquer clairement que les conjonctions sont plus solides que les disjonctions de manière logique.

Corps de la requête

Le corps de la requête doit être vide.

Corps de la réponse

Message de réponse pour la méthode accounts.list.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "accounts": [
    {
      object (Account)
    }
  ],
  "nextPageToken": string
}
Champs
accounts[]

object (Account)

Les comptes correspondant à l'ListAccountsRequest.

nextPageToken

string

Jeton pouvant être envoyé en tant que pageToken pour récupérer la page suivante. Si ce champ est omis, il n'y a pas d'autres pages.

Champs d'application des autorisations

Requiert le niveau d'accès OAuth suivant :

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

Pour en savoir plus, consultez la Présentation d'OAuth 2.0.