1

WP7アプリでC#facebook sdkを使い始めましたが、機能しますが、ログインできるのは1回だけです。Webブラウザーを開き、Facebookのログインページをロードするクラスがあります。私は自分の情報を入力します、そしてそれは私がしたいことをします。しかし、もう一度ログインしようとすると、以前に提供した情報が記憶され、他のFacebookアカウントをテストできません。別のアカウントでログインできるように古いデータを消去する方法を知っている人はいますか?

4

2 に答える 2

1

別のアカウントでログイン操作を行うには、ログアウト操作を行う必要があります。ログアウトを行うには、このコードを試してください。

public partial class LogoutPage : PhoneApplicationPage
{
    private Uri navigateUrl;
    public FacebookOAuthResult FacebookOAuthResult { get; private set; }

    public LogoutPage()
    {
        var appId = "173963872698818";
        string[] extendedPermissions = new[] { "user_about_me", "offline_access" };
        var oauth = new FacebookOAuthClient { AppId = appId };

        var parameters = new Dictionary<string, object>
                {
                    { "response_type", "token" },
                    { "display", "wap" }    //"popup works, touch not works
                };

        if (extendedPermissions != null && extendedPermissions.Length > 0)
        {
            var scope = new StringBuilder();
            scope.Append(string.Join(",", extendedPermissions));
            parameters["scope"] = scope.ToString();
        }

        var loginUrl = oauth.GetLoginUrl(parameters);
        var logoutParameters = new Dictionary<string, object>
                                       {
                                           { "next", loginUrl }
                                       };            

        //Redirect to the following url.
        // https://www.facebook.com/logout.php?next=YOUR_URL&access_token=ACCESS_TOKEN
        //this.navigateUrl = oauth.GetLogoutUrl(logoutParameters);

        var a = App.Current as App;
        string absoluteURI = " https://www.facebook.com/logout.php?next=http://www.fengshuiexplorer.host56.com&access_token=" + a.myToken;

        this.navigateUrl = new Uri(absoluteURI);

        InitializeComponent();
    }


    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        webBrowser1.Navigate(this.navigateUrl);
    }

    private void webBrowser1_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        FacebookOAuthResult result;
        if (FacebookOAuthResult.TryParse(e.Uri, out result))
        {
            this.FacebookOAuthResult = result;
            var a = App.Current as App;
            a.isLoggedIn = false;
            NavigationService.GoBack();
        }
        else
        {
            this.FacebookOAuthResult = null;
        }
    }
}
于 2013-02-28T10:47:11.923 に答える
0

または、再度ログインする前に、以下のコード スニペットを呼び出すこともできます。

await new WebBrowser().ClearCookiesAsync();
于 2014-07-18T04:15:43.430 に答える