使用解析成功登录后,需要获取twitter用户配置文件数据。请参考以下代码:

ParseTwitterUtils.logIn(SignupActivity.this, new LogInCallback() {
        @Override
        public void done(ParseUser parseUser, ParseException e) {
            if (parseUser == null) {
                Log.d("MyApp", "Uh oh. The user cancelled the Twitter login.");
            } else if (parseUser.isNew()) {
                Log.d("MyApp", "User signed up and logged in through Twitter!");
            } else {
                Log.d("MyApp", "User logged in through Twitter!");
            }
        }
    });


我尝试从登录后返回的Parseuser对象获取值,但显示为空。
建议登录后该怎么办。

谢谢

最佳答案

首先,您确定已登录吗?要验证这一点,请确保控制台中有“用户通过Twitter登录!”日志,如果是这样,则可以添加:

String twitter = ParseTwitterUtils.getTwitter().getScreenName(); Log.d(MainActivity.class.getSimpleName(), twitter + "");

在您的else if和else块下,或者您可以用以下代码替换代码:

ParseTwitterUtils.logIn(SignupActivity.this, new LogInCallback() { @Override public void done(ParseUser parseUser, ParseException e) { if (parseUser == null) { Log.d("MyApp", "Uh oh. The user cancelled the Twitter login."); } else if (parseUser.isNew()) { Log.d("MyApp", "User signed up and logged in through Twitter!"); String twitter = ParseTwitterUtils.getTwitter().getScreenName(); Log.d(MainActivity.class.getSimpleName(), twitter + ""); } else { Log.d("MyApp", "User logged in through Twitter!"); String twitter = ParseTwitterUtils.getTwitter().getScreenName(); Log.d(MainActivity.class.getSimpleName(), twitter + ""); } } });

如果您的类不是“ MainActivity”,则在Log.d中键入它。

如果您在唱歌时遇到问题,也可以尝试以下操作:

user = new ParseUser();
user.setUsername("Username");
user.setPassword("password");
user.setEmail("[email protected]");

user.signUpInBackground(new SignUpCallback() {
    public void done(ParseException e) {
        if (e == null) {
            // Hooray! Let them use the app now.
        } else {
            // Sign up didn't succeed. Look at the ParseException
            // to figure out what went wrong
        }
    }
});


if (!ParseTwitterUtils.isLinked(user)) {
    ParseTwitterUtils.link(user, this, new SaveCallback() {
        @Override
        public void done(ParseException ex) {
            if (ParseTwitterUtils.isLinked(user)) {
                Log.d("MyApp", "Woohoo, user logged in with Twitter!");

                String twitter = ParseTwitterUtils.getTwitter().getScreenName();
                Log.d(MainActivity.class.getSimpleName(), twitter + "");
            }
        }
    });
}


定义“ ParseUser用户”;在onCreate方法之外。

10-08 17:24