New question

Question:

Date: 21-11-2016 06:50:10 (In Spanish)

[Aporte] Login En Tu Web Usando Facebook SDK En PHP[Resolved]

Bueno después de tanto tiempo de no hacer preguntas a esta Comunidad, hoy vengo no para preguntar si no para aportar, bueno en fin he visto mucho en la web a muchos preguntándose como hacer logeo usando facebook y es muy sencillo aquí vamos:

Primero que nada hay que descargar en sdk aqui les dejo el link actual:

Facebook SDK

Bien hasta ahora vamos bien, antes de proseguir con el codigo debemos ya antes a ver creado nuestra app, para eso solo vamos a:

Crear App

y aqui le damos al boton crear app, bueno una vez hecho (Recomiendo que lo hagan bien para no tener un incoveniente luego).

bueno ahora si una vez hecho estos dos paso vamos a lo que verdaderamente nos importa y es codigo que siempre tendremos que poner en cualquier pagina si queremos usar este sdk de facebook a la perfección, puede variar hay mucho mas por hacer con el codigo en este caso solo es un simple logeo:

Codigo PHP necesario:
<?php
session_start();
require_once __DIR__ . '/src/Facebook/autoload.php';

$fb = new Facebook\Facebook([
  'app_id' => '', // tu app id obtenidad al crear tu app en facebook
  'app_secret' => '', // tu secret id tambien dada x facebook tras poner nuevamente tu password
  'default_graph_version' => 'v2.8', // version de la api (aplicacion) ahi te dice, en mi caso es la 2.8
  ]);

$helper = $fb->getRedirectLoginHelper();

$permissions = ['email','user_friends','public_profile']; // optional (ponemos lo que queremos obtener del usuario)
	
try {
	if (isset($_SESSION['facebook_access_token'])) {
		$accessToken = $_SESSION['facebook_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)) {
	if (isset($_SESSION['facebook_access_token'])) {
		$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
	} else {
		// getting short-lived access token
		$_SESSION['facebook_access_token'] = (string) $accessToken;

	  	// OAuth 2.0 client handler
		$oAuth2Client = $fb->getOAuth2Client();

		// Exchanges a short-lived access token for a long-lived one
		$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);

		$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;

		// setting default access token to be used in script
		$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
	}

	// redirect the user back to the same page if it has "code" GET variable
	if (isset($_GET['code'])) {
		header('Location: ./');
	}

	// getting basic info about user
	try {
		$profile_request = $fb->get('/me?fields=name,first_name,last_name,email,verified,gender,locale');
		$profile = $profile_request->getGraphNode()->asArray();
	} catch(Facebook\Exceptions\FacebookResponseException $e) {
		// When Graph returns an error
		echo 'Graph returned an error: ' . $e->getMessage();
		session_destroy();
		// redirecting user back to app login page
		header("Location: ./");
		exit;
	} catch(Facebook\Exceptions\FacebookSDKException $e) {
		// When validation fails or other local issues
		echo 'Facebook SDK returned an error: ' . $e->getMessage();
		exit;
	}
	
	// printing $profile array on the screen which holds the basic info about user
	@$emailid = $profile['email'];
	if(!$emailid):
	echo 'Sorry need you email for access to the web'; // esto se mostrara al usuario si inicio a tu app por primera vez y te nego el correo electronico.
	if(isset($_SESSION['id'])) {
		session_destroy();
	} else {
		exit;
	}
	else:
	$_SESSION['facebook_access_token_data'] = sha1(true);
	//$alld = count($yes);
	foreach($profile as $datos):
	echo $datos . '<br />';
	endforeach;
endif;

  	// Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token']
} else {
	// replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here
	$loginUrl = $helper->getLoginUrl('http://tudominio/fb/', $permissions);
?>
<!DOCTYPE html> 
<html lang="en">
<head>
<title>Facebook Login</title>
</head>
<body>
<button onclick="window.location.replace('<?=$loginUrl;?>')">Log In With Facebook</button>
</body>
</html>
<?php
}
?>


Bueno eso es todo lo que se necesita hacer :)

pd: acabo de hacer la prueba y me funciono al 100% n.n si te sale un error créeme que no es el codigo que te di, fue algo que hicistes mal, bueno para eso esta los comentarios, para agradecer o preguntar sus dudas ^u^/ en fin yo me despido espero les haiga servido, ya luego volvere con otra cosa por hacer con este SDK de Facebook, como por ejemplo que necesiten dar like a tu pagina de facebook para abrir cierto contenido n.n

Saludos Programadores :D
Tags: Facebook - Input - PHP - PHP Advanced - Tutorials - Web Votes: 4 - Answers: 3 - Views: 21 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com