如何使用Parse注销/更改Twitter帐户

时间:2015-11-21 12:05:57

标签: android twitter parse-platform

我知道如何登录:

ParseTwitterUtils.logIn(loginView.getCurrentContext(), new LogInCallback() {
        @Override
        public void done(ParseUser parseUser, ParseException e) {
            if (e == null) {
                String welcomeMessage = "";
                if (parseUser.isNew()) {
                    welcomeMessage = "Hello new guy!";
                } else {
                    welcomeMessage = "Welcome back!";
                }
                loginView.showLoginSuccess(parseUser, welcomeMessage);
            } else {
                String errorMessage = "Seems we have a problem : " + e.getLocalizedMessage();
                loginView.showLoginFail(errorMessage);
            }
        }
    });

退出:

ParseUser.logOutInBackground(new LogOutCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null) {
                homeView.goLogin(true, "See you soon");
            } else {
                homeView.goLogin(false, "Error detected : " + e.getLocalizedMessage());
            }
        }
    });

但是当我想再次登录时,我没有要求我选择帐户的警告对话框(我使用webview,因为模拟器上没有安装Twitter应用程序)。

如何使用Twitter登录真正从Parse注销?

2 个答案:

答案 0 :(得分:0)

使用ParseTwitterUtils中的unlink函数: https://parse.com/docs/android/api/com/parse/ParseTwitterUtils.html#unlink(com.parse.ParseUser)

这将删除Twitter帐户和解析用户之间的链接。

混淆似乎源于api如此简单的事实。

您在登录时所做的是将Twitter帐户与解析用户相关联,并以该解析用户身份登录。然后,当您注销时,您只是退出解析用户,并且Twitter帐户仍然链接到解析用户。因此,当您再次登录时,它会自动使用Twitter帐户以解析用户身份登录。

答案 1 :(得分:0)

在iOS中,您可以在PFOauth1FlowDialog.m中修改Parse的源代码

- (void)loadURL:(NSURL *)url queryParameters:(NSDictionary *)parameters   {
    NSMutableDictionary *_parameter = [[NSMutableDictionary alloc] init];
    [_parameter setObject:@"true" forKey:@"force_login"];
    [_parameter addEntriesFromDictionary:parameters];
    _loadingURL = [[self class] _urlFromBaseURL:url queryParameters:_parameter];
    NSURLRequest *request = [NSURLRequest requestWithURL:_loadingURL];
    [_webView loadRequest:request];
}

然后一切都应该正常工作,这也适用于Android。