> ## 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.

# Utilisation des données d'éditeur

> Partagez des données de configuration et des données clé-valeur de joueur entre plusieurs titres d'un studio PlayFab à l'aide de SetPublisherData, GetPublisherData et des API associées.

Ce tutoriel explique comment créer et utiliser des données limitées à un espace de noms à l'aide des API de données d'éditeur (Publisher data).

Les données d'éditeur sont des données statiques qui couvrent plusieurs titres d'un espace de noms PlayFab, par exemple lorsque plusieurs jeux doivent partager des informations communes. **Publisher** est l'ancien terme d'API désignant la portée de l'espace de noms, et le Publisher ID identifie l'espace de noms. Un espace de noms est distinct d'un studio, qui est le regroupement administratif des titres, des utilisateurs, des autorisations et de la facturation. Pour plus d'informations, consultez [Concepts PlayFab](/fr/services/playfab/get-started/concepts#studios-namespaces-and-titles).

<Note>
  Cette catégorie comprend également les données de joueurs couvrant plusieurs jeux. PlayFab stocke les données sous forme de paires clé/valeur (KVP).
</Note>

La plupart de ces API sont des API serveur que votre programme doit appeler depuis un serveur dédié, ou via une fonction CloudScript dans le service PlayFab.

* Utilisez les API serveur **[SetPublisherData](xref:titleid.playfabapi.com.server.title-widedatamanagement.setpublisherdata)** pour mettre à jour et **[GetPublisherData](xref:titleid.playfabapi.com.server.title-widedatamanagement.getpublisherdata)** pour récupérer les KVP personnalisées propres à l'éditeur.
* Utilisez **[UpdateUserPublisherData](xref:titleid.playfabapi.com.client.playerdatamanagement.updateuserpublisherdata)** pour créer ou mettre à jour et **[GetUserPublisherData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserpublisherdata)** pour récupérer les KVP personnalisées propres à l'éditeur pour le joueur.
* Utilisez l'API serveur **[UpdateUserPublisherReadOnlyData](xref:titleid.playfabapi.com.server.playerdatamanagement.updateuserpublisherreadonlydata)** pour mettre à jour et l'API cliente **[GetUserPublisherReadOnlyData](xref:titleid.playfabapi.com.client.playerdatamanagement.getuserpublisherreadonlydata)** pour récupérer les KVP personnalisées en lecture seule propres à l'éditeur pour l'utilisateur.
* Utilisez les API serveur **[UpdateUserPublisherInternalData](xref:titleid.playfabapi.com.server.playerdatamanagement.updateuserpublisherinternaldata)** pour mettre à jour et **[GetUserPublisherInternalData](xref:titleid.playfabapi.com.server.playerdatamanagement.getuserpublisherinternaldata)** pour récupérer les KVP personnalisées internes propres à l'éditeur pour l'utilisateur.

Vous devez appeler les API serveur depuis un serveur dédié ou via une fonction CloudScript dans le service PlayFab. Ce comportement est voulu, car les API serveur PlayFab exigent que vous fournissiez votre clé secrète.

<Tip>
  Nous *ne recommandons pas* d'utiliser les API serveur depuis un client de jeu. Si vous devez utiliser une API serveur, utilisez CloudScript pour ce type de fonctionnalité.
</Tip>

Les valeurs des données d'éditeur sont copiées et distribuées sur potentiellement des *centaines* de machines du cluster de serveurs PlayFab. Dans le cadre de ce processus, ces données sont mises en cache, et l'actualisation des modifications dans ces caches peut prendre jusqu'à *quinze minutes*.

<Note>
  Les données d'éditeur conviennent particulièrement aux *données globales constantes/statiques* et ne sont *ni* adaptées *ni* fiables en tant que *variables globales*.
</Note>

## Données d'éditeur

Les données d'éditeur servent à stocker des données statiques pour les titres d'un espace de noms. Chaque entrée *n'est pas liée* à une entité de joueur (contrairement aux [données d'éditeur de l'utilisateur](#user-publisher-data)).

### Définition des données d'éditeur

L'extrait suivant montre comment définir des données d'éditeur à l'aide de l'API Server.

<Note>
  Il existe un équivalent de cette opération dans l'API Admin.
</Note>

```csharp theme={null}
public void ServerSetPublisherData() {
    PlayFabServerAPI.SetPublisherData(new SetPublisherDataRequest() {
            Key = "SomeKey",
            Value = "SomeValue"
        },
        result => Debug.Log("Complete setting publisher data"),
        error => {
            Debug.Log("Got error setting publisher data");
            Debug.Log(error.GenerateErrorReport());
        }
    );
}
```

### Obtention des données d'éditeur

L'extrait suivant montre comment obtenir des données d'éditeur à l'aide de l'API Client.

<Note>
  Il existe des équivalents de cette opération dans les API Server et Admin.
</Note>

```csharp theme={null}
public void ClientGetPublisherData() {
    PlayFabClientAPI.GetPublisherData(new GetPublisherDataRequest(),
    result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting publisher data");
        Debug.Log(error.GenerateErrorReport());
    });
}
```

<a id="user-publisher-data" />

## Données d'éditeur de l'utilisateur

Les données d'éditeur de l'utilisateur permettent d'introduire des données d'éditeur liées à un utilisateur (joueur) PlayFab.

Contrairement aux données d'éditeur classiques, une application cliente peut modifier les données d'éditeur de l'utilisateur.

Du point de vue de l'API Client, PlayFab propose 3 niveaux de protection pour les données d'éditeur de l'utilisateur :

1. Les données d'éditeur de l'utilisateur classiques offrent un accès en lecture et en écriture aux applications clientes.

   * Définies via les API Client, Server et Admin.
   * Obtenues via les API Client, Server et Admin.
   * L'API Client ne peut définir des données d'éditeur que pour un joueur actuellement connecté.

2. Les données d'éditeur de l'utilisateur en lecture seule offrent un accès en lecture aux applications clientes.

   * Définies via les API Server et Admin.
   * Obtenues via les API Client, Server et Admin.

3. Les données d'éditeur de l'utilisateur internes n'offrent aucun accès aux applications clientes et servent à stocker la partie secrète des données utilisateur.

   * Définies via les API Server et Admin.
   * Obtenues via les API Server et Admin.

### Définition des données d'éditeur de l'utilisateur

L'extrait suivant montre comment définir les 3 types de données d'éditeur à l'aide des API Client et Server.

```csharp theme={null}
// Use Client API to set User Publisher Data for current user
public void ClientSetUserPublisherData() {
    PlayFabClientAPI.UpdateUserPublisherData(new UpdateUserDataRequest() {
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Regular User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Regular User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to set Read-Only User Publisher Data for selected user
public void ServerSetUserPublisherReadOnlyData() {
    PlayFabServerAPI.UpdateUserPublisherReadOnlyData(new UpdateUserDataRequest() {
         PlayFabId = "< PlayFab Player Id >",
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Read-Only User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Read-Only User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to set Internal User Publisher Data for selected user
public void ServerSetUserPublisherInternalData() {
    PlayFabServerAPI.UpdateUserPublisherInternalData(new UpdateUserInternalDataRequest() {
         PlayFabId = "< PlayFab Player Id >",
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Internal User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Internal User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}
```

### Obtention des données d'éditeur de l'utilisateur

L'extrait suivant montre comment obtenir les 3 types de données d'éditeur à l'aide des API Client et Server.

```csharp theme={null}
// Use Client API to get Regular User Publisher Data for selected user
public void ClientGetUserPublisherData() {
    PlayFabClientAPI.GetUserPublisherData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Regular Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Client API to get Read-Only User Publisher Data for selected user
public void ClientGetUserPublisherReadOnlyData() {
    PlayFabClientAPI.GetUserPublisherReadOnlyData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Read-Only Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to get Internal User Publisher Data for selected user
public void ServerGetUserPublisherInternalData() {
    PlayFabServerAPI.GetUserPublisherInternalData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Internal Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}
```

## Voir aussi

* [Démarrage rapide des données de titre](/fr/services/playfab/live-service-management/game-configuration/titledata/quickstart)
* [Démarrage rapide de CloudScript](/fr/services/playfab/live-service-management/service-gateway/automation/cloudscript/quickstart)


## Related topics

- [Données de titre](/fr/services/playfab/live-service-management/game-configuration/titledata/index.md)
- [Démarrage rapide des données de titre](/fr/services/playfab/live-service-management/game-configuration/titledata/quickstart.md)
- [Démarrage rapide des données des joueurs](/fr/services/playfab/player-progression/player-data/quickstart.md)
- [Données des joueurs](/fr/services/playfab/player-progression/player-data/index.md)
- [Utiliser les données d'éditeur des joueurs pour récompenser le jeu sur plusieurs titres](/fr/services/playfab/player-progression/player-data/using-player-publisher-data.md)
