> ## 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 client. Cet ID peut ensuite être utilisé pour valider un droit d'utilisation de l'utilisateur depuis 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

Handle de contexte de Store de l'utilisateur, renvoyé par [XStoreCreateContext](/fr/reference/system/xstore/functions/xstorecreatecontext).

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

Ticket Azure pouvant être utilisé par le service back-end pour autoriser l'utilisateur et le service. Cela vous permet de recevoir du service un ticket que vous pouvez relayer vers vos propres serveurs. Votre serveur peut alors 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\*

Chaîne générée par le développeur, destinée à 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/reference/system/xasync/structs/xasyncblock)

[XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) définissant le travail asynchrone en cours. Le [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock) peut être utilisé pour interroger l'état de l'appel et récupérer ses résultats. Pour plus d'informations, consultez [XAsyncBlock](/fr/reference/system/xasync/structs/xasyncblock).

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

Sur PC, cette API renvoie les informations de l'utilisateur actuellement connecté au Store, et pas nécessairement celles de l'utilisateur qui joue à votre jeu si les services XBOX sont activés. Si votre titre est sur la console XBOX ou si les services XBOX sont activés sur PC, nous vous recommandons d'effectuer des appels B2B vers les points de terminaison de collections et d'aperçu de licence à l'aide de l'autorisation déléguée XSTS, afin de vous assurer que vous vérifiez 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/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/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 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

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

## Voir aussi

[XStore](/fr/reference/system/xstore/xstore_members)\
[XStoreGetUserCollectionsIdResult](/fr/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)
