> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XStoreGetUserCollectionsIdAsync

> XStoreGetUserCollectionsIdAsync

# XStoreGetUserCollectionsIdAsync

Obtient un ID de collections du client. Cet ID peut ensuite servir à valider le droit d'utilisation d'un utilisateur à partir de votre propre service au moyen d'un appel B2B. Cette API est utilisée dans le flux décrit dans [Gérer les produits à partir de vos services](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/service-to-service/service-to-service-nav).

## Syntaxe

```cpp theme={null}
HRESULT XStoreGetUserCollectionsIdAsync(  
         const XStoreContextHandle storeContextHandle,  
         const char* serviceTicket,  
         const char* publisherUserId,  
         XAsyncBlock* async  
)  
```

### Paramètres

*storeContextHandle*   \_In\_\
Type : XStoreContextHandle

Le handle de contexte de magasin de l'utilisateur retourné par [XStoreCreateContext](/fr-CA/reference/system/xstore/functions/xstorecreatecontext).

*serviceTicket*   \_In\_z\_\
Type : char\*

Un ticket Azure qui peut être utilisé par le service principal pour autoriser l'utilisateur et le service. Cela vous permet d'obtenir en retour un ticket du service, que vous pouvez relayer à vos propres serveurs. Votre serveur peut ensuite le stocker et l'utiliser pour des appels B2B afin de vérifier la propriété ou d'accorder l'accès.

*publisherUserId*   \_In\_z\_\
Type : char\*

Une chaîne générée par le développeur qui sert à identifier l'utilisateur actuel comme membre ou invité d'un service appartenant au jeu, au développeur ou à l'éditeur. Le contenu de cette chaîne est déterminé par le développeur et peut être laissé vide.

*async*   \_Inout\_\
Type : [XAsyncBlock\*](/fr-CA/reference/system/xasync/structs/xasyncblock)

Un [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock) qui définit le travail asynchrone en cours. Le [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock) peut servir à interroger l'état de l'appel et à récupérer les résultats de l'appel. Pour plus d'informations, consultez [XAsyncBlock](/fr-CA/reference/system/xasync/structs/xasyncblock).

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

Sur PC, cette API retourne les informations de l'utilisateur actuellement connecté au magasin, et pas nécessairement de l'utilisateur qui joue à votre jeu si les XBOX services sont activés. Si votre titre est sur la console XBOX ou si les XBOX services sont activés sur PC, nous recommandons d'effectuer des appels B2B vers les points de terminaison de collections et d'aperçu de licence au moyen de l'autorisation déléguée XSTS, afin de vous assurer de vérifier les droits d'utilisation de l'utilisateur qui joue activement.

Pour récupérer l'ID de collection de l'utilisateur ainsi que le résultat d'exécution de cette fonction, appelez [XStoreGetUserCollectionsIdResult](/fr-CA/reference/system/xstore/functions/xstoregetusercollectionsidresult) après avoir appelé cette fonction. Pour récupérer la taille de l'ID de collection de l'utilisateur, appelez [XStoreGetUserCollectionsIdResultSize](/fr-CA/reference/system/xstore/functions/xstoregetusercollectionsidresultsize). Connaître la taille du résultat vous permet de le récupérer plus efficacement.

L'extrait de code suivant montre un exemple de récupération d'un ID de collections du client.

```cpp theme={null}
void CALLBACK GetUserCollectionsIdCallback(XAsyncBlock* asyncBlock)
{
    size_t size;
    HRESULT hr = XStoreGetUserCollectionsIdResultSize(
        asyncBlock,
        &size);

    if (FAILED(hr))
    {
        printf("Failed retrieve the user collection ID size: 0x%x\r\n", hr);
        return;
    }

    char* result = new char[size];
    hr = XStoreGetUserCollectionsIdResult(
        asyncBlock,
        size,
        result);

    if (FAILED(hr))
    {
        printf("Failed retrieve the user collection ID result: 0x%x\r\n", hr);
        delete[] result;
        return;
    }

    printf("result: %s\r\n", result);

    delete[] result;
}

void GetUserCollectionsId(XStoreContextHandle storeContextHandle, XTaskQueueHandle taskQueueHandle, const char* serviceTicket, const char* publisherUserId)
{
    auto asyncBlock = std::make_unique<XAsyncBlock>();
    ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
    asyncBlock->queue = taskQueueHandle;
    asyncBlock->callback = GetUserCollectionsIdCallback;

    HRESULT hr = XStoreGetUserCollectionsIdAsync(
        storeContextHandle,
        serviceTicket,
        publisherUserId,
        asyncBlock.get());

    if (FAILED(hr))
    {
        printf("Failed to get user collections ID: 0x%x\r\n", hr);
        return;
    }
}
```

## Configuration requise

**En-tête :** XStore.h (inclus dans XGameRuntime.h)

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Demander un ID de magasin d'utilisateur pour l'authentification de service à service](/fr-CA/publishing/xstore-commerce/xstore-requesting-userstoreid)

## Voir aussi

[XStore](/fr-CA/reference/system/xstore/xstore_members)\
[XStoreGetUserCollectionsIdResult](/fr-CA/reference/system/xstore/functions/xstoregetusercollectionsidresult)\
[Gérer les produits à partir de vos services](https://learn.microsoft.com/gaming/gdk/docs/store/commerce/service-to-service/service-to-service-nav)


## Related topics

- [XStoreGetUserCollectionsIdAsync](/ja-jp/reference/system/xstore/functions/xstoregetusercollectionsidasync.md)
- [XStoreGetUserCollectionsIdResult](/reference/system/xstore/functions/xstoregetusercollectionsidresult.md)
