Facebook登录按钮登录后保存状态?

时间:2014-02-07 09:16:44

标签: windows-phone-8 facebook-c#-sdk

您好我正在使用this example使用Facebook登录Facebook .net sdk.Eveything现在可以保存登录按钮状态,即更改按钮状态,即从登录到注销以及是否已连接显示FB用户的名字。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分: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);
        }           
    }