使用 WebBrowser 的 Facebook WPF 应用程序注销

Facebook WPF Application Logout using WebBrowser

我正在为我在大学的高级设计项目开发一个 Facebook WPF 应用程序。在此之前,我从未用 C# 编写过代码或开发过 WPF 应用程序。现在我正在尝试实现注销功能。我正在使用 WebBrowser 来执行此操作,文档似乎说执行此操作的方法是导航到:

https://www.facebook.com/logout.php?next={redirectURI}&access_token={token}

在浏览器中,花括号中的部分是变量。出于某种原因,每次我这样做都会让我回到 Facebook 主页(新闻提要)。这是由于 Facebook 近年来所做的更改还是我的错误?通过 Web 浏览器注销的替代方法,例如替代注销 URL,也将受到赞赏。

对于 FB SDK V6,存在一些细微差别。我将深入研究您需要在代码中验证的一些事项。您的代码以前可能适用,但今天您应该进行以下更改,前提是您还没有这样做:

  1. 您代码中的 redirectURI 需要更改为“http://www.facebook.com”。标准重定向 URI(包括与您的访问令牌生成相关联的那些)似乎不再有效。

  2. 您还需要确保您的 redirectURI 是绝对 URI。有一个非常简单的方法可以做到这一点,我将在下面的代码中展示。

综合起来,此代码将通过 WebBrowser 适用于当前的 FB C# SDK:

var fb = new FacebookClient();
var logoutURL = fb.GetLogoutUrl(new { access_token = {userAccessToken}, next = "https://www.facebook.com/"});
WebBrowser1.Navigate(logoutURL.AbsoluteUri);

最后要注意的是,在我的代码中,我选择请求 logoutURL 而不是对其进行硬编码。看起来在进行更改后您的 logoutURL 仍然是正确的,但检索 url 以帮助确保正确性可能是有益的。祝你的项目好运。