Il grafico api non restituisce l'id email dell'utente

In questo codice GraphUser non restituisce il numero di posta elettronica e il numero di contatto.

@Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); uiHelper.onSaveInstanceState(outState); } private void onSessionStateChange(Session session, SessionState state, Exception exception) { if (state.isOpened()) { // userInfoTextView.setVisibility(View.VISIBLE); // Request user data and show the results Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { // Display the parsed user info String email= (String) response.getGraphObject().getProperty("email"); System.out.println("yahooooooooooo "+email); buildUserInfoDisplay(user); } } }); } else if (state.isClosed()) { Log.i(TAG, "Logged out..."); } } private String buildUserInfoDisplay(GraphUser user) { StringBuilder userInfo = new StringBuilder(""); // Example: typed access (name) // - no special permissions required userInfo.append(String.format("Name: %s\n\n", user.getName())); // Example: typed access (birthday) // - requires user_birthday permission userInfo.append(String.format("Birthday: %s\n\n", user.getBirthday())); userInfo.append(String.format("Birthday: %s\n\n", user.getBirthday())); userInfo.append(String.format("Gender: %s\n\n", user.getProperty("gender"))); userInfo.append(String.format("Iddddddd: %s\n\n", user.getId())); // Example: partially typed access, to location field, // name key (location) // - requires user_location permission userInfo.append(String.format("Location: %s\n\n", user.getLocation().getProperty("name"))); // Example: access via property name (locale) // - no special permissions required userInfo.append(String.format("Locale: %s\n\n", user.getProperty("locale"))); return userInfo.toString(); } 

  • statica null variabile quando si torna all'app
  • Come utilizzare il timestamp del server Firebase per generare la data creata?
  • Studio Android where è file gradle.properties?
  • A condizione che la dipendenza da Gradle sia AAR non JAR
  • Come proteggere gli oggetti di dati in Android / Java?
  • L'image non viene salvata nell'image del profilo
  • Allarme AlarmManager non si triggers dopo il reset del telefono
  • Aggiungi i marcatori dynamicmente su Google Maps v2 per Android
  • Come animare il riciclaggio sullo scorrimento come Google Plus / Google Newsstand?
  • Imansible risolvere un tipo di file di YouTubePlayerSupportFragment
  • Sto ricevendo un errore sulla mia risposta da Retrofit Expected BEGIN_ARRAY ma ero STRING al path 1 della colonna 1 della linea 1
  • IntelliJ IDEA - Non può build nulla, sempre get "pacchetto R non esiste"
  • 2 Solutions collect form web for “Il grafico api non restituisce l'id email dell'utente”

    Per impostazione predefinita non riceverai l'email, per l'email devi specificare l'authorization

     Session.StatusCallback statusCallback = new Session.StatusCallback() { @Override public void call(Session session, SessionState state, Exception exception) { if(session.isOpened()) { Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { @Override public void onCompleted(GraphUser user, Response response) { if(user != null) { try { System.out.println("Graph Inner Json"+user.getInnerJSONObject()); String email = user.getInnerJSONObject().getString("email"); } } } } } } YourActivityName.openActiveSession(this, true, statusCallback); 

    Questo è il nostro openActiveSession() where specifichiamo le autorizzazioni

     private static Session openActiveSession(Activity activity, boolean allowLoginUI, Session.StatusCallback statusCallback) { OpenRequest openRequest = new OpenRequest(activity); openRequest.setPermissions(Arrays.asList("user_birthday", "email")); openRequest.setCallback(statusCallback); Session session = new Session.Builder(activity).build(); if(SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) { Session.setActiveSession(session); session.openForRead(openRequest); return session; } return null; } 

    e dentro onActivityResult() non dimenticate di fare

     if(Session.getActiveSession() != null) { Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); } 

    Ho ottenuto un'altra situazione in cui ho passato tutte le autorizzazioni ma ancora ottenendo l'errore "Nessun valore per l'email". La ragione di questo è che non esiste alcuna e-mail primaria verificata per quel conto di Facebook (per vedere l'email primaria in Facebook vai a Impostazioni account -> Email). Quindi, se non esiste alcuna e-mail primaria è stata verificata per un account di Facebook allora otterrai sempre questo errore. Assicurati che ci sia un'Email di posta elettronica verificata per quel conto di Facebook che stai accedendo.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.