2014-02-07 137 views
0

你好我使用this example登錄Facebook使用Facebook .net sdk.Eveything現在的作品,現在我必須保存登錄按鈕狀態,即更改按鈕狀態,即從登錄到註銷,並且如果已經連接顯示FB用戶名稱。我怎樣才能做到這一點?Facebook登錄按鈕登錄後保存狀態?

+0

我設法顯示用戶配置文件並使用Facebook.Client中的控件顯示用戶的名稱。我想看看如何保存會話狀態並註銷用戶,如果他/她點擊了「註銷按鈕」? – veereev

+0

意味着,使用SDK時,您無法從Facebook註銷? – vasuy19

+0

你好,實際上一旦用戶登錄後,我再次打開應用程序,我再次看到登錄按鈕,所以用戶必須再次點擊「登錄」按鈕。我想保存狀態,即一旦用戶登錄,他就不應該再次登錄。 – veereev

回答

3

如果在保存狀態意味着你要保存像access_token信息,個人資料詳細信息等假設你要存儲access_token而已,你可以將它保存到獨立存儲:

 private void OnSessionStateChanged(object sender, Facebook.Client.Controls.SessionStateChangedEventArgs e) 
      { 
       if (e.SessionState == Facebook.Client.Controls.FacebookSessionState.Opened) 
       { 
       string fb_access_token = ((Facebook.Client.Controls.LoginButton)sender).CurrentSession.AccessToken; 
       IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
       settings["fb_token"] = fb_access_token ; 
       settings.Save(); 
       } 
      } 

並在您的應用程序可以添加一個註銷按鈕,點擊它可以從隔離存儲中刪除access_token

private void onLogOutClick(object sender, EventArgs e) 
     { 
      IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
      settings.Remove("access_token");     
      settings.Save(); 
     } 

在應用程序啓動時,您可以檢查access_token是否存在,您可以導航到另一個頁面。如果沒有,您可以重定向到登錄頁面。

private void Application_Launching(object sender, LaunchingEventArgs e) 
    { 
     IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
     if (IsolatedStorageSettings.ApplicationSettings.Contains("fb_token")) 
     {     
    // Use this access token in application for fetching other user informations 
      Uri nUri = new Uri("/Page1.xaml", UriKind.Relative); 
      RootFrame.Navigate(nUri);  
     } 
     else 
     { 
      Uri nUri = new Uri("/Login.xaml", UriKind.Relative); 
      RootFrame.Navigate(nUri); 
     }   
    } 
+0

你好,謝謝你的回答,我會盡快檢查,並讓你知道:) – veereev

+0

你能解決你的查詢嗎?你有沒有試過這個答案。希望它會幫助你:) – vasuy19

+0

非常感謝:) – veereev