Cookie Consent by Free Privacy Policy Generator
Privacy
Polipone
<ottobre 2024>
lunmarmergiovensabdom
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Immagini  

Usare l'account Live

Se avete bisogno di accedere ai dati dell'account Live configurato sul telefono, come primo passo dovete aggiungere il package LIVE SDK tramite NuGet al vostro progetto e bisogna associare il progetto ad un'App dello store, altrimenti i servizi Live non funzionano.

Inoltre è necessario richiedere l'autorizzazione all'utente affinché la vostra APP possa usare i dati dell'account Live. Ognuno può organizzare come preferisce questa richiesta, di seguito l'implementazione fatta da me

            if (CUtility.getSetting("LIVEID", "").ToString() == "" && CUtility.getSetting("LIVEID_CANASKAGAIN", "Y").ToString() == "Y")
            {
                var messageDialog = new MessageDialog("Can this app use your Live Account data?" , "Permission request");
                messageDialog.Commands.Add(new UICommand("YES", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                messageDialog.Commands.Add(new UICommand("NO", new UICommandInvokedHandler(this.CommandInvokedHandler)));
                messageDialog.DefaultCommandIndex = 0;
                messageDialog.CancelCommandIndex = 1;
                await messageDialog.ShowAsync();
            }
            else
            {
                //DO SOMETHING WITH CUtility.getSetting("LIVEID", "").ToString();
            }



Nel momento in cui l'utente concede l'autorizzazione, si può procedere con il login al servizio Live e recuperare così le informazioni sull'account

             CLiveId myLive = new CLiveId();
             try
             {
                 await myLive.SignIn();
                 CUtility.setSetting("LIVEID", myLive.username.ToLower());
                 myLive.SignOut();
             }
             catch
             {
                 //DO SOMETHING
             }


Il codice della classe CLiveId è il seguente. Nell'esempio inserisco come recuperare il campo "username"

using Microsoft.Live;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace NSPolipone
{
    class CLiveId
    {
        private bool isSignedIn = false;
        private LiveConnectClient client;
       
public string username { get; set; }

        /// <summary>
        /// EFFETTUA IL SIGN-IN A WINDOWS LIVE
        /// </summary>
        public async Task SignIn()
        {
            if (!this.isSignedIn)
            {
                try
                {
                    LiveAuthClient auth = new LiveAuthClient();
                    LiveLoginResult loginResult = await auth.LoginAsync(new string[] { "wl.signin" });
                    if (loginResult.Status == LiveConnectSessionStatus.Connected)
                    {
                        this.client = new LiveConnectClient(loginResult.Session);
                        this.isSignedIn = (loginResult.Status == LiveConnectSessionStatus.Connected);
                        LiveOperationResult operationResult = await this.client.GetAsync("me");
                        // determino se le informazioni sono state recuperate con successo
                        dynamic result = operationResult.Result;
                        // in caso di successo viene recuperato il nome utente
                        if (result != null) username = result.name;
                    }
                }
                catch (LiveAuthException ex)
                {
                    //DO SOMETHING
                }
                catch (Exception ex)
                {
                    //DO SOMETHING
                }
            }
        }

        public void SignOut()
        {
            //Non si può fare logout dalla modalità SSO, quindi si imposta a null il client
            this.client = null;
        }

    }
}


Mail/Calendar/Contacts: https://dev.outlook.com/

Notifiche