Per quelli che hanno bisogno di un esempio completo (ma minimale di lavoro) (come me), ecco index.php che esegue il deep-linking quando necessario. Assicurati di aver scaricato il Facebook PHP SDK e che il tuo percorso require
punti ad esso. (Ovviamente, è anche necessario sostituire la $app_id
e $app_secret
con il proprio informazioni app.)
<?php
require 'facebook-php-sdk/src/facebook.php';
$app_id = "YOUR_APP_ID_HERE";
$app_secret = "YOUR_APP_SECRET_ID_HERE";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret
));
$signed_request = $facebook->getSignedRequest();
// Get app_data from signed request POST
$app_data = $signed_request["app_data"];
// Parse app_data & Re-direct
if ($app_data) {
header("HTTP/1.1 302 Found");
header("Location: {$app_data}");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:fb="http://www.facebook.com/2008/fbml" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title Here</title>
</head>
<body>
<h1>Landing Page</h1>
</body>
</html>
Inoltre, assicurarsi che all'interno le impostazioni dell'app FB, tutti i percorsi URL (es URL Canvas, pagina Tab URL, ecc) terminano con una barra rovesciata, altrimenti si otterranno alcuni 301 errori di reindirizzamento.
Una volta che l'applicazione è messa a punto e hai added it your fan page, è possibile profondo legame con qualcosa di simile:
http://www.facebook.com/pages/MYFANPAGE/XXXXX?sk=app_XXXXX&app_data=sub/another.php
Potrebbe essere necessario analizzare il valore App_Data reale prima di usarlo, ma per me ha funzionato altrettanto sopra.
Spero che aiuti gli altri là fuori. Naturalmente, Facebook può cambiare tutto questo in qualsiasi momento.
NOTA: Facebook sta costantemente reinventando come fanno tutto ... Grazie mille a Gerard per aver postato l'ultima risposta su come funziona. – Petrogad