无限循环facebook canvas(游戏应用程序)

时间:2015-08-20 08:47:37

标签: php facebook

当用户"拒绝权限时#34;在我的应用程序中,他们被重定向回到屏幕上,其中包含"请求许可",从而创建了一个无限循环,这是facebook隐私政策所禁止的。 任何人都可以帮我解决这个问题吗?

我用过的PHP代码是这样的:

Cars

Bikes  

2 个答案:

答案 0 :(得分:0)

您可以在网址中添加2个不同的端点或添加特殊参数 - 这样您就可以了解 - 用户是否已单击登录按钮。

请参阅 - Facebook可以在用户登录操作后设置回调网址:https://developers.facebook.com/docs/php/howto/example_facebook_login/5.0.0

所以 - 您可以将代码修改为:

For Each Row As DataRow In dt.Rows
            Try
               var linkId = row("link_id")
            Catch Ex As Exception
            End Try

并在" fb-callback.php"脚本测试,如果用户登录或没有。如果用户未登录 - 只需通知(显示消息)用户,只有已登录的用户才能处理或类似的事情。所以 - 这些动作将删除无限循环。

答案 1 :(得分:0)

我编辑了代码,现在他似乎在拒绝权限后将用户更多地重定向到同一个地方。 代码如下所示:

 <?php
// appsource
require_once 'facebook.php';
require_once 'appinclude.php';
if( isset($_GET['code']) ){ header("Location: " . $canvasPage); exit; } elseif( isset($_REQUEST['error']) && isset($_REQUEST['error_reason']) ){ $gamePage = 'https://www.facebook.com/games/APPNAME'/?fbs=502'; header("Location: " . $gamePage);
exit; } 
$fb = new Facebook(array(
'appId' => $appid,
'secret' => $appsecret,
'cookie' => true
));
$me = null;
 $user = $fb->getUser();
if($user) {
try {
$me = $fb->api('/me');
} catch(FacebookApiException $e) {
error_log($e);
}
}
if($me) {}
else {
$loginUrl = $fb->getLoginUrl(array(
'scope' => ''
));
echo "
<script type='text/javascript'>
window.top.location.href = '$loginUrl';
</script>
";  
exit;
}
if(isset($_GET['signed_request'])) {
$fb_args = "signed_request=" . $_REQUEST['signed_request'];
}
include 'spinc.php';
function ae_detect_ie(){
if (isset($_SERVER['HTTP_USER_AGENT']) &&
(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
return true;    
else        
return false;}
?>

但是我可以这样使用代码吗?或者您可能与平台的隐私政策不一致?