使用parse.com在android中获取twitter数据

时间:2015-07-22 21:21:57

标签: android twitter parse-platform

使用parse成功登录后需要获取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对象中获取值,但它显示为null。 建议登录后我该怎么办。

由于

1 个答案:

答案 0 :(得分:3)

首先关闭:您确定已登录吗?要验证这一点,请确保在您的控制台中有Log"用户通过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@example.com");

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方法之外。