ive SDK te lo hace  fácil como desarrollador a utilizar los servicios Live  dentro de tu aplicación de Windows Phone 8. Más de 500 millones de personas utilizan servicios como Hotmail, SkyDrive, Messenger etc. Cuando usas Live SDK, sincroniza muy bien en la nube y está disponible en todos los dispositivos.

A continuación, necesitará descargar e instalar Live SDK:

http://www.microsoft.com/en-us/download/details.aspx?id=35754

Luego de haber instalado el Live SDK creamos un nuevo proyecto de Windows Phone 8 en Visual Studio 2012 y dentro de las referencias agregamos Microsoft.Live y Microsoft.Live.Controls

Referencias

El Microsoft.Live es la referencia principal. Tambien se puede excluir la Microsoft.Live.Controls la cual le da un llamado Sign-In control button, que puede o no puede utilizar dentro de su aplicación.Es necesario un paso más para poder empezar a utilizar el SDK en su aplicación. Usted tiene que registrar su aplicación y obtener el ID de cliente que se necesita para hacer su aplicación reconocida por los servicios Live. Link:https://manage.dev.live.com/

CreateApp

Añadir el nombre de la aplicación y seleccione idioma y aceptar las condiciones de uso y obtendrá el ID de cliente:

Sin título

Tiene que  mantener en secreto su ID de cliente y el cliente secreto.  En este caso nosotros solo necesitamos ID de cliente.Ya teniendo todo esto ahora nos vamos al Visual Studio y  agregamos el siguiente código XAML en MainPage.xaml reemplazando el ContentPanel que se encuentra en MainPage.xaml

<GRID X:NAME=»CONTENTPANEL» GRID.ROW=»1″ MARGIN=»12,0,12,0″>
<STACKPANEL ORIENTATION=»HORIZONTAL»
HORIZONTALALIGNMENT=»CENTER»
VERTICALALIGNMENT=»TOP» MARGIN=»0,127,0,0″ HEIGHT=»211″ WIDTH=»456″>
<IMAGE NAME=»IMAGENPERFIL»
WIDTH=»131″ HEIGHT=»161″
VERTICALALIGNMENT=»CENTER»
MARGIN=»12,27,12,23″/>
<TEXTBLOCK NAME=»INFOINICIO» FONTSIZE=»22″ VERTICALALIGNMENT=»CENTER» TEXTWRAPPING=»WRAP» MARGIN=»12,27,12,37″ HEIGHT=»147″ WIDTH=»282″/>
</STACKPANEL>
</GRID>
<PROGRESSBAR X:NAME=»CARGANDO» ISINDETERMINATE=»TRUE» HEIGHT=»19″ MARGIN=»0,26,0,0″ GRID.ROW=»1″ VERTICALALIGNMENT=»TOP»/>

El controlde Image tendrá la imagen del usuario, y textblock tendra un mensaje sobre el usuario que ha iniciado sesión o sobre los errores ocurridos.En el MainPage.xaml.cs, agregue el siguiente código:

LiveAuthClient auth;
public MainPage()
{
InitializeComponent();
this.Loaded += MainPage_Loaded;
}

LiveAuthClient es el objeto que se va a utilizar para la autenticación de servicios Live, y vamos a hacer todo en el controlador de eventos MainPage_Loaded:

ASYNC VOID MAINPAGE_LOADED(OBJECT SENDER, ROUTEDEVENTARGS E)
{
TRY
{
CARGANDO.VISIBILITY = VISIBILITY.VISIBLE;
AUTH = NEW LIVEAUTHCLIENT(«AQUI VA EL ID DE CLIENTE»);
LIVELOGINRESULT RESULT = AWAIT AUTH.INITIALIZEASYNC(NEW STRING[] { «WL.BASIC», «WL.OFFLINE_ACCESS», «WL.SIGNIN» });
IF (RESULT.STATUS != LIVECONNECTSESSIONSTATUS.CONNECTED)
RESULT = AWAIT AUTH.LOGINASYNC(NEW STRING[] { «WL.BASIC», «WL.OFFLINE_ACCESS», «WL.SIGNIN» });
IF (RESULT.STATUS == LIVECONNECTSESSIONSTATUS.CONNECTED)
{
THIS.INFOINICIO.TEXT = «SIGNED IN»;
}
}
CATCH (LIVEAUTHEXCEPTION EXC)
{
THIS.INFOINICIO.TEXT = «ERROR: » + EXC.MESSAGE;
}
FINALLY
{
CARGANDO.VISIBILITY = VISIBILITY.COLLAPSED;
}
}

«cargando»  es un simple ProgressBar que  se oculta y se mostra cuando sea necesario. Creamos el objeto LiveAuthClient utilizando el ID de cliente como parámetro del constructor. LiveLoginResult esel  resultado que llego después de intentar iniciar sesión. Hay dos maneras de Autorizar – si ya tenemos una sesión válida desde antes de InitializeAsync  debe establecer la conexión y Autorizar nosotros en silencio. Si no, no se conectará el estado de resultado pero desconectado o desconocido, después de lo cual llamamos al método de LoginAsync.
WL.Basic – acceso de lectura a la información de perfil básico del usuario
WL.offline_access – La capacidad de una aplicación para leer y actualizar su información de un usuario en cualquier momento. Sin este ámbito, una aplicación puede acceder a información del usuario únicamente mientras el usuario está registrado en Live Connect y está utilizando su aplicación.
WL.signin – Comportamiento Inicio de sesión único. Con single sign-in, los usuarios que ya están Autorizados,también están Autorizados a su sitio Web.
Estos tres ámbitos se llaman ámbitos fundamentales, y hay otros ámbitos extendidos.Mas Info sobre estos puntos aqui: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx
Si la autenticación falla y hay una excepción, la excepción es LiveAuthException. Vamos a ver qué pasa cuando ejecuto este Demo:

Sin título
33333

Como mi emulador no está conectado a mi Microsoft Account, primero debo autorizar en el uso de credenciales. Después de hacerlo, me aparece la siguiente pantalla:
 me pide dar permisos a esta aplicación para hacer algunas cosas que se definen el ámbito de aplicación.Después de hacer clic en sí, estoy suscrito:

captura

Si la salida de la aplicación y volver más tarde, ya simplemente haz autorizado para que inicie automáticamente y no tienes que repetir los pasos de arriba.Después de que el usuario autoriza, puedo hacer algunas cosas bastante interesantes, información de perfil del usuario. Vamos a ver cómo hacerlo:

TRY
{
CARGANDO.VISIBILITY = VISIBILITY.VISIBLE;
AUTH = NEW LIVEAUTHCLIENT(«AQUI VA TU CLIENTE ID»);
LIVELOGINRESULT RESULT = AWAIT AUTH.INITIALIZEASYNC(NEW STRING[] { «WL.BASIC», «WL.OFFLINE_ACCESS», «WL.SIGNIN» });
IF (RESULT.STATUS != LIVECONNECTSESSIONSTATUS.CONNECTED)
RESULT = AWAIT AUTH.LOGINASYNC(NEW STRING[] { «WL.BASIC», «WL.OFFLINE_ACCESS», «WL.SIGNIN» });
IF (RESULT.STATUS == LIVECONNECTSESSIONSTATUS.CONNECTED)
{
VAR CONNECT = NEW LIVECONNECTCLIENT(AUTH.SESSION);
VAR OPRESULT = AWAIT CONNECT.GETASYNC(«ME»);
DYNAMIC NAMERESULT = OPRESULT.RESULT;
THIS.INFOINICIO.TEXT = «HOLA » + NAMERESULT.NAME + «, HAS INICIADO SESION»;
VAR PHOTORESULT = AWAIT CONNECT.GETASYNC(«ME/PICTURE»);
DYNAMIC PHOTORESULTDYN = PHOTORESULT.RESULT;
VAR IMAGE = NEW BITMAPIMAGE(NEW URI(PHOTORESULTDYN.LOCATION, URIKIND.ABSOLUTE));
THIS.IMAGENPERFIL.SOURCE = IMAGE;
}
}
CATCH (LIVEAUTHEXCEPTION EXC)
{
THIS.INFOINICIO.TEXT = «ERROR: » + EXC.MESSAGE;
}
CATCH (LIVECONNECTEXCEPTION CONNEXC)
{
THIS.INFOINICIO.TEXT = «ERROR MAKING REQUEST: » + CONNEXC.MESSAGE;
}
FINALLY
{
CARGANDO.VISIBILITY = VISIBILITY.COLLAPSED;
}

Tambien les dejo un link bastante interesante para las personas que quieran hacer un boton de inicio de sesion:
http://msdn.microsoft.com/en-us/library/live/hh243641.aspx
en el proximo articulo vamos a tocar este tema de como crear un boton inicio de sesion con la referencia Microsoft.Live.Controls Les dejo el codigo fuente para que lo revisen. DESCARGAR
Saludos nos vemos en la proxima 🙂

Deja un comentario...