注意:这是一个在页面标签页上运行的Facebook应用程序。
我有data.php文件获取所有东西。 我收到以下代码的签名请求:
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => false
));
$access_token = $facebook->getAccessToken();
$signedRequest = $facebook->getSignedRequest();
$user_id = $signedRequest['user_id'];
$liked = $signedRequest['page']['liked'];
在我的索引文件中,我有一些包含粉丝的动作,而不是粉丝和步骤php文件。
这是我的索引代码:
require_once ('data.php');
if(isset($fid)){
if(isset($liked)){
$step = CHECK_STEP($fid);
if(isset($step)){
if($step == '1'){
include('fan-step1.php');
}
if($step == '2'){
include('fan-step2.php');
}
if($step == '3'){
include('fan-step3.php');
}
if($step == '4'){
include('fan-step4.php');
}
} else {
include('fan.php');
}
} else {
include('notfan.php');
}
} else {
if(isset($liked)){
include('fan.php');
} else {
include('notfan.php');
}
}
我在步骤php文件中使用ajax来更新数据库以进行步骤检查。如果ajax动作完成,动作将刷新页面。代码:
success: function(){
window.location = window.location.pathname;
}
刷新页面索引文件或数据文件后,无法获取页面喜欢的请求。然后如果我刷新页面手册(ctrl + F5)。它得到请求并包含下一步php文件。
有什么问题?为什么它不能在js刷新后得到喜欢的请求?
答案 0 :(得分:0)
通过重定向,您可以刷新iframe。然而,已签名的facebook请求将通过POST发送到您的iframe。因此,如果您只是刷新iframe,则签名请求将不会再次发送,因为第二个请求(刷新之后),请求不是由Facebook执行,而是来自您的应用程序。
使用top.location
重新加载整个页面(facebook +您的标签页)。