使用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。 建议登录后我该怎么办。
由于
答案 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方法之外。