Olá pessoal, estou tentando realizar um login via facebook, nunca tinha feito isto antes.
Estou encontrando problemas ao receber o email do usuário, tenho acesso a quase todos os dados menos o email.
segue abaixo o código:
<?php session_start(); // added in v4.0.0 require_once 'autoload.php'; use Facebook\FacebookSession; use Facebook\FacebookRedirectLoginHelper; use Facebook\FacebookRequest; use Facebook\FacebookResponse; use Facebook\FacebookSDKException; use Facebook\FacebookRequestException; use Facebook\FacebookAuthorizationException; use Facebook\GraphObject; use Facebook\Entities\AccessToken; use Facebook\HttpClients\FacebookCurlHttpClient; use Facebook\HttpClients\FacebookHttpable; // init app with app id and secret FacebookSession::setDefaultApplication( 'xxxxxxxxxx','xxxxxxxxxxx' ); // login helper with redirect_uri $helper = new FacebookRedirectLoginHelper('http://www.helpeventos.com/checklist/fbconfig.php' ); try { $session = $helper->getSessionFromRedirect(); } catch( FacebookRequestException $ex ) { // When Facebook returns an error } catch( Exception $ex ) { // When validation fails or other local issues } // see if we have a session if ( isset( $session ) ) { // graph api request for user data $request = new FacebookRequest( $session, 'GET', '/me' ); $response = $request->execute(); // get response $graphObject = $response->getGraphObject(); $fbid = $graphObject->getProperty('id'); // To Get Facebook ID $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name $femail = $graphObject->getProperty('email'); // To Get Facebook email ID $fbimg = 'https://graph.facebook.com/'.$fbid.'/picture?width=75'; /* ---- Session Variables -----*/ $_SESSION['FBID'] = $fbid; $_SESSION['FULLNAME'] = $fbfullname; $_SESSION['EMAIL'] = $femail; $_SESSION['IMG'] = $fbimg; $_SESSION['TUSER'] = '1'; /* ---- header location after session ----*/ require_once 'functions.php'; checkuser($fbid,$fbfullname,$femail); header("Location: inicial.php?type_user=1"); } else { $loginUrl = $helper->getLoginUrl(); header("Location: ".$loginUrl); } ?>
só para observação não é problema de não autorização de usuários, pois estou testando com usário que liberam seus emails para serem exibidos.
desde já agradeço as ajudas aqui postadas.