0

我有一个Facebook页面,我已经添加了我的应用程序的选项卡。我用它来检查用户身份验证或不使用下面的代码: -认证后重定向到Facebook页面标签

<?php 
    $app_id = "MY APP ID"; 

    $canvas_page = "MY CANVAS PAGE"; 

    $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
      . $app_id . "&redirect_uri=" . urlencode($canvas_page); 

    $signed_request = $_REQUEST["signed_request"]; 

    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

    if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 
      echo("<script> location.href='index.php'</script>"); 
    } 
?> 

现在,作为CANVAS PAGE具有相同CANVAS PAGE我已经在应用程序改变,在页面登录重定向到https://apps.facebook.com/myappname/后,但我希望它重定向到我的Facebook页面标签;到这一个 - https://www.facebook.com/myfbpage/app_82136128736123

回答

2

你是对的。 redirect_uri必须是由应用程序“拥有”的URL。这意味着它已列在应用程序设置中。

您的画布页必须使用JavaScript重定向(就像您使用的那个)。唯一的区别是你需要记住你的应用程序在iframe中运行。您必须更改顶部的位置属性,而不是文档。顶部引用页面最顶部的框架,这是应用程序执行正确重定向的唯一方法。

echo "<script language=javascript>"; 
echo "top.location.href ='".$page_url."';"; 
echo "</script>"; 
exit(); 

这是丑陋的,许多人拒绝相信这是做到这一点的正确方法,但我还没有找到替代方案。

相关问题