【问题标题】:Integrating Facebook throughout a C# Windows Store app在整个 C# Windows Store 应用程序中集成 Facebook
【发布时间】:2013-03-30 18:12:39
【问题描述】:

github 上的 C# Facebook SDK 主机允许 Windows Store 应用程序通过应用程序登录到他们的帐户并发布例如通过应用程序的状态或应用程序相关内容,但是仍然有一些我不明白的概念。

首先,是否只有在我登录当前会话后才能执行 facebook 相关任务。我可以不登录一次(例如,当我第一次下载应用程序时)然后让应用程序保留我的设置。然后,每当我想通过我的应用发布一些内容并且可以立即进行,而不必再次登录(在同一个或另一个会话中) 我希望在我的应用程序中,我能够通过设置魅力中的一个选项登录,该选项将导航到我的HomePage.xaml,然后我将能够为多个会话保存该登录状态。目前我已经开始运行了(虽然不完全,我可以登录但现在就是这样),但是我/我如何在以后的会话中自动发布内容而无需再次登录?

其次,许多与 Facebook 应用程序集成的应用程序允许用户通过 Facebook 应用程序对应方发布存储在其本地应用程序或网络用户帐户中的数据。这是如何执行的?

假设我有一个类MyDataClass,其中包含属性DataTitleDataItem1DataItem2。我希望能够将其发送到我的墙上,并将其显示为普通帖子(此类功能的示例包括 ask.fm 和 formspring 之类的东西。)然后我什至可以通过我的存储这些数据吗? Facebook 应用程序,并能够根据需要将其发送给用户的朋友?

如果有人可以向我解释这些事情,我将不胜感激。我已经搜索了几天,还没有回答这些更大的问题。

【问题讨论】:

  • 您必须在 Facebook 开发人员仪表板中创建应用程序,然后将您的 Windows 8 应用程序与 Facebook 应用程序集成。现在,当用户通过 facebook 登录时,成功登录后,您将获得所有用户唯一的访问令牌。因此,您可以保存该访问令牌,然后用户不必登录更多时间。目前 Facebook 已经停止了大量 API,因此 Facebook C# SDK 也提供了更少的方法
  • 我明白了,我已经完成了你提到的大部分工作。我在 Facebook 上创建了一个应用程序,并使用它的应用程序 ID 来获得 Facebook 的响应。您是说如果我将用户在首次登录后获得的访问令牌保存在隔离存储中,我将能够在连续的应用会话中毫无问题地使用它,还是会改变?
  • 用户更改密码时令牌已过期。然后我还建议您查看 Facebook 开发者网站以了解令牌何时到期。
  • 非常感谢,我已经按照你说的申请了,这似乎很有意义并且有效。我的第二点可以再等一次,因为我还没有准备好实施它。如果您将您所说的所有内容作为答案,我会很乐意将其标记为正确。

标签: c# facebook windows-8 facebook-c#-sdk windows-store-apps


【解决方案1】:

Facebook C# SDK 可以通过NuGet 使用,或者您可以从GitHub 获取库。当任何用户通过 Facebook 登录时,登录结果返回“Access Token”。它在所有 Facebook 用户中都是独一无二的。您可以将该访问令牌保存在单个用户的LocalSetting 中。本地设置文档可以在here 找到。可以这样使用本地设置。

//create instance of local settings
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// Create a setting
localSettings.Values["FB_Access_Token"] = "THIS_IS_DUMMY_ACCESS_TOKEN";

// Read data from a setting
var objFbAccessToken = localSettings.Values["FB_Access_Token"];

if (objFbAccessToken == null)
{
    // No data
    // Do relogin of Facebook and save new facebook token
}
else
{
    // Access user's Facebook data with help of Facebook C# SDK and Access Token
}

// Delete a setting
localSettings.Values.Remove("objFbAccessToken");

请参阅this 以了解扩展访问令牌。

Get long live access token from Facebook

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多