Microsoft fourni depuis quelques temps une API pour se connecter aux services Live, depuis tout type d’applications : Desktop, mobile, ou web. Cette API permet d’utiliser depuis vos applications les services de Skydrive, Messenger et Hotmail.
Nous allons voir dans cet article comment se connecter à Windows Live depuis une application Windows 8 Javascript pour pouvoir utiliser ces services.
Enregistrement de l’application
La première chose à faire est d’enregistrer l’application pour qu’elle ait le droit d’accéder au service. Il suffit d’aller sur le site suivant et de suivre les indications : https://manage.dev.live.com/build
Le site vous donnera un nouveau “Package name” que vous devrez mettre dans le fichier package.appxmanifest :

Ceci vous permettra d’utiliser les services Live lors du développement.
Lorsque vous voudrez publier votre application sur le Windows Store, il faudra remettre à jour cette valeur. Pour ça, vous devez créer l’application dans votre Dashboard Windows 8.
Puis dans Visual Studio, dans “Project” > “Store” > “Associate App with the Store”, vous pourrez faire l’association.

Sachez aussi que si vous utilisez ces services, vous devrez spécifier des conditions de service, et une déclaration de confidentialité : 2 liens à enregistrer dans les fonctionnalités avancées de votre application, dans le Dashboard du Windows Store.
Installation du SDK
La première chose à faire est de télécharger et d’installer le SDK Live, puis de le référencer dans le projet :

Ensuite, il faudra référencer le SDK dans vos pages :
<script src="/LiveSDKHTML/js/wl.js"></script>
Connexion
Pour pouvoir se connecter, il faut commencer par initialiser les API, à l’aide de la méthode WL.init, qu’on va définir en lui donnant le scope : les données à laquelle on veut accéder dans notre application. C’est important, car lorsque on se connectera avec le compte de l’utilisateur, une fenêtre lui demandera d’accéder à son compte live, avec la liste des données à laquelle on demande à accéder.
WL.init({
scope: ["wl.signin"]
});Contrairement à une application web, nous n’avons pas besoin ici de fournir d’identifiant d’application, puisqu’il est fourni automatiquement par le SDK lui même, l’application est reconnue par le package name, qu’on a défini précédemment.
On peut maintenant se connecter pour de bon à Live. Pour ça, 2 possibilités : soit l’affichage d’un bouton pour l’utilisateur, soit une connexion automatique par code.
Pour créer un bouton, on va utiliser la méthode WL.ui. On a besoin d’un conteneur dans le HTML :
<div id="signin"></div>
Et on fait l’appel à la méthode pour faire apparaitre le bouton :
WL.ui({
name: "signin",
element: "signin"
});Ceci va nous donner le bouton suivant :

On peut aussi de connecter automatiquement en javascript en utilisant la méthode WL.login:
WL.login();
Dans les deux cas une fenêtre s’affichera pour demander l’autorisation à l’utilisateur d’utiliser son compte.

Utilisation de l’API
Maintenant que vous vous êtes connecté et que l’utilisateur vous a donné les droits d’accéder à son compte live, vous pouvez utiliser l’API REST.
Si par exemple on veut récupérer le nom et le prénom de l’utilisateur, ça se fera de la manière suivante :
WL.api({
path: "me",
method: "GET"
}).then(
function (response) {
// Les information sont contenues dans l'objet response :
// response.first_name, response.last_name
},
function (responseFailed) {
// En cas d'erreur
}
);Ici on fait un appel au chemin “me” de l’API. En fait, la requête est faite sur l’url https://apis.live.net/v5.0/me. Lorsque la réponse arrive, on traite le résultat (à l’aide de la méthode then) avec une fonction pour traiter la réponse, et une fonction appelée en cas d’erreur.
Voilà, à partir de là on a tout ce qu’il faut pour commencer à utiliser toutes les fonctionnalités de l’API live dans l’application. A bientôt (j’espère) sur ce blog pour voir plus en détail ce qu’on va pouvoir faire de ça. En attendant, rendez-vous sur msdn si vous voulez approfondir le sujet.