fields example consumir javascript facebook

javascript - example - fb.api fields



Facebook Graph API no devolverá la dirección de correo electrónico (6)

Editar: no duplicado, porque:

  • Tengo el permiso
  • Depurado el token
  • El código funciona con el usuario de prueba

Por favor, no marques como duplicado sin leer.

Estoy tratando de obtener la dirección de correo electrónico del usuario, pero no lo entiendo. En el explorador de API de gráfico, cuando pulso enviar, el campo de correo electrónico se pone gris y dice que:

el campo está vacío o no permitido por token de acceso

Pero cuando depuro el token tiene permiso de correo electrónico concedido

Mi perfil tiene una dirección de correo electrónico.

Actualización: probé https://developers.facebook.com/tools/console/ . Mi perfil no devuelve nada, incluso en otra computadora. Pero el mismo código devuelve el correo electrónico, el nombre y el uid de otra cuenta.

Código:

<fb:login-button scope="email"> Grant Permissions to make more examples work </fb:login-button> <button onclick="doPost()">Post to Stream</button> <script> function userData() { FB.api(''/me?fields=name,email'', Log.info.bind(''/me callback'')); }; FB.getLoginStatus(function(response) { if (response.status === ''connected'') { userData(); } }); </script>

Es posible bloquear su correo electrónico para que nadie pueda tenerlo? Incluso cuando concedo el permiso?


Después de que obtuve mi informe de error marcado como duplicado, y leí todas las publicaciones y enlaces allí, obtuve lo que causó este problema para mí y cómo solucionarlo.

El problema Facebook a veces parece olvidar cuál es tu correo electrónico principal en la API de gráfico (pero aún está ahí en las preferencias).

Solución El usuario afectado debe eliminar el correo electrónico, guardar la configuración, luego volver a agregar la dirección, volver a confirmarla y luego hacerla primaria. Esto solucionó mi cuenta tanto en mi aplicación de sandbox como en otras aplicaciones donde el inicio de sesión de Facebook no solía funcionar.


El nuevo gráfico de Facebook requiere ámbitos agregados en la solicitud / me de la siguiente manera:

/ me? fields = email, fecha de cumpleaños, ubicación, localidad, age_range, currency, first_name, last_name, name_format, gender & access_token =



La answer Marcus me lleva al verdadero problema al que me enfrentaba.

Al depurar con la herramienta Facebook Explorer, pude descubrir que debía establecer el alcance del correo electrónico en el método FB.login() .

FB.login(function(response) { if (response.status === ''connected''){ FB.api(''/me?fields=id,email,name'', function(data) { console.log( data.email ) // it will not be null ;) }) }, {scope: ''email''});

No está del todo claro en la guía de Quickstart y espero que ayude a otra persona también.


Tuve el mismo problema mientras desarrollaba el botón de inicio de sesión de fb para mi sitio. Incluso tuve permisos de configuración para mi aplicación aquí:

https://developers.facebook.com/apps/<my-app-ID>/permissions

y estaba funcionando bien para ciertos casos iniciales, es decir, estaba dando un correo electrónico (lo probé en mi propia cuenta y estaba dando mi correo electrónico). Entonces, de repente, comenzó a reflejar ningún correo electrónico. Después de dos horas de navegación, me di cuenta de que había un problema con el token de acceso como cuando ingresé en este enlace:

https://developers.facebook.com/tools/explorer/<your-fb-id>/?method=GET&path=100002451127858%3Ffields%3Did%2Cemail

Actualice su-fb-id con su id y vaya al enlace de arriba. Haga clic en ''Obtener ficha de acceso''. En la pestaña que se abre, haga clic en ''Permisos extendidos'' y en eso, elija ''correo electrónico'' y envíe. Ahora, prueba tu consulta nuevamente. Definitivamente funcionará, tanto en la consola como en su sitio web. ¡Aclamaciones! :)


Tuve el mismo problema y creo que descubrí por qué: si el usuario tiene un correo electrónico no confirmado en Facebook (es decir, Facebook le envió un correo de validación a su dirección de correo electrónico pero no respondió) Facebook NO le enviará ese correo electrónico a su aplicación incluso si él le dio los permisos de correo electrónico (!!!).

Entonces, lo que hice fue usar su correo electrónico de Facebook si tiene un nombre de usuario (es decir, [email protected]).