gpt4 book ai didi

php - 提交表单时 Facebook 应用程序中的签名请求不可用?

转载 作者:行者123 更新时间:2023-12-02 06:23:18 25 4
gpt4 key购买 nike

我正在开发一个用于页面的 Facebook 应用程序。它是一个带有 Web 表单的页面,然后从提交的数据中创建数据库记录是必不可少的。没什么太复杂的。当我在处理发布数据时尝试区分站点时,复杂性就来了。这是我的:

<?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>

该页面在各个应用程序上显示良好,如 http://www.facebook.com/ukwrestlingevents?sk=app_162023107185208 所示.但是,当我提交表单时,出现“无效页面”。按照我的 switch 语句中的默认情况输出;就好像提交表单时没有签名请求一样,尽管我认为 Facebook 使用的默认请求方法确实是 POST 而不是 GET。

有什么想法吗?

最佳答案

这只是一个有根据的猜测,但我认为您必须将已签名的请求作为 Conceal 字段包含在内,以便在您发布表单后将其传递...

所以:

<input type="hidden" name="signed_request" value="<?php print htmlentities($_REQUEST['signed_request']); ?>">

...应该可以...

关于php - 提交表单时 Facebook 应用程序中的签名请求不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com