Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FB LoginWith ReadPermissions和registerCallback With login按钮_Android_Facebook_Facebook Login - Fatal编程技术网

Android FB LoginWith ReadPermissions和registerCallback With login按钮

Android FB LoginWith ReadPermissions和registerCallback With login按钮,android,facebook,facebook-login,Android,Facebook,Facebook Login,对这件事很生气。我尝试登录FB,同时检索用户信息 FB登录工作正常,应用程序更改为FB,显示应用程序请求的权限,按“接受”后,返回到我的应用程序。但从未调用registerCallback。我的错在哪里?这是我的代码: FacebookSdk.sdkInitialize(getApplicationContext()); CallbackManager mCallbackManager = CallbackManager.Factory.create();

对这件事很生气。我尝试登录FB,同时检索用户信息

FB登录工作正常,应用程序更改为FB,显示应用程序请求的权限,按“接受”后,返回到我的应用程序。但从未调用registerCallback。我的错在哪里?这是我的代码:

        FacebookSdk.sdkInitialize(getApplicationContext());
        CallbackManager mCallbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().logInWithReadPermissions(
                this,
                permissionNeeds);

        LoginManager.getInstance().registerCallback(mCallbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        Log.e("dd", "SUCCESS");

                        GraphRequest.newMeRequest( loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {

                                    @Override
                                   public void onCompleted(JSONObject json, GraphResponse response) {
                                        if (response.getError() != null) {
                                            System.out.println("ERROR");
                                        } else {
                                            System.out.println("Success");
                                            try {
                                                String jsonresult = String.valueOf(json);
                                                System.out.println("JSON Result" + jsonresult);
                                                String str_email = json.getString("email");
                                                String str_id = json.getString("id");
                                                String str_firstname = json.getString("first_name");
                                                String str_lastname = json.getString("last_name");
                                            } catch (JSONException e) {
                                                e.printStackTrace();
                                            }
                                        }
                                    }
                                }).executeAsync();
                    }

                    @Override
                    public void onCancel() {

                        Log.e("dd", "facebook login canceled");

                    }


                    @Override
                    public void onError(FacebookException e) {


                        Log.e("dd", "facebook login failed error");

                    }
                });
FacebookSdk.sdkinInitialize(getApplicationContext());
CallbackManager mCallbackManager=CallbackManager.Factory.create();
LoginManager.getInstance().logInWithReadPermissions(
这
许可证需求);
LoginManager.getInstance().registerCallback(mCallbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
Log.e(“dd”,“成功”);
GraphRequest.NewMereRequest(loginResult.getAccessToken(),new GraphRequest.GraphJSONObjectCallback()){
@凌驾
未完成公共void(JSONObject json,GraphResponse响应){
if(response.getError()!=null){
System.out.println(“错误”);
}否则{
System.out.println(“成功”);
试一试{
String jsonresult=String.valueOf(json);
System.out.println(“JSON结果”+jsonresult);
String str_email=json.getString(“email”);
String str_id=json.getString(“id”);
String str_firstname=json.getString(“first_name”);
String str_lastname=json.getString(“last_name”);
}捕获(JSONException e){
e、 printStackTrace();
}
}
}
}).executeAsync();
}
@凌驾
公开作废{
Log.e(“dd”,“facebook登录已取消”);
}
@凌驾
公共无效onError(FaceBook例外e){
Log.e(“dd”,“facebook登录失败错误”);
}
});
编辑:

找到了,下面的代码丢失了,现在我在登录后获得了用户信息

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    mCallbackManager.onActivityResult(requestCode, resultCode, data);
}

这是片段还是活动的内部?您需要重写onActivityResult方法。这是内部活动。请参阅我的编辑,正如您所提到的,这是缺少的onActivityResult