Utilizando o Live SDK com Windows Phone

Tempo de leitura: menos de 1 minuto

Boa Tarde Pessoal, Hoje vou escrever este artigo que acredito ser de muita utilidade aos desenvolvedores. A Microsoft disponibiliza o Live SKD (que pode ser baixado aqui), e com esse SDK você pode utilizar os serviços do SkyDrive, Outlook.com, etc. Com essa SDK, você pode obter dados do usuário, como Nome, Sobrenome,e-mail’s do contato, lista de contatos, calendario do windows live, consegue criar, excluir, atualizar arquivos do SkyDrive, alterar contatos do windows live, etc. A Microsoft disponibiliza uma série de escopos e permissões para a Live SDK (e que pode ser encontrado na integra aqui), vou listar aqui, as que serão utilizadas em nosso exemplo, e oque cada um faz: wl.basic = Acesso de leitura a informações básicas de perfil do usuário. Também permite acesso de leitura a uma lista de contatos do usuário. wl.signin = Comportamento de logon único. Com o logon único, os usuários que já estão conectados no Live Connect também entram em seu site. wl.skydrive_update = Acesso de leitura e gravação aos arquivos do usuário armazenados no SkyDrive. wl.emails = Acesso de leitura a endereços de email pessoais, preferidos e comerciais do usuário. Bom, o intuito deste artigo, é mostrar como é simples utilizar o Live SDK em nossas aplicações, e também subir arquivos no skydrive Após baixar o Live SDK e instalar em sua maquina, é necessário incluir as referencias no Visual Studio conforme print abaixo: Após incluir essas referencias, é necessário incluir os namespaces no CS: using Microsoft.Live; using Microsoft.Live.Controls; após isso, vamos arrastar para nossa tela, o componente “SignInButton”, que pode se encontra em sua ToolBox. Caso o “SignInButton” não esteja disponivel em sua ToolBox, basta inclui-lo clicando com o botão direito do Mouse, selecionar “Choose Itens”, e selecionar a opção “SignInButton” Após isso, basta arrastar o botão para a tela. No código do botão criado, é necessário adicionar as seguintes propriedades: ClientId = Id da sua aplicação criada no dev.live.com Scopes  = os scopos informados no inicio do Post   No Code Behind, adicionei os seguintes códigos para acesso em toda a tela: LiveConnectClient liveClient; LiveConnectSession session;   No evento do SignInButton, adicionei o seguinte seguimento de código que é responsavel por realizar o login na Live. private void signInButton1_SessionChanged(object sender, LiveConnectSessionChangedEventArgs e) { if (e.Status == LiveConnectSessionStatus.Connected) { liveClient = new LiveConnectClient(e.Session); session = e.Session; liveClient.GetCompleted += new EventHandler<LiveOperationCompletedEventArgs>(OnGetCompleted); liveClient.GetAsync(“me”, null); } else { MessageBox.Show(“Erro ao Realizar Login”); liveClient = null; } }   void OnGetCompleted(object sender, LiveOperationCompletedEventArgs e) { if (e.Error == null) { if (e.Result.ContainsKey(“name”)) { Dictionary<string, object> dicionarioEmails = (Dictionary<string, object>)e.Result[“emails”]; txtEmail.Text = dicionarioEmails[“account”].ToString(); txtNome.Text = e.Result[“name”].ToString();   } } else { MessageBox.Show(e.Error.ToString()); }   } ao Clicar no SignInButton, ele executará estes métodos, e abrirá uma janela do browser para que você possa realizar o login no windows live, e logo em seguida uma tela de autorização das permissões solicitadas pela aplicação     Tendo realizado isso, estaremos conectados a nossa conta do Windows Live. Agora, vamos criar um pequeno arquivo texto e adiciona-lo ao skydrive.   para fazer isso, vamos criar um evento no Code Behind  que irá converter o conteudo do TextBox existente na tela para um MemoryStream e vamos em seguida adiciona-lo a nosso diretorio raiz do SkyDrive. o seguimento de código deve ficar semelhante a isso:   private void button1_Click(object sender, RoutedEventArgs e) { if (session != null) {   string nomeArquivo = “ExemploSkydrive.txt”;   byte[] arrayBytes = Encoding.UTF8.GetBytes(this.textBox1.Text);   MemoryStream stream = new MemoryStream(arrayBytes);   LiveConnectClient cliente = new LiveConnectClient(session);   cliente.UploadCompleted += new EventHandler<LiveOperationCompletedEventArgs>(cliente_UploadCompleted);   cliente.UploadAsync(“me/skydrive”, nomeArquivo, stream, OverwriteOption.Overwrite);   }   else { MessageBox.Show(“É necessário estar conectado ao Skydrive”); } } void cliente_UploadCompleted(object sender, LiveOperationCompletedEventArgs e) { if (e.Result[“id”] != null) { MessageBox.Show(string.Format(“Arquivo {0} salvo com sucesso!”, e.Result[“name”].ToString())); } else { MessageBox.Show(“Erro ao Salvar Arquivo no Skydrive”); }   }   O código que se encontra no evento do Botão, é oque realizará o “salvamento” do arquivo no Skydrive, e o evento cliente_UploadCompleted é oque verificará o retorno da execução, por exemplo se o arquivo foi ou não criado.   Bom pessoal, espero que tenha ajudado a todos, qualquer coisa, é so entrar em contato. Segue abaixo aplicação de exemplo para download:   SkydriveAccess.rar (380,12 kb)