example javascript php facebook facebook-graph-api sdk

example - Facebook PHP SDK cómo obtener el correo electrónico del usuario desde Facebook JavaScript SDK 2014



get email facebook api javascript (4)

Cambiar la URL de inicio de sesión a

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

también puedes agregar permisos adicionales como

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

Solicite permisos antes de obtener la URL de inicio de sesión.

compruebe los permisos con Facebook inicie sesión aquí

Para que pueda obtener el correo electrónico del usuario

$user_profile[''email''];

y nombre de usuario por

$user_profile[''username''];

Estoy usando Facebook PHP (4.0) y JS (2.0) SDK juntos. Puedo tomar los datos del perfil de usuario con PHP pero no con el correo electrónico del usuario. El correo electrónico del usuario está disponible con el Javascript SDK, pero lo necesito en PHP.

Estaba usando:

$user_profile = (new FacebookRequest($session, ''GET'', ''/me''))->execute()->getGraphObject(GraphUser::className());

Esto funciona, pero la clase GraphUser no tiene una función para capturar el correo electrónico del usuario en 4.0.

¿Alguna idea de cómo puedo tomar el correo electrónico del usuario con Facebook PHP SDK versión 4.0?


GraphUser hereda de GraphObject por lo que debería poder usar el método genérico para tomar un campo:

$user_profile->getProperty("email");


// Facebook SDK v5 for PHP // https://developers.facebook.com/docs/php/howto/example_access_token_from_javascript/5.0.0 session_start(); $fb = new Facebook/Facebook([ ''app_id'' => ''{app-id}'', ''app_secret'' => ''{app-secret}'', ''default_graph_version'' => ''v2.4'', ]); $helper = $fb->getJavaScriptHelper(); $accessToken = $helper->getAccessToken(); $fb->setDefaultAccessToken((string) $accessToken); $response = $fb->get(''/me?locale=en_US&fields=name,email''); $userNode = $response->getGraphUser(); var_dump( $userNode->getField(''email''), $userNode[''email''] );


Cambie el parámetro FacebookRequest () como se muestra a continuación. cambie el parámetro getLoginUrl () como se muestra a continuación

$request = new FacebookRequest( $session, ''GET'', ''/me?locale=en_US&fields=name,email'' ); $loginUrl = $helper->getLoginUrl( array( ''scope'' => ''email'' ));