0

我有一个 Silverlight 应用程序,用户将用作信息亭应用程序。一个用户会出现,使用该应用程序,登录 Facebook 并做他的事情,然后下一个用户会出现并重新启动该过程,同时登录 Facebook 并做他的事情。

问题是,我无法让第一个用户退出 Facebook。

我在我的应用程序中使用网络浏览器控件,我知道这有点过时了,但我按照 Prabir 博客上的说明进行操作,http: //blog.prabir.me/post/Facebook-CSharp-SDK- Logout.aspx,让我的注销功能正常工作。

这是我的注销功能:

    private void SetFacebookLogoutSource()
    {
        var fbClient = new Facebook.FacebookClient();

        var logoutParameters = new Dictionary<string, object>
                  {
                      { "next", GenerateLoginUrl(fbClient, "publish_actions").AbsoluteUri }
                  };

        var logoutUrl = fbClient.GetLogoutUrl(logoutParameters);

        webBrowser.Navigate(logoutUrl);
    }

但这只是将我带到最后登录的用户 Facebook 墙。

GenerateLoginUrl 方法的工作原理是我第一次使用它来获取登录 URL。

有任何想法吗?

谢谢,格雷格。

4

1 回答 1

0

看起来 Facebook 需要一个 access_token 才能注销(不过,如果我错了,请纠正我),这对我有用:

private void SetFacebookLogoutSource()
{
    var fbClient = new Facebook.FacebookClient();

    var logoutParameters = new Dictionary<string, object>
              {
                  { "next", GenerateLoginUrl(fbClient, "publish_actions").AbsoluteUri },
                  { "access_token", [user's_access_token] }
              };

    var logoutUrl = fbClient.GetLogoutUrl(logoutParameters);

    webBrowser.Navigate(logoutUrl);
}

我现在有另一个问题......如果他们不批准我的应用程序的权限,我不会获得 access_key,所以我无法将它们注销,它们处于某种不确定状态!使用 Facebook API 的乐趣 :)

/格雷格

于 2012-09-21T09:23:55.027 回答