Solicitud de correo electrónico con Twitter

Estoy tratando de solicitar el correo electrónico de un usuario usando el inicio de sesión de twitter y siempre me devuelve el siguiente error

com.twitter.sdk.android.core.TwitterException: Your application may not have access to email addresses or the user may not have an email address. To request access, please visit https://support.twitter.com/forms/platform. 

He seguido todos los pasos para desarrollar esta solicitud de correo electrónico en la página de la tela. He solicitado el acceso a twitter y me han contestado con un correo electrónico de confirmación y he configurado todos los elementos necesarios en mi panel de control de administración de aplicaciones de Twitter, pero la solicitud de correo electrónico siempre me envía al método de fallo y lanzar esa excepción.

¿alguna idea?

 private void twitterConfig() { TwitterAuthConfig authConfig = new TwitterAuthConfig("Consumer Key (API Key)", "Consumer Secret (API Secret"); Fabric.with(this, new Twitter(authConfig)); twitterLoginButton.setCallback(new Callback<TwitterSession>() { @Override public void success(Result<TwitterSession> result) { TwitterSession session = result.data; String msg = "@" + session.getUserName() + " logged in! (#" + session.getUserId() + ")"; TwitterAuthClient authClient = new TwitterAuthClient(); authClient.requestEmail(session, new Callback<String>() { @Override public void success(Result<String> result) { System.out.println(); } @Override public void failure(TwitterException exception) { notificationManager.showMessage(getString(R.string.error_cant_get_login)); } }); } @Override public void failure(TwitterException exception) { notificationManager.showMessage(getString(R.string.error_generic)); } }); } 

Como se indica en la parte inferior de la documentación :

Incluso si el usuario concede acceso a su dirección de correo electrónico, no está garantizado que recibirá una dirección de correo electrónico. Por ejemplo, si alguien se ha registrado en Twitter con un número de teléfono en lugar de una dirección de correo electrónico, el campo de correo electrónico puede estar vacío. Cuando esto sucede, el método de fallo se llamará porque no hay ninguna dirección de correo electrónico disponible.

I Sí Es cierto. Debe cambiar la configuración de permisos de la ficha de permiso dentro de la aplicación seleccionada.

https://apps.twitter.com/app/PROJECT_ID/permissions

Introduzca aquí la descripción de la imagen Permisos adicionales

Estos permisos adicionales requieren que proporcione URLs a la política de privacidad y los términos de servicio de su aplicación o servicio. Puede configurar estos campos en la Configuración de la aplicación. Solicitar direcciones de correo electrónico a los usuarios

Eso permitirá después de algunas horas / min una vez que cambie.

 TwitterAuthClient authClient = new TwitterAuthClient(); authClient.requestEmail(session, new Callback < String > () { @Override public void success(Result < String > result) { // Do something with the result, which provides the email address Log.v("log_tag", "success email true > " + result.data); } @Override public void failure(TwitterException exception) { // Do something on failure Log.v("log_tag", "success email false > " + exception); } }); 

Como dijo neeeko No está garantizado que usted recibirá una dirección de correo electrónico.

Gracias

  • Twitter no funciona con twitter4j en android
  • Twitter SDK requestCode
  • Abrir página en Facebook, Twitter y Google Plus desde otra aplicación - Android
  • Android - Compartir en Facebook, Twitter, Correo, ecc
  • Android envía mensajes directos de Twitter a través de la intención
  • Ejemplo de xAuth de Twitter de Android con twitter4j
  • ¿Cómo abrir Twitter y Facebook con Phonegap?
  • ¿Cómo compartir el enlace a través de twitter en android?
  • Twitter para Android como menú rápido de desplazamiento rápido
  • La conexión de twitter falló
  • Cómo recuperar el nombre de un usuario de Twitter usando Twitter 4j
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.