Php 如何在facebook页面选项卡应用程序上实施取消操作
我正在开发一个用PHPAPI实现的facebook应用程序。我面临的问题是,当我单击“取消”时,它会在同一个按钮上重定向我,这意味着我根本无法关闭对话框。我想找到一种方法,当用户点击取消按钮,重定向到应用程序的fb页面他。 有没有什么方法可以让我捕捉到php的取消操作。我被这几个小时困住了。。 我在下面提供一些代码:Php 如何在facebook页面选项卡应用程序上实施取消操作,php,facebook,Php,Facebook,我正在开发一个用PHPAPI实现的facebook应用程序。我面临的问题是,当我单击“取消”时,它会在同一个按钮上重定向我,这意味着我根本无法关闭对话框。我想找到一种方法,当用户点击取消按钮,重定向到应用程序的fb页面他。 有没有什么方法可以让我捕捉到php的取消操作。我被这几个小时困住了。。 我在下面提供一些代码: if(!$user){ $loginUrl = ''; if(isset($signed_request["app_data"])){ $loginUrl =
if(!$user){
$loginUrl = '';
if(isset($signed_request["app_data"])){
$loginUrl = $this->fb->getLoginUrl(
array(
'canvas' => 1,
'scope' =>'email, user_likes',
'redirect_uri'=>$curContest->fbpagelink .'?sk=app_'.$curContest->app_id . '?app_data=' . $signed_request["app_data"]
)
);
}else {
$loginUrl = $this->fb->getLoginUrl(
array(
'canvas' => 1,
'scope' =>'email, user_likes',
'redirect_uri'=>$curContest->fbpagelink .'?sk=app_'.$curContest->app_id
)
);
}
/* Redirect the main window NOT the iframe */
//print_r($_GET['app_data']);
echo '<script>top.location="'.$loginUrl.'";</script>';
}else{
//code of the app when user click on okay button ...
}
if(!$user){
$loginUrl='';
if(isset($signed_request[“app_data”])){
$loginUrl=$this->fb->getLoginUrl(
排列(
“画布”=>1,
“范围”=>“电子邮件,用户喜欢”,
'重定向\u uri'=>$curContest->fbpagelink.''?sk=app\u'.$curContest->app\u id.''?app\u data='.$signed\u请求[“app\u数据”]
)
);
}否则{
$loginUrl=$this->fb->getLoginUrl(
排列(
“画布”=>1,
“范围”=>“电子邮件,用户喜欢”,
'重定向\u uri'=>$curContest->fbpagelink'.?sk=app\u'.$curContest->app\u id
)
);
}
/*重定向主窗口而不是iframe*/
//打印($_GET['app_data']);
echo“top.location=“”.$loginUrl.”“;”;
}否则{
//用户单击“确定”按钮时应用程序的代码。。。
}
当用户取消授权选项时,facebook会使用返回url中的“error”参数将其重定向回您的应用程序
所以你可以用代码来写
if($_GET('error') || $_GET('error_reason')){
// redirect to your facebook page
}
希望这对你有用 是的,我知道,但我无法从iframe中的应用程序访问此变量。。我已经尝试过了。你可以简单地使用一个链接/按钮,这样他们就可以触发自己的登录,而不是自动将用户重定向到Auth对话框(这是一种糟糕的做法,因为用户在登录之前应该能够看到你的应用程序的内容)。