语言: HTML | XAML

快速入门:个性化应用 (XAML)

你的使用 C++、C# 或 Visual Basic 的 Windows 运行时应用可以利用 Windows Live 服务,使用 Live SDK 访问用户的 Microsoft 帐户个人资料中的信息。

当你的应用运行时,用户必须使用其 Microsoft 帐户登录并同意你的应用访问其数据。在用户登录并同意后,你的应用便可以访问用户的个人资料数据,从而个性化该体验。本主题介绍如何进行这些步骤中的每个步骤。

要点  本快速入门仅用于演示和说明。若要在你希望上载到 Windows 应用商店并向客户分发的应用中使用此功能,你需要包括注销功能和隐私策略以及登录功能。在完成此快速入门后,请阅读 Microsoft 帐户登录要求以了解如何添加这些功能。
要点  本主题中的教程演示了 Windows 应用商店应用。还可以将 Microsoft 服务添加到 Windows Phone 应用商店应用。

先决条件

  • 已安装 Microsoft Visual Studio
  • 已安装 Live SDK
  • 使用 C# 的 Windows 应用商店应用项目在 Visual Studio 中打开

添加对 Live SDK 的引用

当你的应用运行时,它可以显示 Windows 登录控件,以便让用户使用其 Microsoft 帐户登录。登录后,系统将提示用户同意让应用使用用户的数据(如果用户尚未同意)。

若要在应用运行时显示 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 帐户登录要求中进行了介绍。

摘要和后续步骤

在本主题中,你已了解如何开始在使用 C++、C# 或 Visual Basic 的 Windows 运行时应用中使用 Windows Live 服务访问 Outlook.com 和 Microsoft OneDrive 等 Microsoft 云服务中的用户数据。

你已了解如何让用户使用 Microsoft 帐户进行登录并获得用户同意,以便你的应用可以访问其数据。

请在 Microsoft 帐户登录要求中继续了解有关使用 Windows Live 服务的详细信息,你可以在其中了解如何添加注册和注销功能。

有关你的应用可以使用用户的个人资料数据执行哪些操作的详细信息,请参阅 OneDrive 文档中的获取用户数据

 

 

显示:
© 2015 Microsoft