Erro ao conectar com facebook
Olá pessoal.
Estou em um projeto no qual se faz necessário a conexão do usuário pelo facebook.
O problema é que ao clicar no link ele direciona pro facebook pedindo a autorização
do usuário, até aí tudo ok, porém após isso ele volta para mesma tela com o link de login
e a url reescrita, porém se eu clicar novamente em login o mesmo ocorre e pega os
dados do usuário normalmente, alguém pode me ajudar pra saber o que há de errado?
O meu código está assim:
<?php
session_start();
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphUser.php' );
require_once( 'Facebook/GraphSessionInfo.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\GraphUser;
use Facebook\GraphSessionInfo;
$id = '11xxxxxxxxxxxx';
$secret = '73xxxxxxxxxxxxxxxxxxx';
FacebookSession::setDefaultApplication($id, $secret);
//aqui é a mesma url que botei no app
$helper = new FacebookRedirectLoginHelper('http://localhost:8887/login');
try{
$session = $helper->getSessionFromRedirect();
}catch(Exception $e){
}
if(isset($_SESSION['token'])){
$session = new FacebookSession($_SESSION['token']);
try{
$session->Validate($id, $secret);
}catch(FacebookAuthorizationException $e){
$session = '';
}
}
if(isset($session)){
$_SESSION['token'] = $session->getToken();
echo "Login Successful<br>";
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$graph = $response->getGraphObject(GraphUser::className());
$_SESSION['name']=$graph->getName();
$_SESSION['id']=$graph->getId();
$_SESSION['first']=$graph->getFirstName();
$_SESSION['img']='https://graph.facebook.com/.'.$graph->getId().'./picture?type=large" width="200" height="200"';
HEADER("LOCATION: home.php");
}
else{
//este é o link de login
echo "<a href = " . $helper->getLoginUrl() . ">Login With Facebook</a>";
}
?>
Sei que tem vários tutoriais na net, porém tentei vários e não consegui, o que cheguei mais perto foi esse que ocorre o que eu quero
porém após ter que clicar 2x no link, conferi e a url é a mesma no primeiro e segundo clique, alguém pode me ajudar?
Obrigado.
Discussão (1)
Carregando comentários...