Ajout de données personnalisées à des utilisateurs à l’aide des extensions d’ouverture
Article
8 minutes de lecture
Cet article explique comment utiliser des extensions ouvertes.
Imaginez que vous créez une application qui est disponible sur plusieurs plateformes clientes, telles que les ordinateurs de bureau et les appareils mobiles. 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.
Pour ce scénario, cet article vous explique comment procéder aux opérations suivantes :
Ajouter une extension d’ouverture représentant certaines informations de profil d’itinérance sur l’utilisateur.
Interroger l’utilisateur et renvoyer le profil d’itinérance.
Modifier les informations de profil d’itinérance de l’utilisateur (la valeur de l’extension d’ouverture).
Supprimer les informations de profil d’itinérance de l’utilisateur.
Remarque
Outre les utilisateurs, les extensions ouvertes sont également prises en charge et peuvent être gérées pour d’autres types de ressources.
1. Ajout d’informations de profil d’itinérance
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. L’application appelle Microsoft Graph en exécutant la requête suivante pour ajouter les informations de profil d’itinérance à une ressource utilisateur.
Import-Module Microsoft.Graph.Users
$params = @{
"@odata.type" = "microsoft.graph.openTypeExtension"
ExtensionName = "com.contoso.roamingSettings"
Theme = "dark"
Color = "purple"
Lang = "Japanese"
}
# A UPN can also be used as -UserId.
New-MgUserExtension -UserId $userId -BodyParameter $params
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new Extension();
$requestBody->set@odatatype('microsoft.graph.openTypeExtension');
$additionalData = [
'extensionName' => 'com.contoso.roamingSettings',
'theme' => 'dark',
'color' => 'purple',
'lang' => 'Japanese',
];
$requestBody->setAdditionalData($additionalData);
$requestResult = $graphServiceClient->me()->extensions()->post($requestBody);
2. Récupération des informations de profil d’itinérance
Lorsque l’utilisateur se connecte à l’application à partir d’un autre appareil, l’application appelle Microsoft Graph pour récupérer les détails du profil de l’utilisateur et développer la propriété de navigation des extensions pour obtenir ses paramètres d’itinérance.
GET https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Me.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "id","displayName","mail","mobilePhone" };
requestConfiguration.QueryParameters.Expand = new string []{ "extensions" };
});
Import-Module Microsoft.Graph.Users
# A UPN can also be used as -UserId.
Get-MgUser -UserId $userId -Property "id,displayName,mail,mobilePhone" -ExpandProperty "extensions"
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new MeRequestBuilderGetRequestConfiguration();
$queryParameters = new MeRequestBuilderGetQueryParameters();
$queryParameters->select = ["id","displayName","mail","mobilePhone"];
$queryParameters->expand = ["extensions"];
$requestConfiguration->queryParameters = $queryParameters;
$requestResult = $graphServiceClient->me()->get($requestConfiguration);
3. Modification des informations de profil d’itinérance
L’utilisateur peut choisir de modifier ses informations de profil d’itinérance. L’application appelle Microsoft Graph en exécutant la requête suivante.
Import-Module Microsoft.Graph.Users
$params = @{
Theme = "light"
Color = "yellow"
Lang = "Swahili"
}
# A UPN can also be used as -UserId.
Update-MgUserExtension -UserId $userId -ExtensionId $extensionId -BodyParameter $params
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new Extension();
$additionalData = [
'theme' => 'light',
'color' => 'yellow',
'lang' => 'Swahili',
];
$requestBody->setAdditionalData($additionalData);
$requestResult = $graphServiceClient->me()->extensionsById('extension-id')->patch($requestBody);
4. Suppression du profil d’itinérance d’un utilisateur
L’utilisateur décide qu’il ne veut plus d’un profil itinérant. Il le supprime et l’application appelle Microsoft Graph en exécutant la requête suivante.
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
graphClient.Me().ExtensionsById("extension-id").Delete(context.Background(), nil)
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$graphServiceClient->me()->extensionsById('extension-id')->delete();