2011-04-06 18 views
5

Tengo una integración funcional con facebok api mediante PHP SDK e inicio de sesión laboral. Ahora traté de agregar el permiso para el correo electrónico también con el siguiente código, pero cuando intento conectarme/iniciar sesión en la aplicación, no se solicita el correo electrónico.Permiso para obtener el correo electrónico del usuario con Facebook PHP SDK

// login or logout url will be needed depending on current user state. 
if ($me) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email', 
)); 
} 

El error debe estar en este código ya que todo lo demás funciona bien. ¡Gracias!

+0

¿Alguien tiene alguna experiencia con esto? – Joseph

Respuesta

1

Retire la coma después de que haya 'e-mail' y redirigir el navegador a $ loginUrl, así:

$loginUrl = $facebook->getLoginUrl(
    array(
    'req_perms' => 'email' 
) 
); 

echo '<script>top.location="'.$loginUrl.'";</script>'; 
die(); 

EDITAR

Ésta era la forma en que se hizo en su día, ahora Facebook han cambió su API: s. Para una solución más actual, mira las otras respuestas sobre esta pregunta.

+1

Esto funcionó, excepto que tuve que cambiar 'req_perms' por 'alcance'. –

+0

¿Por qué alguien abajo votó esta respuesta? – fredrik

+0

+1 Para su respuesta. :) –

3

Esto debería funcionar con el SDK de PHP: url

header('Location:'.$facebook->getLoginUrl(array(
    'scope' => 'email' 
))); 
exit; 
7
$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'email' 
)); 

Esta debe ser la conexión

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 

también el permiso adicional debe ser pasado a ámbito de las variables

$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'email, user_activities ' 
)); 

para permisos adicionales visite:

http://developers.facebook.com/docs/authentication/permissions/#user_friends_perms

Cuestiones relacionadas