自动登录facebook

时间:2009-07-20 08:04:22

标签: c# facebook desktop

我正在用C#创建桌面应用程序。 这个应用程序应该做的事情之一是在facebook中将事物发布到用户的状态(例如:“dave刚赢得3枚金牌”)。无论用户是否现在登录到Facebook,都会发生这种情况。我希望用户只给我一次所需的权限,然后一切都会自动发生(我会保存我的数据库所需的一切)。 我尝试使用facebook开发者工具包2.0 for .net但没有看到任何可以帮助我的东西。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

对于你的问题: 你需要使用Facebook Connect API

  • 有一个名为offline_access的功能 - 它是一个扩展权限。
  • 在FB Connect中,您需要切换正确的弹出窗口:
  • 工作流程将是这样的:
    • 用户使用FB Connect确认他想将您的应用程序连接到他的Facebook帐户。
    • 您触发弹出窗口。
    • 即使他离线(或不使用facebook连接)
    • ,您也可以在他的许可下拨打所有电话

为了便于理解:FB Connect意味着您可以轻松地将用户登录到他的应用程序并代表他做所有事情。 offline_access实际上是用于cronjob工作。

答案 1 :(得分:1)

我在这里得到了一些答案。我认为它回答了我最近在网上看到的其他问题:

我的回答与在facebook(facebook connect)之外工作的桌面应用程序有关。 +我正在使用facebook开发者工具包2.1:

以下是获取离线访问所需的特殊权限的方法。以及如何获取会话密钥:

facebook.Components.FacebookService FS = new facebook.Components.FacebookService();
FS.GetExtendedPermission(facebook.Types.Enums.Extended_Permissions.offline_access);

第二行将强制您登录,之后在用户选择授予权限后请求权限,您将在帖子URL中给出 - fb_si_session_key。但是工具包开发人员没有采取足够的措施将其带给您: - (

所以你几乎没有选择。简单的就是这样做:

FS.Logoff();
FS.ConnectToFacebook();

您将看到登录屏幕一秒钟,然后您就可以点击它将消失的任何内容。但这次你将拥有正确的会话密钥。你可以这样得到它:

string myPermanentSessionKey =  FS.API.SessionKey;

如果您不想再次显示烦人的屏幕,则几乎没有选项,所有选项都与更改工具包的源文件有关。我不打算在这里进入它,但只是告诉你一个简单的选项:在facebookconnect()函数中,当我向它发送true时,我将其更改为接收参数(isShow),它表现正常,当我发送false时它 - 它跳过formLogin.ShowDialog();

它正在运作。