Php Facebook iFrame应用程序重定向

Php Facebook iFrame应用程序重定向,php,facebook-php-sdk,facebook-opengraph,http-redirect,Php,Facebook Php Sdk,Facebook Opengraph,Http Redirect,我正在Facebook上编写一个应用程序,它将通过我自己的商业页面上的页面标签显示。我需要与查看用户交互,因此我需要扩展权限 我遵循了建议的程序,但现在遇到了麻烦。我的应用程序位于iFrame中,对扩展权限的请求使用重定向。我可以获取您需要确认授权的页面,但当您单击“允许”时,Facebook将重定向到我的应用程序所在的页面,而不是返回到我的Facebook页面选项卡。一旦授权了适当的权限,应用程序的其余部分就可以正常工作,所以我知道这只是重定向的问题,但我觉得我已经尝试了所有方法,似乎没有多少

我正在Facebook上编写一个应用程序,它将通过我自己的商业页面上的页面标签显示。我需要与查看用户交互,因此我需要扩展权限

我遵循了建议的程序,但现在遇到了麻烦。我的应用程序位于iFrame中,对扩展权限的请求使用重定向。我可以获取您需要确认授权的页面,但当您单击“允许”时,Facebook将重定向到我的应用程序所在的页面,而不是返回到我的Facebook页面选项卡。一旦授权了适当的权限,应用程序的其余部分就可以正常工作,所以我知道这只是重定向的问题,但我觉得我已经尝试了所有方法,似乎没有多少人遇到过同样的问题。如果有人能给我指出正确的方向,我会很高兴的

谢谢大家!

这是我的密码:

$app_id = "myappid";

$canvas_page = "http://wheremyappishosted/";

$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

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

$user_id = $data["user_id"];
$access_token = $data['oauth_token'];

if (empty($data["user_id"])) {
 $auth_url = "https://graph.facebook.com/oauth/authorize?client_id=".$app_id."&redirect_uri=".urlencode($canvas_page)."&scope=user_photos,friends_photos,publish_stream,user_likes";
 die("<script> top.location.href='" . $auth_url . "'</script>");
}

$f = json_decode(file_get_contents("https://graph.facebook.com/".$user_id."?access_token=".$access_token."&fields=name,albums,likes"), true);

请将重定向变量设置到目标页面:

$redirect = "http://foo.com";

请将重定向变量设置到目标页面:

$redirect = "http://foo.com";

对于那些感兴趣的人来说,我相信我已经找到了一种规避这种情况的方法。我没有将用户重定向回应用程序,而是将他们重定向到一个小脚本,然后再重定向回页面选项卡。由于该应用程序已获得授权,因此一切正常,签名的请求将与用户信息一起传递。我不知道这是否真的是一种合法的方式,但它是有效的。

对于那些感兴趣的人,我相信我已经找到了一种方法来避免这种情况。我没有将用户重定向回应用程序,而是将他们重定向到一个小脚本,然后再重定向回页面选项卡。由于该应用程序已获得授权,因此一切正常,签名的请求将与用户信息一起传递。我不知道这是否真的是一种合法的方式,但它确实有效。

将重定向uri设置为http[s]://apps.facebook.com/YOUR_APP/,而不是http[s]://apps.facebook.com/YOUR_APP。注意后面的斜杠

将重定向_uri设置为http[s]://apps.facebook.com/YOUR_APP/,而不是http[s]://apps.facebook.com/YOUR_APP。注意后面的斜杠

我发现,当使用服务器脚本出现未解决的重定向问题时,使用javascript sdk是更好的选择,实施这个小测试,您将发现大多数事情都是使用lightbox发生的,即在您的应用程序上方。使应用程序页面保持完整


我已经发现,当使用服务器脚本出现未解决的重定向问题时,使用javascript sdk是更好的选择,实施这个小测试,您将发现大多数事情都是使用lightbox(即应用程序上方)发生的。使应用程序页面保持完整


我刚刚编辑了我的代码,$redirect应该改为$canvas_page。不,它做的是同一件事:我陷入了重定向循环,因为Facebook将用户直接重定向到应用程序,而不是返回到页面选项卡所在的Facebook页面。我刚刚编辑了我的代码,$redirect应该是$canvas_page。不,它做的是相同的事情:我陷入了重定向循环,因为Facebook将用户直接重定向到应用程序,而不是返回到页面选项卡所在的Facebook页面。这肯定是我们以前做的方式。以前可以重定向到,但现在不允许了,因为重定向uri需要与画布页面位于同一个域中。这几乎可以肯定是您的最佳解决方案。我们以前肯定是这样做的。以前可以重定向到,但现在不允许了,因为重定向uri需要与画布页面位于同一个域中。这几乎可以肯定是您的最佳解决方案。