2015-08-30 1 views
1

Im интегрированный синтаксический анализ и фейсбук sdk для моего проекта и его работы, и я получаю идентификатор и имя пользователя пользователя facebook . Моя проблема в том, что я не могу получить что-либо еще, например, по электронной почте или полу или любым другим информацию даже я добавляю для них разрешение.android parse sdk facebook login не может получить адрес электронной почты

это разрешение:

private static final List<String> Permissions = Arrays.asList("public_profile","email","user_friends","user_birthday","user_location","user_relationships"); 

код нажатия кнопки:

Button mBtnFb=(Button)findViewById(R.id.mBtnFb); 

    mBtnFb.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ParseFacebookUtils.logInWithReadPermissionsInBackground(MainActivity.this,Permissions , new LogInCallback() { 
       @Override 
       public void done(ParseUser user, ParseException err) { 
        if (user == null) { 
         Log.d("MyApp", "The user cancelled the Facebook login."); 
        } else if (user.isNew()) { 
         Log.d("MyApp", "User signed up and logged in through Facebook!"); 
         getUserDetailsFromFB(); 
        } else { 
         Log.d("MyApp", "User logged in through Facebook!"); 
         getUserDetailsFromParse(); 
        } 
       } 
      }); 
     } 
    }); 

детали пользователя получить от Facebook:

public String name,email; 
ParseUser parseUser=new ParseUser(); 

private void getUserDetailsFromFB() { 
    GraphRequest request = GraphRequest.newMeRequest(
      AccessToken.getCurrentAccessToken(), 
      new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(
         JSONObject object, 
         GraphResponse response) { 

        try { 
         String id=object.getString("id"); 
         String name=object.getString("name"); 
         String email=object.getString("email"); 
         String gender=object.getString("gender"); 
         String birthday=object.getString("birthday"); 

        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 
    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "id,name,link,email"); 
    request.setParameters(parameters); 
    request.executeAsync(); 

} 

я получаю только идентификатор и имя, и любой другой информации дать Я исключаю любое предложение?

+0

визит эти чернила http://stackoverflow.com/a/29379794/5202007 или http://stackoverflow.com/a/13205830/5202007 – Tauqir

+0

в тех, 2 решение не с помощью синтаксического анализа IM используя синтаксический анализ, поскольку они включают в себя документацию, а также для FB, поэтому он должен быть не loginbutton, а также не использовать сеанс – FarOoOosa

+0

Я бы попробовал тот же вызов с тем же токеном доступа в API-интерфейсе Graph API и посмотрел, если вы вернете данные, если не тогда это не проблема с SDK, а просто у вас нет доступа к данным (по электронной почте) – ifaour

ответ

1

Я был точно такой же вопрос, вот как я ее решил:

  1. Перейти к https://developers.facebook.com/
  2. Нажмите "Инструменты & Support" (в верхнем меню)
  3. Нажмите "Graph API Explorer" (в меню левой стороны под названием «Инструменты»)
  4. Где говорится «Приложение: API-интерфейс API диаграмм» (в правом верхнем углу), измените его на приложение, с которым вы работаете.
  5. Где он говорит: «Получить токен» нажмите кнопку «Получить пользователя маркер доступа»
  6. Tick «user_about_me»
  7. Нажмите на «Расширенные права доступа»
  8. Tick «электронная почта»
  9. Нажмите кнопку «Получить доступ Токен»
  10. Facebook может подтвердить ваше согласие.

Это должно затем предоставить вашему приложению разрешение на получение адреса электронной почты пользователя facebook.

Надеюсь, это поможет.

Привет, Nathanial