Facebook PHP Login

02/06/2019

13

Estou com um problema lógico que não consigo resolver, eu gostaria de implementar um login/cadastro com o facebook no meu site, porém, ele só efetua o login quando o email do usuário está previamente cadastro no meu banco de dados, eu gostaria de saber se há uma maneira de ao invés de exibir a mensagem de erro de "Email ou senha Incorretos" eu poderia cadastrar o email desse novo usuário.
Segue o código:

<?php
session_start();
unset($_SESSION['face_access_token']);
require_once'lib\\Facebook\\autoload.php';

if(!$conect=mysqli_connect('localhost','root','','cadastros'))
die ('erro ao conectar');

$fb = new \\Facebook\\Facebook([
'app_id' => '2259759927393128',
'app_secret' => '8896a104c69194287cc879854a9d8671',
'default_graph_version' => 'v2.10',
//'default_access_token' => '{access-token}', // optional
]);

$helper = $fb->getRedirectLoginHelper();
//var_dump($helper);
$permissions = ['email']; // Optional permissions

try {
if (isset($_SESSION['face_access_token'])) {
$accessToken = $_SESSION['face_access_token'];
}
else{
$accessToken = $helper->getAccessToken();
}
} catch(Facebook\\Exceptions\\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\\Exceptions\\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

if (! isset($accessToken)) {
$url_Login = 'http://localhost/Site(TCC)/facebook.php';
$loginUrl = $helper->getLoginUrl($url_Login, $permissions);
}
else {
$url_Login = 'http://localhost/Site(TCC)/facebook.php';
$loginUrl = $helper->getLoginUrl($url_Login, $permissions);
if (isset($_SESSION['face_access_token'])) {
$fb->setDefaultAccessToken($_SESSION['face_access_token']);
}
else {
$_SESSION['face_access_token'] = (string) $accessToken;
$oAuth2Client = $fb->getOAuth2Client();
$_SESSION['face_access_token'] = $oAuth2Client->getLongLivedAccessToken($_SESSION['face_access_token']);
$fb->setDefaultAccessToken($_SESSION['face_access_token']);
}
try {
// Returns a `Facebook\\FacebookResponse` object
$response = $fb->get('/me?fields=name, email');
$user = $response->getGraphUser();
//var_dump($user);
$sql = "SELECT * FROM usuarios WHERE email='".$user['email']."' LIMIT 1";
# Executa a instrução SQL no banco de dados
$resultado = @mysqli_query($conect, $sql);
# Verifica o numero de linhas retornadas
$linhas = mysqli_num_rows($resultado);
# Direciona o usuário ao menu de opções
if($linhas==0) {
function myAlert($msg, $url){
echo '<script language="javascript">alert("'.$msg.'");</script>';
echo "<script>document.location = '$url'</script>";
}
myAlert("Email ou Senha incorretos! Verifique os dados inseridos!", "/SITE(TCC)/CADASTRO/index.html");
}
else{
$_SESSION["autenticado"]="rfc822_allowed";
$_SESSION["login"]=$email;
header("Location:/SITE(TCC)/LOGIN/profile.html");
}
} catch(Facebook\\Exceptions\\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\\Exceptions\\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}

}

?>
<a href="<?php echo $loginUrl; ?>">Facebook</a>
Vinícius

Vinícius

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar