[Windows Store] 在Windows Store APP中使用Microsoft Account登入(Live SDK)

  • 910
  • 0

[Windows Store] 在Windows Store APP中使用Microsoft Account登入(Live SDK)

最近研究了一下在Windows Store App中使用Live SDK,在查閱許多網路上的資料時,可能版本不同發現有些方式跟一些舊版本比起來有所差異,所以就來記錄一下使用的方式跟步驟。

 

首先要到下面網站去下載Live SDK的安裝檔來安裝,目前最新的版本是5.5

http://msdn.microsoft.com/zh-TW/live/ff621310

image

 

接著在專案中加入Live SDK Reference

image

 

另外一種方式就是透過NuGet也可以自動進行安裝,這樣就不必先下載安裝檔安裝,再手動加入Reference了,未來有新版要update也較方便

image

 

接著在介面上放一個button做登入用,而登入的程式碼則如下

   1:  using System;
   2:  using Windows.UI.Xaml;
   3:  using Windows.UI.Xaml.Controls;
   4:  using Microsoft.Live;
   5:  using Windows.UI.Popups;
   6:   
   7:  namespace LiveSDKSample
   8:  {
   9:      public sealed partial class MainPage : Page
  10:      {
  11:          public MainPage()
  12:          {
  13:              this.InitializeComponent();
  14:          }
  15:   
  16:          private async void LoginButton_Click(object sender, RoutedEventArgs e)
  17:          {
  18:              try
  19:              {
  20:                  LiveAuthClient auth = new LiveAuthClient();
  21:                  //要求自動登入與讀取基本資訊兩種權限
  22:                  LiveLoginResult loginresult = await auth.LoginAsync(new string[] 
  23:                  { 
  24:                      "wl.signin",
  25:                      "wl.basic"
  26:                  });
  27:                  if (loginresult.Status == LiveConnectSessionStatus.Connected)
  28:                  {
  29:                      LiveConnectClient liveClient = new LiveConnectClient(loginresult.Session);
  30:                      LiveOperationResult operationresult = await liveClient.GetAsync("me");
  31:                      //顯示登入帳號的姓名
  32:                      MessageDialog msg = new MessageDialog(string.Format("Name:{0}",
  33:                          operationresult.Result["name"]
  34:                          ));
  35:                      await msg.ShowAsync();
  36:                  }
  37:              }
  38:              catch (LiveAuthException ex)
  39:              {
  40:                  MessageDialog msg = new MessageDialog(ex.Message);
  41:                  msg.ShowAsync();
  42:              }
  43:          }
  44:      }
  45:  }

 

在上面程式碼中wl.signin、wl.basic分別表示會使用到單一登入(single sign-in)跟讀取使用者基本資訊的權限,如果需要更多的權限範圍可以參考下面文件

http://msdn.microsoft.com/zh-tw/library/live/hh243646.aspx

 

接著執行後按下Login button會彈出登入Microsoft Account的視窗

image

 

但是這邊登入後會彈出下圖的訊息,這表示此APP還沒做相關的設定

image

 

在Windows Store App中要設定使用Live Connect Service只需要將APP關聯到Windows Store就可以使用了,不需要再去Live Connect Developer Center註冊,因為在Windows Dev Center中建立一個APP後,也會同時出現在Live Connect Developer Center中,所以就表示APP已經可以使用Live Connect Service囉

image

 

將APP與Windows Store關連起來

image

 

接著在重新執行登入就能夠成功使用了,當使用者第一次登入時會彈出下面視窗詢問相關授權,可以看到此Sample APP會使用到自動登入跟存取基本資訊兩種權限,也就是剛剛在程式中設定要求的wl.signin、wl.basic兩種權限

image

 

登入後就顯示個使用者名字確認成功取得資訊

image

 

Reference

 

Live Connect 文件

(Live SDK)問候使用者

(Live SDK)Windows 市集應用程式