Android 使用ParseFacebookUtil.Login()登录facebook返回空用户和异常无效日期
我按照指示使用正确的app\u id、parse\u app\u id、parse\u client\u id设置了我的android项目,甚至使用它注册了一个新帐户并登录。但是facebook登录根本不起作用 以下是我的设置(更新为Parse-1.9.1和Facebook v4.0.1): 在我的应用程序build.gradle中:Android 使用ParseFacebookUtil.Login()登录facebook返回空用户和异常无效日期,android,facebook,parse-platform,facebook-login,Android,Facebook,Parse Platform,Facebook Login,我按照指示使用正确的app\u id、parse\u app\u id、parse\u client\u id设置了我的android项目,甚至使用它注册了一个新帐户并登录。但是facebook登录根本不起作用 以下是我的设置(更新为Parse-1.9.1和Facebook v4.0.1): 在我的应用程序build.gradle中: compile project(':ParseLoginUI') compile 'com.facebook.android:facebook-android-s
compile project(':ParseLoginUI')
compile 'com.facebook.android:facebook-android-sdk:4.0.1'
在ParseLoginUI项目中,它的build.gradle(不是从repo复制的更改):
单击登录按钮将运行:
facebookLoginButton = (Button) view.findViewById(R.id.fb_auth_button);
facebookLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onLoadingListener.onLoadingStart(false); // Facebook login pop-up already has a spinner
if (config.isFacebookLoginNeedPublishPermissions()) {
ParseFacebookUtils.logInWithPublishPermissionsInBackground(getActivity(),
config.getFacebookLoginPermissions(), facebookLoginCallbackV4);
} else {
ParseFacebookUtils.logInWithReadPermissionsInBackground(getActivity(),
config.getFacebookLoginPermissions(), facebookLoginCallbackV4);
}
}
});
private LogInCallback facebookLoginCallbackV4 = new LogInCallback() {
@Override
public void done(ParseUser user, ParseException e) {
if (isActivityDestroyed()) {
return;
}
if (user == null) {
//loadingFinish();
if (e != null) {
Logger.d(getString(com.parse.ui.R.string.com_parse_ui_login_warning_facebook_login_failed) +
e.toString());
}
UIUtils.getSoldaToast(
getActivity(),
getString(com.parse.ui.R.string.com_parse_ui_facebook_login_failed_toast),
Gravity.CENTER).show();
} else if (user.isNew()) {
GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject fbUser,
GraphResponse response) {
/*
If we were able to successfully retrieve the Facebook
user's name, let's set it on the fullName field.
*/
ParseUser parseUser = ParseUser.getCurrentUser();
if (fbUser != null && parseUser != null
&& fbUser.optString("name").length() > 0) {
parseUser.put(USER_OBJECT_NAME_FIELD, fbUser.optString("name"));
parseUser.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e != null) {
Logger.d(getString(
com.parse.ui.R.string.com_parse_ui_login_warning_facebook_login_user_update_failed) +
e.toString());
}
loginSuccess();
}
});
}
loginSuccess();
}
}
).executeAsync();
} else {
loginSuccess();
}
}
};
它总是返回null user&ParseException表示无效日期:
结帐,但仍然不知道我做错了什么
顺便说一句,我肯定我会注释掉Parse.enableLocalDatastore(这个)代码>使它不是因为。而我唯一请求的facebook权限是电子邮件
,所以这个电话是
ParseFacebookUtils.logInWithReadPermissionsInBackground(
getActivity(),
config.getFacebookLoginPermissions(),
facebookLoginCallbackV4
);
更新到最新版本的ParseUI android后,问题仍然存在
有人经历过吗?我终于解决了这个问题!朋友建议我从我的facebook帐户中删除应用程序,以确保重新启动。然后卸载Android应用程序重新安装。糟糕!它起作用了!谢谢你,好的
希望这有帮助 在使用最新的SDK时是否看到相同的错误?可能是一个bug,你可以。你找到这个问题的解决方案了吗?很高兴听到有人问…但是没有。我有没有办法只使用纯Facebook SDK登录Facebook和解析SDK进行电子邮件注册/登录?我讨厌把它们混在一起,让apk变得更胖。我已经更新到Parse-1.9.1和Facebook sdk v4.0.1。问题仍然存在!我甚至无法使用示例应用程序登录。。。
ParseFacebookUtils.logInWithReadPermissionsInBackground(
getActivity(),
config.getFacebookLoginPermissions(),
facebookLoginCallbackV4
);