目前正在关注本教程“http://blog.grafixartist.com/facebook-login-with-parse-part-1/”以及其他网页上的一些插件。
以下是我的LoginActivity代码:
public void parseFbLogin(){
ParseFacebookUtils.initialize(this);
FacebookSdk.sdkInitialize(getApplicationContext());
List<String> permissions = Arrays.asList("basic_info", "user_about_me",
"user_relationships", "user_birthday", "user_location");
ParseFacebookUtils.logInWithReadPermissionsInBackground(LoginActivity.this, permissions, new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if (user == null) {
Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
} else if (user.isNew()) {
Log.d("MyApp", "User signed up and logged in through Facebook!");
} else {
Log.d("MyApp", "User logged in through Facebook!");
// getUserDetailsFromParse();
}
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ParseFacebookUtils.onActivityResult(requestCode, resultCode, data);
}
1.在ParseFbLogin中,通常它们会返回null但有时可以正常工作。 (允许注册并签名)。
2.无论何时按第二次,应用程序都会崩溃。以下是错误消息
java.lang.IllegalStateException: Callback already registered for <facebook>: com.parse.ParseFacebookUtils$1@3f0d35a3
at com.parse.ParseAuthenticationManager.register(ParseAuthenticationManager.java:35)
at com.parse.ParseUser.registerAuthenticationCallback(ParseUser.java:1082)
at com.parse.ParseFacebookUtils$ParseUserDelegateImpl.registerAuthenticationCallback(ParseFacebookUtils.java:562)
at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:109)
at com.parse.ParseFacebookUtils.initialize(ParseFacebookUtils.java:92)
at komi2015.shoppingu.Login.LoginActivity.parseFbLogin(LoginActivity.java:90)
at komi2015.shoppingu.Login.LoginActivity$4.onClick(LoginActivity.java:83)
at android.view.View.performClick(View.java:5254)
at android.view.View$PerformClick.run(View.java:21179)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6843)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
答案 0 :(得分:3)
我找到了答案。 问题是因为我在错误的类中初始化parsefacebook和facebooksdk(我应该在应用程序初始化)。