Ajout de données personnalisées à des utilisateurs à l’aide des extensions d’ouvertureAdd custom data to users using open extensions

Nous allons vous présenter un exemple montrant comment utiliser les extensions d’ouverture.We're going to walk you through an example to demonstrate how to use open extensions.

Imaginez que vous créez une application qui est disponible sur de nombreuses plateformes client différentes (bureau et mobile, par exemple). Vous souhaitez permettre aux utilisateurs de configurer leur expérience d’interface utilisateur pour qu’elle soit cohérente quel que soit le périphérique utilisé pour se connecter à votre application. Il s’agit d’une exigence courante pour la plupart des applications.Imagine you're building an application that is available on lots of different client platforms, such as desktop and mobile. You want to let users configure their UI experience so it’s consistent no matter which device they use to sign in to your app. This is a common requirement for most apps.

Pour ce scénario, nous allons vous montrer comment :For this scenario, we're going to show you how to:

  1. Ajouter une extension d’ouverture représentant certaines informations de profil d’itinérance sur l’utilisateur.Add an open extension representing some roaming profile information about the user.
  2. Interroger l’utilisateur et renvoyer le profil d’itinérance.Query the user and return the roaming profile.
  3. Modifier les informations de profil d’itinérance de l’utilisateur (la valeur de l’extension d’ouverture).Change the user's roaming profile information (the open extension value).
  4. Supprimer les informations de profil d’itinérance de l’utilisateur.Delete the user's roaming profile information.

Remarque : cette rubrique explique comment ajouter, lire, mettre à jour et supprimer des extensions d’ouverture sur une ressource user. Ces méthodes sont également prises en charge pour les types de ressource administrativeUnit, contact, device, event, group, group event, group post et organization.Note: This topic shows you how to add, read, update and delete open extensions on a user resource. These methods are also supported for the administrativeUnit, contact, device, event, group, group event, group post and organizaton resource types.
Il vous suffit de mettre à jour les exemples de requêtes ci-dessous à l’aide de l’un de ces types de ressource. Les réponses apparaissant dans les exemples ci-dessous peuvent être tronqués.Simply update the example requests below using any of those resource types. The responses shown in the examples below may be truncated for brevity.

1. Ajout d’informations de profil d’itinérance1. Add roaming profile information

L’utilisateur se connecte à l’application et configure l’apparence de l’application. Ces paramètres d’application doivent être itinérants afin de garantir la même expérience à l’utilisateur sur n’importe quel appareil utilisé pour se connecter à l’application. Ici, nous allons découvrir comment ajouter les informations de profil d’itinérance à une ressource user.The user signs in to the app and configures the look and feel of the app. These app settings should roam so that the user gets the same experience on whatever device they sign in to the app from. Here we'll see how to add the roaming profile information to a user resource.

DemandeRequest
POST https://graph.microsoft.com/v1.0/me/extensions
Content-type: application/json
{
    "@odata.type":"microsoft.graph.openTypeExtension",
    "extensionName":"com.contoso.roamingSettings",
    "theme":"dark",
    "color":"purple",
    "lang":"Japanese"
}
RéponseResponse
HTTP/1.1 201 Created
Content-Type: application/json
Content-length: 420

{
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.roamingSettings",
    "id": "com.contoso.roamingSettings",
    "theme": "dark",
    "color": "purple",
    "lang": "Japanese"
}

2. Récupération des informations de profil d’itinérance2. Retrieve roaming profile information

Lorsque l’utilisateur se connecte à l’application à partir d’un autre appareil, l’application peut récupérer des détails de profil utilisateur, ainsi que ses paramètres d’itinérance. Pour cela, il est possible d’obtenir la ressource de l’utilisateur et d’étendre la propriété de navigation d’extension.When the user signs in to the app from another device, the app can retrieve the user's profile details as well as their roaming settings. This can be done by getting the user's resource and expanding the extension navigation property.

DemandeRequest
GET https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions
RéponseResponse
HTTP/1.1 200 OK
Content-Type: application/json
Content-length: 420

{
    "id": "84b80893-8749-40a3-97b7-68513b600544",
    "displayName": "John Smith",
    "mail": "john@contoso.com",
    "mobilePhone": "1-555-6589",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "extensionName": "com.contoso.roamingSettings",
            "id": "com.contoso.roamingSettings",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese"
        }
    ]
}

Remarque : si vous avez plusieurs extensions, vous pouvez les filtrer par id pour obtenir celle qui vous intéresse.Note: If you have multiple extensions, you can filter on the id to get the extension that you are interested in.

3. Modification des informations de profil d’itinérance3. Change roaming profile information

L’utilisateur peut choisir de modifier ses informations de profil d’itinérance. Cette mise à jour peut être effectuée avec une requête PATCH sur la valeur d’extension d’ouverture.The user may choose to change their roaming profile information. This update can be done with a PATCH on the open extension value.

DemandeRequest
PATCH https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
Content-type: application/json
{
    "theme":"light",
    "color":"yellow",
    "lang":"Swahili"
}
RéponseResponse
HTTP/1.1 204 No content

4. Suppression du profil d’itinérance d’un utilisateur4. Delete a user's roaming profile

L’utilisateur décide qu’il n’a plus besoin d’un profil d’itinérance et le supprime donc. Cette opération peut être effectuée avec une requête DELETE sur la valeur d’extension d’ouverture.The user decides that they don't want a roaming profile anymore, so they delete it. This can be done with a DELETE request on the open extension value.

DemandeRequest
DELETE https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
RéponseResponse
HTTP/1.1 204 No content

Voir aussiSee also