2012-09-19 74 views
0

我有一个Silverlight应用程序,用户将使用它作为信息亭应用程序。一个用户会来,使用应用程序,登录到Facebook并做他的事情,然后下一个用户会来,并重新启动过程,也登录到Facebook和做他的事情。Facebook c#SDK注销,Silverlight

问题是,我无法从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一样。

任何想法?

谢谢, Greg。

回答

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合作的乐趣:)

/Greg