Ich entwickle eine Facebook-Anwendung zur Verwendung auf einer Seite. Es ist im Wesentlichen eine Seite mit einem Webformular, das dann einen Datenbankeintrag aus den übermittelten Daten erstellt. Das ist nicht allzu komplex. Die Komplexität kommt, wenn ich versuche, zwischen den Seiten zu unterscheiden, wenn ich die Beitragsdaten behandle. Das ist, was ich habe:
<?php
require_once('../lib/facebook.php');
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
switch ($signed_request['page']['id']) {
case '144778562245193':
define('SITE_ID', '3');
define('SITE', 'UK Boxing Events');
define('DOMAIN', 'ukboxingevents.com');
define('BODY_CLASS', 'boxing');
break;
case '147183265335890':
define('SITE_ID', '1');
define('SITE', 'UK Wrestling Events');
define('DOMAIN', 'ukwrestlingevents.com');
define('ANALYTICS_ID', 'UA-xxxxxxx-xx');
define('BODY_CLASS', 'wrestling');
break;
case '157856417600021':
define('SITE_ID', '2');
define('SITE', 'UK MMA Events');
define('DOMAIN', 'ukmmaevents.com');
define('BODY_CLASS', 'mma');
break;
default:
die('Invalid page.');
break;
}
if (isset($_POST['add_event'])) {
// submit handler; writes to database
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Add Event</title>
</head>
<body>
<form action="" method="POST" id="add_event_form">
...
</form>
</body>
</html>
Die Seite wird in den einzelnen Anwendungen gut angezeigt, wie man unter http://www.facebook.com/ukwrestlingevents?sk=app_162023107185208 . Wenn ich das Formular abschicke, erhalte ich jedoch die Ausgabe "Ungültige Seite", wie es in meinem System standardmäßig der Fall ist. switch
Anweisung; als ob es keine signierte Anfrage gäbe, wenn ein Formular abgeschickt wird, obwohl ich dachte, die von Facebook verwendete Standardanforderungsmethode sei tatsächlich POST und nicht GET.
Irgendwelche Ideen?