【发布时间】:2011-09-17 15:55:45
【问题描述】:
我想我已经阅读了有关在桌面应用程序中注销 Facebook 的所有内容。到目前为止没有任何效果。
具体来说,我想注销用户,以便他们可以切换身份,例如在家共享电脑的人可以通过自己的 Facebook 帐户使用该软件,但没有机会切换帐户,非常混乱。 (尚未测试切换 Windows 用户帐户,因为这对最终用户的要求实在是太多了,而且应该没有必要。)
现在,我应该说我已将应用程序设置为使用这些权限:
string[] permissions = new string[] { "user_photos", "publish_stream", "offline_access" };
因此,其中包含“offline_access”。我不知道这是否/应该影响注销。
同样,我退出的目的仅仅是切换用户。 (如果有更好的方法,请告诉我。)
声称的解决方案似乎是:
- 使用 JavaScript SDK (FB.logout())
- 改用“m.facebook.com”
- 创建您自己的 URL(并可能使用 m.facebook.com)
- 创建您自己的 URL 并使用会话变量(在 ASP.NET 中)
第一个有点傻。为什么在使用 C# 时使用 JavaScript?这是一种倒退,在桌面应用程序中有很多额外的开销。 (我没有尝试过,因为在桌面应用程序中这样做简直令人作呕。)如果有人可以确认这是唯一的工作方法,请这样做。我拼命地试图避免它。
第二个不起作用。也许它在过去有效,但我无数次尝试让它工作都失败了。
第三个不起作用。我已经尝试了无数种变化,但成功率为零。
最后一个选项不适用于桌面应用程序,因为它不是 ASP.NET,而且您没有可使用的会话变量。
Facebook C# SDK 注销也不再有效。即
public FacebookLoginDialog(string appId, string[] extendedPermissions, bool logout)
{
IDictionary<string, object> loginParameters = new Dictionary<string, object>
{
{ "response_type", "token" },
{ "display", "popup" }
};
_navigateUri = FacebookOAuthClient.GetLoginUrl(appId, null, extendedPermissions, logout, loginParameters);
InitializeComponent();
}
我记得它过去有效,但现在不再有效。 (这真的让我很困惑......)
它现在将用户定向到 Facebook 移动页面,用户必须在该页面手动注销。
现在,我可以进行浏览器自动化以自动单击用户的注销链接,但是,如果 Facebook 更新移动 UI,这很容易中断。它也很混乱,并且可能比尝试使用 JavaScript SDK FB.logout() 方法更糟糕(虽然不是很多)。
我搜索了某种文档,但是在 Facebook 开发人员文档中找不到任何说明如何注销应用程序的内容。
有没有人解决过这个问题,或者看过任何可以移植到 Facebook C# SDK 的文档?
如果有人能指出一些可以使用它的文档,我当然愿意使用 WebClient 或 HttpClient/Response。我根本无法找到任何显示这种方法如何工作的低级文档。
提前感谢您提供任何建议、指示或链接。
【问题讨论】:
标签: facebook facebook-c#-sdk logout