Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在facebook页面选项卡应用程序上实施取消操作_Php_Facebook - Fatal编程技术网

Php 如何在facebook页面选项卡应用程序上实施取消操作

Php 如何在facebook页面选项卡应用程序上实施取消操作,php,facebook,Php,Facebook,我正在开发一个用PHPAPI实现的facebook应用程序。我面临的问题是,当我单击“取消”时,它会在同一个按钮上重定向我,这意味着我根本无法关闭对话框。我想找到一种方法,当用户点击取消按钮,重定向到应用程序的fb页面他。 有没有什么方法可以让我捕捉到php的取消操作。我被这几个小时困住了。。 我在下面提供一些代码: if(!$user){ $loginUrl = ''; if(isset($signed_request["app_data"])){ $loginUrl =

我正在开发一个用PHPAPI实现的facebook应用程序。我面临的问题是,当我单击“取消”时,它会在同一个按钮上重定向我,这意味着我根本无法关闭对话框。我想找到一种方法,当用户点击取消按钮,重定向到应用程序的fb页面他。 有没有什么方法可以让我捕捉到php的取消操作。我被这几个小时困住了。。 我在下面提供一些代码:

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对话框(这是一种糟糕的做法,因为用户在登录之前应该能够看到你的应用程序的内容)。