Language: HTML | XAML

快速入門:個人化應用程式 (XAML)

Applies to Windows and Windows Phone

使用 C++、C# 或 Visual Basic 的 Windows 市集應用程式可以透過使用 Live SDK,使用 Live Connect 來存取使用者的 Microsoft 帳戶設定檔的資訊。

若要這樣做,您必須先登錄應用程式以使用 Live Connect。然後,當應用程式執行時,使用者必須使用其 Microsoft 帳戶登入,並同意您的應用程式存取資料。使用者登入並同意之後,您的應用程式就可以存取使用者的設定檔資料來個人化經驗。本主題將說明如何執行各個步驟。

重要  本快速入門僅供說明與示範之用。如果想在要上傳至 Windows 市集的應用程式使用這個功能並提供給客戶,您必須同時包含登出功能與登入功能,以及隱私權聲明。完成本快速入門後,請閱讀 Microsoft 帳戶登入經驗的指導方針,了解如何新增這些功能。

先決條件

  • 已安裝 Microsoft Visual Studio
  • 已安裝 Live SDK
  • 使用在 Visual Studio 開啟之 C# 專案的 Windows 市集應用程式
  • 使用 C++、C# 或 Visual Basic 的 Windows 市集應用程式已登錄可使用 Live Connect

將參照新增到 [Live SDK]

應用程式執行時,可為使用 Microsoft 帳戶登入的使用者顯示 Windows 登入控制項。登入之後,會提示使用者同意應用程式使用他們的資料 (如果使用者尚未同意的話)。

若要在您的應用程式執行時顯示 Windows 登入控制項,請在專案中執行此動作:

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 [參考] > [加入參考]
  2. 按一下 [Windows] > [延伸],顯示可加入您程式的參考清單。
  3. 勾選 [Live SDK] 旁的方塊。如果在清單中沒看見 [Live SDK],請重新安裝 Live SDK,然後重試此程序。
  4. 按一下 [確定] 結束對話方塊。

將 using 陳述式新增至您的應用程式

在參照至 Live SDK 的應用程式中,每個 C# 程式碼檔案的開頭 (例如 MainPage.xaml.cs),以及應用程式 UI 的程式碼後置檔案中,新增下列 using 陳述式。


using Microsoft.Live;


新增個人化問候語的 UI 元素

在應用程式配置中新增元素,以顯示使用者名稱。

您在此使用的實際 Extensible Application Markup Language (XAML) 程式碼會根據應用程式的配置而不同。這個範例會示範其中一種可將此元素新增至應用程式配置的方式;不過,它不包含您將元素新增至應用程式時可能會想要納入的任何樣式或位置屬性。


<TextBlock x:Name="userName" Text="You're not signed in." />


新增可取得使用者 Microsoft 帳戶資訊的程式碼

在頁面 (您在前個步驟新增標記處) 的程式碼後置檔案中,新增程式碼以從使用者的 Microsoft 帳戶取得其個人檔案資訊並更新頁面中的文字。

這個程式碼範例會進行下列動作:

  1. 初始化 Live SDK
  2. 登入使用者 Microsoft 帳戶。如果使用者未連線,他們會看見 Microsoft 帳戶登入畫面,以便登入。
  3. 取得同意,以存取使用者設定檔資訊。如果使用者尚未同意此應用程式存取其資訊,他們會看見詢問是否同意的 UI。
  4. 從使用者的 Microsoft 帳戶設定檔取得資訊。
  5. 以個人化問候語更新應用程式的 UI。

try
{
    // Initialize access to the Live Connect SDK.
    LiveAuthClient LCAuth = new LiveAuthClient();
    LiveLoginResult LCLoginResult = await LCAuth.InitializeAsync();
    try
    {
        // Sign in to the user's Microsoft account with the required scope.
        //    
        //  This call will display the Microsoft account sign-in screen if the user 
        //  is not already signed in to their Microsoft account through Windows 8.
        // 
        //  This call will also display the consent dialog, if the user has 
        //  has not already given consent to this app to access the data described 
        //  by the scope.
        // 
        LiveLoginResult loginResult = await LCAuth.LoginAsync(new string[] { "wl.basic" });
        if (loginResult.Status == LiveConnectSessionStatus.Connected)
        {
            // Create a client session to get the profile data.
            LiveConnectClient connect = new LiveConnectClient(LCAuth.Session);

            // Get the profile info of the user.
            LiveOperationResult operationResult = await connect.GetAsync("me");

            // Format the text to display and update the element in the layout.
            dynamic result = operationResult.Result;
            if (result != null)
            {
                this.userName.Text = string.Join(" ", "Hello", result.name, "!");
            }
            else
            {
                this.userName.Text = "Unable to get your name.";
            }
        }

    }
    catch (LiveAuthException exception)
    {
        // handle the login, scope, or request exception
    }
}
catch (LiveAuthException exception)
{
    // handle the initialization exception
}
catch (LiveConnectException exception)
{
    // handle the Live Connect API exception
}


測試您的個人化應用程式

執行個人化應用程式時,您可能會注意到不是每次都能看見 Microsoft 帳戶登入畫面。這可能是因為 Windows 記住您的登入資訊,讓您的使用者在下次執行應用程式時,能輕鬆擁有個人化的體驗。

重要  如果想在要上傳至 Windows 市集的應用程式存取使用者資料並提供給客戶,您必須同時包含登出功能與登入功能,以及隱私權聲明Microsoft 帳戶登入經驗的指導方針中會說明登入與登出的實作。

摘要與後續步驟

在這個主題中,您已了解如何開始使用 Live Connect 從使用 C++、C# 或 Visual Basic 的 Windows 市集應用程式中,存取使用者在 Microsoft 雲端服務 (例如 Outlook.com 與 Microsoft OneDrive) 中的資料。

您學會如何讓使用者使用 Microsoft 帳戶登入,以及取得使用者的同意,讓您的應用程式可以存取他們的資料。

若要繼續深入了解使用 Live Connect 的詳細資訊,請參閱 Microsoft 帳戶登入經驗的指導方針,在這裡您可以了解如何新增登入與登出功能。

如需應用程式如何善用使用者設定檔資料的詳細資訊,請參閱 Live Connect 文件中的取得使用者資料

 

 

顯示:
© 2014 Microsoft