Ciao a tutti, sto impazzendo da oggi per una cosa probabilmente semplicissima.

Ho trovato in rete un codice (ce ne sono molti altri ma non riesco a farne funzionare nessuno) che dovrebbe visualizzare il nome con cui sono loggato in facebook, credo che sia un problema di "dialogo" tra fb e il mio server o forse sbaglio io a "chiamare" lo script.

Ovviamente ho creato l'applicazione su fb developers e ho inserito l'App ID e l'App Secret.
Quando vado sul www.miosito.com/pagina.php mi appare la casellina "Login", facendo clic si apre la finestra di dialogo di facebook per consentire l'accesso all'applicazione, do il consenso ma non cambia nulla, non visualizza niente. Dove sbaglio?

Grazie a chi mi da una mano. Il codice è questo...


Codice PHP:
<?php
// Dal blog di Bartolo Illiano ([url]www.bartoloilliano.com[/url])

// Variabili di partenza da mettere in un eventuale file Esterno
require 'facebook.php';
// Istanza Applicazione.
$facebook = new Facebook(array(
  
'appId'  => 'QUI METTI LA TUA APP ID',
  
'secret' => 'QUI METTI LA TUA APP SECRET',
  
'cookie' => true,
));

define('FACEBOOK_APP_ID''QUI METTI LA TUA APP ID');
define('FACEBOOK_SECRET''QUI METTI LA TUA APP SECRET');

function 
get_facebook_cookie($app_id$application_secret) {
  
$args = array();
  
parse_str(trim($_COOKIE['fbs_' $app_id], '\\"'), $args);
  
ksort($args);
  
$payload '';
  foreach (
$args as $key => $value) {
    if (
$key != 'sig') {
      
$payload .= $key '=' $value;
    }
  }
  if (
md5($payload $application_secret) != $args['sig']) {
    return 
null;
  }
  return 
$args;
}
$cookie get_facebook_cookie(FACEBOOK_APP_IDFACEBOOK_SECRET);
// Fine Variabili di partenza
?>
<style type="text/css">
body,td,th {
    font-size: 10px;
    color: #000;
    font-family: Verdana, Geneva, sans-serif;
}
</style>

<fieldset><legend>Mi ricavo l'UID chiedendo i permessi tramite una mia applicazione</legend>
<? if ($cookie) { // Controllo se sono già loggato ?>
Il tuo ID Utente e'  <?= $cookie['uid'?> - Permessi ottenuti
<? } else { // Altrimenti faccio apparire il tasto di login ?>
<fb:login-button></fb:login-button> - Accedere per ottenere i permessi di lettura dei dati

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({appId: '<?= FACEBOOK_APP_ID ?>', status: true,
           cookie: true, xfbml: true});
  FB.Event.subscribe('auth.login', function(response) {
    window.location.reload();
  });
</script>

<? // Fine controllo ?>
</fieldset> 
    
<? if ($cookie) { // Inizio Condizione Login Presente ?>    

<fieldset><legend>Mi ricavo l'access Token per accedere all'xml tramite il Facebook Connect</legend>
<?    
$session 
$facebook->getSession();
$me null;
if (
$session) {
  try {
    
$uid $facebook->getUser();
    
$me $facebook->api('/me');
  } catch (
FacebookApiException $e) {
    
error_log($e);
  }
}
if (
$me) {
  
$logoutUrl $facebook->getLogoutUrl();
} else {
  
$loginUrl $facebook->getLoginUrl();
}
?>

    <div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId   : '<?php echo $facebook->getAppId(); ?>',
          session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it
          status  : true, // check login status
          cookie  : true, // enable cookies to allow the server to access the session
          xfbml   : true // parse XFBML
        });

        // whenever the user logs in, we refresh the page
        FB.Event.subscribe('auth.login', function() {
          window.location.reload();
        });
      };

      (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>  
<?php //  echo "Access Token ->".$session['access_token']; ?>
</fieldset>
<fieldset><legend>Qualche dato sull'utente</legend>
Foto : [img]https://graph.facebook.com/<?php echo $uid?>/picture[/img]

Nome : <?=$me['first_name'];?>

Cognome : <?=$me['last_name'];?>

Link al profilo : <?=$me['link'];?>

Sesso : <?=$me['gender'];?>

Lingua : <?=$me['locale'];?>

Ultimo aggiornamento del profilo : <?=$me['updated_time'];?>

Descrizione personale : <?=$me['about'];?>

</fieldset>
<fieldset><legend>Ora vado a formulare una query che mi darà come risultato un xml che andrò a fare il parsing</legend>
<? 
$access_token 
$session['access_token'];
$uid $cookie['uid'];  
$sql "SELECT uid, page_id FROM page_admin WHERE uid = ".$uid."";
$xml_url "https://api.facebook.com/method/fql.query?query=".$sql."&access_token=".$access_token."";
// echo "".$xml_url."";
$xml simplexml_load_file($xml_url); 
echo 
"<trong>Sei proprietario di ".count($xml->page_admin)." Pagine[/b]"// Mostro il numero di pagine
// Array delle pagine
?>

<select name="">
<? foreach($xml->page_admin as $page_admin){
        
$sql " Select name from page where page_id = ".$page_admin->page_id."";
        
$xml_url "https://api.facebook.com/method/fql.query?query=".$sql."&access_token=".$access_token."";
        
$xml simplexml_load_file($xml_url);
        foreach(
$xml->page as $page){ 
?>
<option value="<?=$page_admin->page_id;?>"><?=$page->name;?> ( ID <?=$page_admin->page_id;?> )</option>
<? } } ?>
</select>

<?
foreach($xml->page_admin as $page_admin){
echo 
"ID Pagina".$page_admin->page_id."
"
;    
            
// mi ricavo il nome pagina
            
$sql " Select name from page where page_id = ".$page_admin->page_id."";
            
$xml_url "https://api.facebook.com/method/fql.query?query=".$sql."&access_token=".$access_token."";
            
$xml simplexml_load_file($xml_url);
            foreach(
$xml->page as $page){ 
            echo 
"Nome Pagina : ".$page->name."
<hr>"
;    
            }
}
?>

</fieldset>
<fieldset><legend>Mi conto gli amici e se voglio li mostro anche a video</legend>
<? 
$access_token 
$session['access_token'];
$uid $cookie['uid'];  
$xml_url "https://api.facebook.com/method/friends.get?&uid&access_token=".$access_token."";

$xml simplexml_load_file($xml_url); 
echo 
"[b]Hai ".count($xml->uid)." Amici[/b]"// Mostro il numero di pagine
?>
<select name="">
<? foreach($xml->uid as $uid){ ?>
<option value="<?=$uid;?>"><?=$uid;?></option>
<? ?>
</select>
</fieldset>
<? // Fine Condizione Login Presente 
?>  
  
</body>
</html>