2012-09-19 117 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