Février 2016

Volume 31, numéro 2

Cet article a fait l'objet d'une traduction automatique.

Windows 10 - Implémentation d’une application UWP avec le Kit officiel de développement logiciel (SDK) OneDrive

Par Laurent Bugnion | Février 2016

Dans la première partie de cette série en deux parties (msdn.com/magazine/mt614268), j'ai parlé à l'aide de la APIs OneDrive sur HTTP directement à partir d'une application universelle Windows Platform (UWP), à l'aide de l'objet HttpClient pour placer les appels. Cela m'a fourni la possibilité de sonder assez les principes fondamentaux de REST et voir comment une application .NET peut tirer parti des techniques de programmation modernes telles que les mots clés async/await et la bibliothèque HttpClient pour passer des appels aux API de Web modernes. J'ai également montré comment le mécanisme d'authentification fonctionne avec le protocole OAuth, qui permet à un utilisateur d'entrer ses informations d'identification dans une page Web hébergée afin que la communication entre l'utilisateur et le service d'informations d'identification est totalement transparente pour l'application d'hébergement. J'ai implémenté à l'aide d'un affichage Web hébergé dans une page XAML.

L'implémentation de l'authentification et les appels REST n'est pas très difficile, mais il est fastidieux, surtout lorsque vous souhaitez maintenir votre bibliothèque à jour avec toutes les dernières modifications et ajouts. C'est pourquoi Microsoft a publié le SDK OneDrive, que vous pouvez ajouter à votre application de manière simple (à l'aide du Gestionnaire de Package NuGet). Il s'agit d'un composant très utile et dans la « nouveau Microsoft » true manière, la bibliothèque est ouverte alimenté et publié sur GitHub à l'adresse bit.ly/1WX0Y03.

Pour illustrer cet article, vous pouvez trouver un exemple complet sur 1drv.ms/1ObySnz.

Authentification avec le nouveau SDK

Une des principales différences entre l'implémentation « plus bas niveau » décrite dans l'article précédent et le SDK officiel est le mécanisme d'authentification. Auparavant, j'implémenté OAuth manuellement et devaient créer plusieurs parties qui devaient lire ensemble :

  • Un affichage Web à l'utilisateur avec une page Web envoyée par le service d'authentification de Microsoft, afin que le nom d'utilisateur et le mot de passe sont envoyés directement au service, sans la connaissance de cette application.
  • Une page XAML hébergement WebView et en attente pour analyser le jeton d'authentification retourné par le service lors de l'opération a réussi.
  • Un service d'authentification côté client qui est chargé de décider si le jeton d'authentification est disponible et valide et pour afficher la page d'authentification si tel n'est pas le cas.

Le nouveau SDK simplifie considérablement, ce champ pour le développeur et pour l'utilisateur.

Authentification pour les développeurs

Pour les développeurs, le processus d'authentification est presque trivial. Le flux de travail entier est gérée par le Kit de développement logiciel. Mieux encore, en arrière-plan, le Kit de développement utilise une fonctionnalité des applications du Windows Store nommé le OnlineIdAuthenticator. Cette classe gère le mécanisme d'authentification au niveau du système d'exploitation et supprime le besoin d'analyser le jeton d'authentification.

Outre OnlineIdAuthenticator, le OneDrive SDK pour Windows 10 prend également en charge la classe WebAuthenticationBroker, qui offre un moyen plus « classique » de se connecter en entrant le nom d'utilisateur et mot de passe, mais se charge également de l'analyse du jeton d'authentification et de la boîte de dialogue tous avec le service. Vous verrez des exemples de ces deux modes d'authentification plus loin dans cet article.

Authentification de l'utilisateur

Pour l'utilisateur final, l'avantage principal est en OnlineIdAuthenticator en tirant parti des informations d'identification de l'utilisateur connecté à Windows, qui sont déjà disponibles au niveau du système d'exploitation. Si l'utilisateur Windows se connecte au compte OneDrive associées à son compte Windows (qui est souvent le cas), il n'a même pas besoin entrer à nouveau son nom d'utilisateur et le mot de passe. Le mécanisme d'authentification entier est transparent pour lui.

Remarque : En plus de comptes MSA (Microsoft) pour les consommateurs, telles que des adresses Outlook.com, Live.com ou Hotmail.com, le SDK OneDrive prend également en charge Azure Active Directory (Azure AD) pour les utilisateurs professionnels. Cela est très utile pour les entreprises dont les utilisateurs sont gérés de cette manière. Compte de service administré est disponible pour Microsoft .NET Framework 4.5.1 (tels que les applications Windows Presentation Foundation ou Windows Forms), Windows Store et les applications Windows Phone. Azure AD est disponible pour les applications Windows Forms, Windows Store 8.1 et UWP.

Association d'une application du Windows Store UWP

Pour OnlineIdAuthenticator fonctionne, il est nécessaire enregistrer la nouvelle application au Windows Store. Notez que vous n'avez pas besoin de soumettre votre application du Windows Store pour utiliser le SDK OneDrive. L'inscription crée un ID unique pour votre application, qui doivent être entrés dans le manifeste d'application (Package.appxmanifest). Lorsque les utilisateurs tentent de s'authentifier auprès du service de OneDrive, ces ID sont utilisés pour identifier l'application. Par conséquent, le processus d'inscription de votre application au Windows Store remplace l'ID de Client qui vous ont été précédemment obtention à partir du centre de développement OneDrive.

Pour enregistrer votre application auprès du Windows Store, vous avez besoin accéder au centre de développement Windows à dev.windows.com et connectez-vous à votre compte de développeur Windows pour accéder au tableau de bord. En fonction de votre état, vous devez inscrire le compte et fournissent des informations de paiement.

Une fois connecté sur le tableau de bord, recherchez le lien « Envoyer votre application ». Cela accéder à une page de présentation dans lequel vous pouvez voir des applications existantes et envoyer une nouvelle, mise en route de son enregistrement auprès du Windows Store. Création d'une application du Windows Store requiert un nom d'application unique, vous devez entrer après avoir cliqué sur le bouton Créer un nouvelle application. Cliquez ensuite sur la vérification de disponibilité pour vous assurer que vous avez choisi le nom de l'application est en effet unique. Étant donné que le nom que vous avez choisi sera réservé, il est recommandé d'utiliser des noms temporaires pour tester les applications qui ne seront jamais publiées. De cette façon vous évitez de bloquer le nom de l'application d'un autre développeur. En outre, assurez-vous que vous possédez les droits pour le nom que vous êtes réservation pour éviter des actions juridiques à partir d'un propriétaire de la marque. Enfin, notez que si vous n'envoyez pas l'application au sein d'une année, la réservation de nom seront perdue. Pour les besoins de l'exemple, j'ai réservé le nom que TestOneDriveSdk_001, qui est devenu disponible.

Mise en œuvre et test de l'authentification

Il est temps pour créer l'application et ajouter le SDK OneDrive. Tout d'abord, à l'aide de Visual Studio, créez une nouvelle application UWP pour Windows 10. L'application ne doit avoir le même nom que celui que vous avez réservés dans le Windows Store, mais il est recommandé d'utiliser le même nom.

Une fois que l'application est créée, ouvrez le Gestionnaire de Package NuGet en cliquant sur le projet dans l'Explorateur de solutions et en sélectionnant gérer les Packages NuGet dans le menu contextuel. Sélectionnez Parcourir sur le Gestionnaire de Package, recherchez le package Microsoft.OneDriveSDK et l'ajouter à l'application.

Vous allez maintenant ajouter l'authentification à l'application en procédant comme suit :

  • Ouvrez MainPage.xaml et ajoutez un bouton à la page et nommez-le AuthenticateButton.
  • Dans MainPage.xaml.cs, implémentez le Gestionnaire d'événements Click, comme illustré dans Figure 1.

Figure 1 implémentation de gestionnaire d'événements Click

private IOneDriveClient _client;
public MainPage()
{
  InitializeComponent();
  AuthenticateButton.Click += async (s, e) =>
  {
    var scopes = new[]
    {
      "onedrive.readwrite",
      "onedrive.appfolder",
      "wl.signin"
    };
    _client = OneDriveClientExtensions.GetClientUsingOnlineIdAuthenticator(
      _scopes);
    var session = await client.AuthenticateAsync();
    Debug.WriteLine($"Token: {session.AccessToken}");
  };
}

Dans le code Figure 1, vous reconnaissez les étendues que vous avez déjà utilisé dans les exemples de l'article précédent. Il vous fournira l'accès en lecture/écriture pour les fichiers, ainsi que le dossier d'Application. En guise de rappel, ce dossier spécial est créé dans le dossier applications directement sous la racine et exécutera le même nom que l'application. Il s'agit d'un endroit idéal pour enregistrer les paramètres d'itinérance, des documents en ligne et ainsi de suite.

Avant d'exécuter l'application pour le tester, vous devez toujours associer le nom du magasin de Windows que vous avez réservé précédemment. Pour ce faire, procédez comme suit :

  • Dans l'Explorateur de solutions, avec le bouton droit sur le projet et sélectionnez application/associé au magasin avec la banque. Voici ce que vous devez faire avant de publier une application UWP dans le Windows Store. Dans ce cas, il est fait très tôt dans le développement, car les informations générées sont nécessaire.
  • Dans la boîte de dialogue associer votre application du Windows Store, appuyez sur le bouton suivant, puis connectez-vous à la banque. Veillez à utiliser les mêmes informations d'identification que vous permet de réserver le nom.
  • Après vous être connecté, vous devez voir le nom de l'application que vous avez réservé. Notez que vous pouvez également réserver un nom directement à partir de cette boîte de dialogue si vous ne souhaitez pas utiliser le tableau de bord Web.
  • Sélectionnez le nom, puis cliquez sur Suivant, puis sur associer.

Vous êtes maintenant prêt à tester le mécanisme d'authentification. Exécutez l'application en mode débogage et cliquez sur le bouton authentifier. Vous devez voir une boîte de dialogue par-dessus votre application vous demande votre consentement. Notez, cependant, que vous ne devez entrer vos informations d'identification de Microsoft. Au lieu de cela, vos informations d'identification de connexion Windows sont automatiquement utilisées.

Après l'exécution du code dans Figure 1, vous verrez la SessionToken (jeton d'authentification) dans la fenêtre Sortie. Vous pourrez utiliser ce jeton dans les appels d'API suivants comme vous l'avez fait dans le premier article. Si vous exécutez l'application plus tard et appuyer sur authentifier à nouveau, vous n'avez probablement même vérifier à nouveau votre consentement est mis en cache jusqu'à ce que vous vous connectez hors tension. Cela fournit une expérience de connexion transparente pour l'utilisateur.

Pourquoi pouvons nous pas changer de compte ?

L'exemple illustré Figure 1 utilise la méthode d'extension GetClientUsingOnlineIdAuthenticator du Kit de développement, qui, en réalité, utilise la classe OnlineIdAuthenticator. Comme je l'ai expliqué, cet objet utilise les informations d'identification de l'utilisateur connecté, ce qui permet la connexion d'une expérience extrêmement facile pour la grande majorité des utilisateurs.

L'inconvénient de cette approche, toutefois, est qu'il n'existe aucun moyen de sélectionner un autre compte lors de la connexion. Par conséquent, cette méthode d'authentification est très utile pour les utilisateurs de base qui n'ont qu'un seul compte OneDrive associé à leurs comptes Microsoft. Mais pour les utilisateurs avec pouvoir qui ont plusieurs comptes de OneDrive, le OnlineIdAuthenticator peut être trop limitée. Heureusement, vous pouvez basculer vers une autre méthode très facilement.

À l'aide d'un WebAuthenticationBroker

Si l'utilisateur doit se connecter avec ses informations d'identification explicitement (par exemple, pour lui permettre de basculer vers un compte différent de celui qu'il est connecté à Windows avec), il est préférable d'utiliser la classe WebAuthenticationBroker. Ici, le SDK OneDrive masque la majeure partie de la complexité, et vous pouvez utiliser le code suivant pour créer le client OneDrive :

var client = OneDriveClientExtensions.GetClientUsingWebAuthenticationBroker(
  "[CLIENT ID]",
  _scopes);

Dans le code affiché dans Figure 1, la chaîne [ID de CLIENT] doit être remplacée par votre ID de Client. application Pour rappel, il s'agit d'un ID unique que vous pouvez récupérer dans le centre de développement Windows dans les détails de votre application.

Si vous exécutez l'application avec cette modification mineure, vous verrez maintenant une autre boîte de dialogue. Cette boîte de dialogue permet à l'utilisateur de basculer vers un autre compte, ce qui est bon. Toutefois, l'utilisateur doit entrer son mot de passe manuellement, ce qui est moins transparent que le workflow précédent. Comme c'est habituel dans l'ingénierie, est jusqu'à vous permet de sélectionner la méthode mieux adapté au cas d'usage que vous tentez de résoudre.

À l'aide du Kit de développement logiciel pour accéder aux dossiers et fichiers

Une fois que le client est disponible et authentifié, le SDK OneDrive fournit plusieurs méthodes pour récupérer des informations sur le lecteur, les fichiers et dossiers. Dans l'article précédent, vous avez vu comment la structure du fichier est composée d'éléments, dossiers, fichiers vidéo, Audio, Images, Photos et vidéos. Jusqu'à présent, vous avez été mise en route d'une réponse JSON à partir du service et désérialiser manuellement dans les classes c# correspondants. Avec le SDK OneDrive, cela n'est plus nécessaire, car elle chargerons de cette étape pour vous. Pour illustrer cela, je vais retravailler le même exemple d'application comme dans l'article précédent plutôt à utiliser le SDK officiel.

Création de requêtes

Pour envoyer des demandes à l'API REST de OneDrive, les utilisations du Kit de développement logiciel composée d'une hiérarchie d'objets de ce que l'on appelle « requête générateurs. » Par exemple, la mise en route de lecteur de l'utilisateur est effectué avec _flux. Lecteur et l'obtention de son dossier racine s'effectue avec _flux. Drive.Root. Les générateurs de requête plus courantes sont répertoriées plus loin dans cet article.

Bien sûr, il existe de nombreuses combinaisons possibles. Une fois que le Générateur de requête a été obtenu, la demande réelle est créée à l'aide de la méthode de demande et envoyée avec l'une des méthodes HTTP, par exemple, GetAsync ou PostAsync. Par exemple, le code dans Figure 2obtiendra les méta-informations pour le fichier situé dans le chemin d'accès Public/Test/MyFile.txt et son contenu sous la forme d'un flux de données.

Contenu du téléchargement d'un fichier texte de la figure 2

var builder = _client.Drive.Root
  .ItemWithPath("Public/Test/MyFile.txt");
var file = await builder
  .Request()
  .GetAsync();
var contentStream = await builder.Content
  .Request()
  .GetAsync();
Debug.WriteLine($"Content for file {file.Name}:");
using (var reader = new StreamReader(contentStream))
{
  Debug.WriteLine(reader.ReadToEnd());
}

Liste de quelques-unes des requêtes plus courantes

Requêtes les plus courantes sont répertoriées ici comme générateurs de demande :

  • _flux. Lecteur : Génère une demande pour accéder à la OneDrive lui-même et obtenir ses propriétés (IDriveRequestBuilder). Si vous avez plusieurs lecteurs, vous pouvez également utiliser _flux. Lecteurs, qui est un IDrivesCollectionRequestBuilder.
  • _flux. Drive.Root : Génère une demande pour accéder au dossier de racine de la OneDrive (IItemRequestBuilder).
  • _flux. Drive.Root.Children : Génère une demande d'obtention des enfants du dossier (IChildrenCollectionRequestBuilder) de la racine. Après l'exécution de la demande (avec Request(). GetAsync()), le résultat est un IChildrenCollectionPage, qui contient une propriété nommée NextPageRequest. Si le nombre d'enfants est trop grand, la propriété de NextPageRequest peut être utilisée pour accéder à la page suivante d'éléments.
  • _flux. Drive.Root.ItemWithPath("Public/Test") : Génère une demande d'obtention de l'élément sur le chemin d'accès Public et de Test dans le dossier racine (IItemRequestBuilder).
  • _flux. Drive.Root.ItemWithPath("Public/Test/MyFile.txt"). Contenu : Générer une requête pour obtenir le contenu du fichier nommé MyFile.txt (IItemContentRequestBuilder).
  • _flux. Drive.Special.AppRoot : Génère une demande d'accès au dossier d'Application (IItemRequestBuilder).
  • _flux. Drive.Items[SomeId] : Génère une demande pour accéder à un élément par ID.

Chacun de ces générateurs de requête peut être consulté dans l'action dans l'exemple illustrant cet article.

Téléchargement d'un fichier

Téléchargement du contenu d'un fichier qui se produit avec une requête PUT selon les principes de l'API REST. Hormis cette différence, le mécanisme permettant de créer une requête PUT est très similaire aux version antérieure des demandes GET. En fait, la plupart du travail requis est en fait acquérir le flux de données. Par exemple, dans une application UWP, cela est possible avec un FileOpenPicker du chargement du fichier sélectionné dans le système de fichiers Windows. Le code dans Figure 3 montre un exemple simple (sans la gestion des erreurs) téléchargement du fichier sélectionné dans le dossier d'Application. Vous trouverez un exemple plus complet dans le téléchargement de code. Dans cet exemple, vous accéder aux informations de métadonnées retournées par la méthode PutAsync et enregistrez l'ID de l'élément afin que vous puissiez accéder facilement de l'élément enregistré ultérieurement ; par exemple, pour obtenir un lien vers cet élément.

Figure 3 sélection et téléchargement d'un fichier de contenu du

var picker = new FileOpenPicker
{
  SuggestedStartLocation = PickerLocationId.DocumentsLibrary
};
picker.FileTypeFilter.Add("*");
var file = await picker.PickSingleFileAsync();
using (var stream = await file.OpenStreamForReadAsync())
{
  var item = await _client.Drive.Special.AppRoot
    .ItemWithPath(file.Name)
    .Content.Request()
    .PutAsync<Item>(stream);
  // Save for the GetLink demo
  _savedId = item.Id;
}

Obtention d'un lien de partage

Une fois qu'une demande pour un élément a été créée, un lien unique pour cet élément peut être obtenu à partir du client OneDrive avec la méthode CreateLink qui renvoie un IItemCreateLinkRequestBuilder. Le code suivant montre comment procéder à l'aide de le _savedId que vous avez enregistré précédemment lorsque vous téléchargez un fichier dans OneDrive :

link = await _client.Drive
  .Items[_savedId]
  .CreateLink("view")
  .Request().PostAsync();

Bien sûr, la méthode CreateLink peut être appelée sur une demande d'élément (par exemple, pour obtenir un lien vers un dossier, et ainsi de suite). Notez que la demande créée par la méthode CreateLink doit être validée dans le service. La méthode CreateLink nécessite un paramètre qui peut être « afficher » ou « modifier ». Selon la valeur de ce paramètre, un lien en lecture seule ou en lecture-écriture est créé.

Mise à jour d'un élément

Les méta-informations d'un élément de mise à jour se produit avec un générateur de requête et la méthode UpdateAsync. Par exemple, après avoir téléchargé un fichier comme indiqué plus haut dans cet article, vous pouvez utiliser son ID (que vous avez enregistré dans l'attribut _savedId) pour modifier son nom avec le code indiqué ici :

var updateItem = new Item
{
  Name = "[NewNameHere]"
};
var itemWithUpdates = await _client
  .Drive
  .Items[_savedId]
  .Request()
  .UpdateAsync(updateItem);

Déplacement d'un élément

Déplacement d'un élément vers un nouvel emplacement est un cas spécial de mise à jour ses propriétés. Dans ce cas, vous allez mettre à jour sa propriété ParentReference, qui contient des informations sur l'emplacement de l'élément en OneDrive. Si vous modifiez cette propriété avec un nouvel emplacement et mettre à jour l'élément OneDrive en conséquence, l'élément sera déplacé.

Dans l'exemple suivant, vous prenez le fichier téléchargé antérieures (ayant enregistré son ID dans l'attribut _savedId) et de le déplacer à partir de son emplacement d'origine dans le dossier racine (bien entendu dans une application réelle, une erreur de traitement doit être ajouté à ce code) :

var newLocation = await _client.Drive.Root.Request().GetAsync();
var updateItem = new Item
{
  ParentReference = new ItemReference
  {
    Id = newLocation.Id
  }
};
var itemWithUpdates = await _client
  .Drive
  .Items[_savedId]
  .Request()
  .UpdateAsync(updateItem);

Copie d'un élément

Copie d'un élément est un peu différente de la déplacer. Chose intéressante, lorsque vous déplacez ou renommez un élément, le résultat de l'opération asynchrone est immédiatement et est l'instance d'élément avec la nouvelle méta-informations (telles que le nouvel emplacement ou le nouveau nom). Lorsque vous copiez un élément, cependant, cela peut prendre un certain temps et au lieu d'attendre jusqu'à ce que l'opération est terminée, le Kit de développement logiciel retourne une instance de IItemCopyAsyncMonitor dès que la copie commence.

Cette instance a une méthode appelée CompleteOperationAsync, qui interroge le résultat de l'opération de copie sur OneDrive, met à jour un fournisseur facultatif progression et retourne l'instance d'élément uniquement lorsque l'opération de copie est terminée. Cela fournit une expérience utilisateur très intéressante, car il est possible d'effectuer une autre opération en même temps et informe l'utilisateur lorsque l'opération de copie est terminée. Bien sûr, comme avec chaque opération de longue durée, il est possible d'annuler le processus d'interrogation (Toutefois, ce ne sera pas annuler l'opération de copie lui-même!). Le code dans Figure 4 montre comment l'élément qui a été téléchargé dans le dossier d'Application peut être copié dans le dossier racine. Vous récupérez tout d'abord le dossier racine. Ensuite, vous obtenez le fichier pour pouvoir créer un nouveau nom unique (pour éviter les collisions). Enfin, la demande de copie est créée et exécutée par une publication sur le serveur. Notez que vous ensuite comment utiliser la méthode CompleteOperationAsync attendre et informe l'utilisateur lorsque l'opération de copie est effectuée.

Figure 4 copiant l'élément qui vient d'être téléchargée à la racine

var newLocation = await _client.Drive.Root.Request().GetAsync();
// Get the file to access its meta info
var file = await _client.Drive.Items[_savedId].Request().GetAsync();
var newName = Path.GetFileNameWithoutExtension(file.Name)
  + "-"
  + DateTime.Now.Ticks
  + Path.GetExtension(file.Name);
var itemStatus = await _client
  .Drive
  .Items[_savedId]
  .Copy(
    newName,
    new ItemReference
    {
      Id = newLocation.Id
    })
  .Request()
  .PostAsync();
var newItem = await itemStatus.CompleteOperationAsync(
  null,
  CancellationToken.None);
var successDialog = new MessageDialog(
  $"The item has been copied with ID {newItem.Id}",
  "Done!");
await successDialog.ShowAsync();

Création d'un nouveau dossier

Il existe davantage d'opérations possibles dans le Kit de développement, mais avant d'essayer, je souhaite mentionner une autre fonctionnalité intéressante : création d'un nouveau dossier. Ceci est intéressant, car il agit sur une collection (enfants du dossier parent) en ajoutant un élément puis envoyez la demande à OneDrive, comme indiqué dans Figure 5. Notez que, dans ce cas, la méthode utilisée (AddAsync) ne correspond pas directement à une méthode HTTP (GET, POST, PUT et ainsi de suite). Une fois que le dossier est créé, la variable newFolderCreated contient les informations nécessaires, en particulier les ID du dossier :

Figure 5 Création d'un nouveau dossier

var newFolder = new Item
{
  Name = NewFolderNameText.Text,
  Folder = new Folder()
};
var newFolderCreated = _client.Drive
  .Special.AppRoot
  .Children
  .Request()
  .AddAsync(newFolder);
var successDialog = new MessageDialog(
  $"The folder has been created with ID {newFolderCreated.Id}",
  "Done!");
await successDialog.ShowAsync();

Approbation et bien plus encore

Enfin, une fois que la fin du travail avec le client, l'utilisateur peut choisir pour vous déconnecter. Cela est très simple à réaliser à l'aide SignOutAsync méthode du client OneDrive.

Outre les méthodes et propriétés décrites dans cet article, il existe quelques fonctionnalités plus dans le Kit de développement logiciel. Pour vous assurer d'obtenir la documentation sur les toutes dernières, vous pouvez vérifier les deux sources de documentation différents :

  • Le SDK C# OneDrive sur GitHub a beaucoup de documentation disponible. Vous trouverez à l'adresse bit.ly/1k0V2AL.
  • L'API OneDrive lui-même est présentée au bit.ly/1QniW84.

Gestion des erreurs

Si un problème se produit avec l'appel de service, une OneDriveException est levée. Toutefois, le message d'exception ne contient pas d'informations sur l'erreur. Au lieu de cela, les détails de l'erreur sont contenue dans la propriété d'erreur de la OneDriveException (de type Microsoft.OneDrive.Sdk.Error). Voici où vous trouverez le message d'erreur, ainsi que des données supplémentaires pour vous aider à résoudre le problème.

Car les erreurs peuvent être imbriqués, vous pouvez facilement utiliser la méthode IsMatch à rechercher un code d'erreur spécifique dans la hiérarchie d'erreur, par exemple avec :

theException.IsMatch(OneDriveErrorCode.InvalidRequest.ToString());

Mise en route et la création de la Source du Kit de développement logiciel

Bien que le Kit de développement logiciel peut être ajouté à l'aide du Gestionnaire de Package NuGet, il peut être utile obtenir le code source ; par exemple, pour apporter des modifications ou ajouter des fonctionnalités au code. Pour ce faire, vous pouvez facilement en le téléchargeant de la source de code, ou (encore mieux) par duplication de la source de code à partir de GitHub et modification de votre branche.

Le code source OneDrive SDK est disponible à l'adresse bit.ly/1WX0Y03. Pour obtenir le code et créer une branche, vous pouvez utiliser votre client GitHub favori, tel que GitHub bureau (desktop.github.com). Une fois que vous obtenez le code sur votre ordinateur local, vous pouvez la générer dans Visual Studio et ajoutez-le à votre application comme une référence de projet, par exemple. À ce stade, vous êtes sur le même point comme après l'ajout de la SDK via NuGet.

Synthèse

Dans le premier article de cette série, vous avez vu comment vous pouvez créer une bibliothèque puissante appel dans une API REST à l'aide de l'objet HttpClient, les mots clés async/await et un sérialiseur JSON. Toutefois, lors de nos jours, qu'il est beaucoup plus simple qu'il soit, il est toujours beaucoup de travail, en particulier lorsque vous souhaitez maintenir votre bibliothèque à jour avec de nouvelles fonctionnalités.

Dans cet article, j'ai pris l'autre approche, qui consiste à utiliser le SDK OneDrive créés par Microsoft. Vous avez vu comment la bibliothèque peut être ajoutée à une application UWP, la fonctionnement de l'authentification (soit à l'aide d'informations d'identification de l'utilisateur connecté transparente ou à l'aide de WebAuthenticationBroker et de l'offre à l'utilisateur la possibilité de sélectionner un compte différent et ainsi de suite). J'ai démontré également les opérations d'élément plus utiles telles que l'obtention des informations d'un élément par son chemin d'accès ou l'ID, les enfants d'un dossier de mise en route, téléchargement, renommer, déplacer ou copier un fichier, l'obtention d'un lien de partage unique pour un élément et bien plus encore.

Avec le SDK OneDrive disponible sur GitHub dans open source et Microsoft activement développant de nouvelles fonctionnalités et résolution des problèmes, il est plus facile que jamais d'accéder à partir de vos applications UWP OneDrive. Cela ouvre la voie à une gamme de fonctionnalités telles que les paramètres d'itinérance, le partage de documents entre les périphériques et bien plus encore.


Laurent Bugnionest directeur senior chez IdentityMine, une des entreprises les plus importantes (et un partenaire gold) pour les technologies Microsoft. Il est basé à Zürich en Suisse. Son ouvrage 2010, « Silverlight 4 Unleashed, » publié par Sams, est une suite avancée « Silverlight 2 Unleashed » (2008). Il a écrit plusieurs publications, est dans sa neuvième année en tant que MVP Microsoft et dans sa deuxième année en tant que directeur régional Microsoft. Il est l'auteur d'open source connue framework MVVM Light pour Windows, WPF, Xamarin et de la formation de référence Pluralsight populaires sur MVVM Light. Contactez-le sur son blog à l'adresse galasoft.ch.

Merci à l'experte technique Microsoft suivante d'avoir relu cet article : GINA Chernoby