mfacebook_Callback_Manager = CallbackManager.Factory.create();
Collection<String> permissions = Arrays.asList("public_profile,email");
LoginManager.getInstance().logInWithReadPermissions(MainActivity.this,
permissions);
LoginManager.getInstance().registerCallback(mfacebook_Callback_Manager,
new FacebookCallback<LoginResult>() {.......}
loginmanager回调出错
堆栈跟踪:
07-12 21:25:10.712 2107-2107/com.factory.fbsample.dev W/System。错误:at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:191 .07-12 21:25:10.712 217-2107/com.factory.fbsample.dev W/System。$1.onActivityResult(LoginManager.java:16007-12 21:25:10.712 217-2107/com.factory.fbsample.dev W/System。callbackmanagerimpp . onactivityresult (callbackmanagerimpp .jva:8207-12 21:25:10.712 217-210/com.factory.fbsample.dev W/System。loginactivity . onactivityresult (loginactivity .java:272 .07-12 21:25:10.712 217-210/th.co. hand .hconnect.dev W/System。error: at android.app. activity . dispatchactivity . result (Activity.java:532207-12 21:5:10.712 2107-2107/com.factory.fbsample.dev W/System。error: at android.app.ActivityThread.deliverResults(ActivityThread.java:336307-12 21:5:10.712 2107-2107/com.factory.fbsample.dev W/System。error: at android.app.ActivityThread.handleSendResult(ActivityThread.java:341007-12 21:5:10.712 2107-2107/com.factory.fbsample.dev W/System。在android.app.ActivityThread.access$1100(ActivityThread.java:14107-12 2125:10.712 2107-2107/com.factory.fbsample.dev W/System。在android.app.ActivityThread$H.handleMessage(ActivityThread.java:13007-12 215:10.712 2107-2107/com.factory.fbsample.dev W/System。error: at android.os.Handler.dispatchMessage(Handler.java:99)07-12 215:10.720 2107-2107/com.factory.fbsample.dev W/System。err: at android.os. loop .loop(loop .java:137)07-12 215:10.720 2107-2107/com.factory.fbsample.dev W/System。error: at android.app.ActivityThread.main(ActivityThread.java:5103)07-12 215:10.720 2107-2107/com.factory.fbsample.dev W/System。error: at java.lang.reflect.Method。invokeNative(本地方法)07-12 215:10.720 2107-2107/com.factory.fbsample.dev W/System。error: at java.lang.reflect.Method.invoke(Method.java:525)07-12 215:10.720 2107-2107/com.factory.fbsample.dev W/System。error: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteIn.java:737 .;07-12 215:10.720 107-2107/com.factory.fbsample.dev W/System。android.internal.os. zygoteinit .main(ZygoteInit.java:553)07-12 21:25:10.720 2107-2107/com.factory.fbsample.dev W/System。错误:在dalvik.system. native . art。主要(本地方法)
你应该发布完整的错误(包括堆栈跟踪)作为你的问题的一部分。
另外,您的权限构造不正确。你应该这样做:
Collection<String> permissions = Arrays.asList("public_profile","email");
你可以用
login_button.setReadPermissions(Arrays.asList("public_profile","email"));
login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>()
{
@Override
public void onSuccess(LoginResult loginResult)
{
login_button.setVisibility(View.GONE);
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback()
{
@Override
public void onCompleted(JSONObject object, GraphResponse response)
{
Log.d("JSON", ""+response.getJSONObject().toString());
try
{
email = object.getString("email");
name = object.getString("name");
first_name = object.optString("first_name");
last_name = object.optString("last_name");
tvEmail.setText(email);
tvfirst_name.setText(first_name);
tvlast_namee.setText(last_name);
tvfull_name.setText(name);
LoginManager.getInstance().logOut();
}
catch (JSONException e)
{
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,first_name,last_name,email");
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
@Override
public void onCancel()
{
}
@Override
public void onError(FacebookException exception)
{
}
});
或者你也可以点击这个链接facebook login