Per chi servisse ho risolto scaricando le due librerie dell'SDK di Facebook e, dopo aver creato una applicazione web per facebook direttamente dal sito di facebook, ho impostato la mia pagina in questo modo:
Codice PHP:
<?php
//imposta le librerie
require_once('inc/facebook.php');
require_once("rpcl/rpcl.inc.php");
include "inc/funzioni_mysql.php";
//parametri dell'applicazione web di facebook
$config = array(
'appId' => 'xxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxx',
'allowSignedRequest' => false // è optional ma deve essere impostato su false per app non-canvas
);
//parametri richiesti dal login
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
<html>
<head></head>
<body>
<?php
//azzera le variabili
$utente = ""; $data = "";
$km = "";
//recupera i dati dell'utente
if(isset($_GET['utente']) && isset($_GET['nome']))
{
//carica i dati della guida
$data = new MysqlClass();
$data->connetti();
$dati = $data->query("SELECT * FROM tabella WHERE nome='".$_GET['nome']."'");
$res = $data->estrai($dati);
//recupera i dati
$utente = $_GET['utente];
$data = $res->data;
$km = $res->km;
$velocita_max = $res->velocita_max;
//chiude il database
//$data->disconnetti();
}
if($user_id) {
// Abbiamo un ID utente, quindi probabilmente un utente connesso.
// Se non, otterremo un'eccezione, che trattiamo qui di seguito.
try {
//imposta l'icona da visualizzare
$icona = "http://miosito.altervista.org/img/facebook/modo_auto.png";
//imposta la descrizione da visualizzare
$descrizione = $utente." ha percorso ".$km." km a una velocita' massima di ".$velocita_max." km/h.";
//imposta il messaggio da postare
$ret_obj = $facebook->api('/me/feed', 'POST', array(
'name' => 'Titolo', //titolo in grassetto
'picture' => $icona,
'caption' => "il ".$data, //sottotitolo
'description' => $descrizione
));
//ritorna le variabili
header("location: paginapersonale.php?utente=".$utente."&operazione=pubblicata");
}
catch(FacebookApiException $e) {
//Se l'utente è disconnesso, si può avere un ID utente anche se il
//token di accesso non è valido. In questo caso, avremo un'eccezione,
//quindi ci limiteremo a chiedere all'utente di accedere di nuovo
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ));
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
//Nessun utente, in modo da stampare un collegamento per l'utente
//per il login per inviare a muro di un utente, abbiamo bisogno del
//permesso publish_stream. Useremo l'URL corrente come redirect_uri,
//quindi non abbiamo bisogno di specificarlo qui.
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
//rimanda automaticamente al login
header("location: " . $login_url);
}
?>
</body>
</html>