<?php // Remember to copy files from the SDK's src/ directory to a // directory in your application on the server, such as php-sdk/
require_once('php-sdk/facebook.php');
$config = array(
'appId' => 'YOUR_APP_ID', 'secret' => 'YOUR_APP_SECRET', );
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head>
</head>
<body>
<?php
if($user_id)
{ // We have a user ID, so probably a logged in user. // If not, we'll get an exception, which we handle below. try { $user_profile = $facebook->api('/me','GET'); echo "Name: " . $user_profile['name']; }
catch(FacebookApiException $e)
{ // If the user is logged out, you can have a // user ID even though the access token is invalid. // In this case, we'll get an exception, so we'll // just ask the user to login again here.
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType()); error_log($e->getMessage());
} }
else
{ // No user, print a link for the user to login
$login_url = $facebook->getLoginUrl();
echo 'Please <a href="' . $login_url . '">login.</a>';
} ?>
</body>
</html>
Come risolvere il problema del login dell’applicazione Facebook
Eseguendo questo codice spesso accade , lo abbiamo testato anche noi che che otteniamo un valore di $user_id = 0 in questa maniera il ciclo if non viene eseguito e quindi l’applicazione non funziona in quanto non restituisce i valori nome e altro. Oggettivamente pare che il problema sia dovuto al fatto che alcune versioni di PHP SDK potrebbero essere incompatibili con quelle che usate nel vostro sito, oppure difendere da alcuni settaggi che impediscono il giusto funzionamento. Se vi trovate in questa situazione ovviamente facebook vi mette a disposizione una soluzione che è la seguente. Ossia per l’autenticazione della vostra applicazione facebook utilizzate questa applicazione
<?php require 'server/fb-php-sdk/facebook.php';
$app_id = 'APP_ID'; $app_secret = 'APP_SECRET'; $app_namespace = 'APP_NAMESPACE'; $app_url = 'https://apps.facebook.com/' . $app_namespace . '/'; $scope = 'email,publish_actions';
// Init the Facebook SDK $facebook = new Facebook(array( 'appId' => $app_id, 'secret' => $app_secret, ));
// Get the current user $user = $facebook->getUser();
// If the user has not installed the app, redirect them to the Login Dialog if (!$user) { $loginUrl = $facebook->getLoginUrl(array( 'scope' => $scope, 'redirect_uri' => $app_url, ));
print('<script> top.location.href=\'' . $loginUrl . '\'</script>'); } ?>
I due codici sono molto simili se non il fatto che l’applicazione questa volta richiede subito i permessi la prima volta e quindi non necessita di un secondo controllo , lo abbiamo testato e questo funziona. Per delucidazione contattateci pure sotto.