首页 > 解决方案 > facebook登录集成Android中的错误

问题描述

我已经完成了 https://developers.facebook.com/docs/facebook-login/android%20中所述的所有步骤, 我也得到了响应,但是当我尝试将个人资料图像显示到图像视图时,我得到了一个像这样的错误

GraphResponse:{HttpStatus:400,errorCode:100,subErrorCode:33,errorType:GraphMethodException,errorMessage:不支持的获取请求。ID 为“3282910721234”的对象不存在,由于缺少权限而无法加载,或者不支持此操作。请阅读https://developers.facebook.com/docs/graph-api}上的 Graph API 文档

有人可以帮我吗?

我写的代码

loginButton = (LoginButton) findViewById(R.id.login_button);
        loginButton.setPermissions(Arrays.asList(EMAIL,"public_profile,user_gender"));
        // If you are using in a fragment, call loginButton.setFragment(this);

        // Callback registration
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Log.d("InLogin","Successful Login");
                //Picasso.get().load("https://graph.facebook.com/" + loginResult.getAccessToken().getUserId()+ "/picture?type=large").into(image);
                // App code
            }

            @Override
            public void onCancel() {
                // App code
                Log.d("InLogin","Successful Logout");
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
                Log.d("InLogin", "Error Occurred");
            }
        });
    }
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
        GraphRequest gr = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(JSONObject object, GraphResponse response) {
                if(object != null)
                Log.d("Response",object.toString());
                try {
                       name.setText( object.getString("first_name") + object.getString("last_name") );
                       Log.d("profile",object.getString("id"));
                       String userId = object.getString("id");
                    Picasso.get().load("https://graph.facebook.com/" + userId+ "/picture?type=large").into(image);
                    Log.d("profile1",object.getString("id"));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
        Bundle bd=new Bundle();
        bd.putString("fields","id,first_name,last_name,email,gender");
        gr.setParameters(bd);
        gr.executeAsync();
    }

我希望我的个人资料图片应与名称输出一起出现:

在此处输入图像描述

标签: androidfacebookfacebook-graph-apipicasso

解决方案


推荐阅读