Получение неверной области видимости для имени, фамилии и фейсбука - PullRequest
0 голосов
/ 25 мая 2018

Я использую этот код, но получаю сообщение об ошибке неверной области действия

Я хотел бы получить доступ к этому имени, фамилии и электронной почте.

Может кто-нибудь помочь мне с тем, что не так в этом.

это из-за изменения разрешения в facebook ??

или что-то еще?

сделатьМне нужно добавить что-то еще.

    public class MainActivity extends AppCompatActivity {

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

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        callbackManager = CallbackManager.Factory.create();

        final LoginButton loginButton= (LoginButton)findViewById(R.id.loginButton);
        loginButton.setReadPermissions(Arrays.asList("email","name"));
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {


                String accessToken = loginResult.getAccessToken().getToken();

                GraphRequest request= GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                        progressDialog.dismiss();
                        getData(object);
                    }
                });
                Bundle parameters = new Bundle();
                parameters.putString("fields","id,email,first_name,last_name");
                request.setParameters(parameters);
                request.executeAsync();
            }
        });

    }


    private void getData(JSONObject object)
    {
        try{
            email.setText(object.getString("email"));
            first_name.setText(object.getString("first_name"));
            last_name.setText(object.getString("last_name"));
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

Я передал имя в разрешении с электронной почтой, которая не требуется после удаления, это работало.Спасибо за ваши ответы

0 голосов
/ 25 мая 2018
loginButton.setReadPermissions("public_profile");

установите это разрешение и используйте это

protected void getUserDetails(LoginResult loginResult) {
        GraphRequest data_request = GraphRequest.newMeRequest(
                loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(
                            JSONObject json_object,
                            GraphResponse response) {

   //here is your login is success now your requirement is start From here
   //do your work
    Log.e("String Response from Facebook:>",json_object.toString())


                    }

                });
        Bundle permission_param = new Bundle();
  //width and height is optional parameters
        permission_param.putString("fields", "id,name,email,picture.width(120).height(120)");
        data_request.setParameters(permission_param);
        data_request.executeAsync();
0 голосов
/ 25 мая 2018

вместо этого

first_name.setText(object.getString("first_name"));
            last_name.setText(object.getString("last_name"));
        }

вы должны получить имя непосредственно от facebeook как

 facebookUser.name = object.getString("name");

Попробуйте и проверьте его, и чтобы получить имя и фамилию, вы должны разделить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...