我可以使用以下代码使用以下代码将用户重定向回我的app安装页面:
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page = $signed_request['page'];
$page_id = $page['id'];
$page_array = $facebook->api("/$page_id");
$page_link = $page_array['page_link'];
$redirect_uri = $page_link . '?sk=app_' . $app_id
$user = $facebook->getUser();
if(!$user) {
$url = $facebook->getLoginUrl(array('redirect_uri' => $redirect_uri));
echo "<script type='text/javascript'>top.location.href = '$url';</script>";
}
这适用于大多数页面,但如果页面有年龄限制(我不能保证使用我的应用程序的所有页面都不会)$facebook->api("/$page_id");
返回false
,因为我可以收集,我需要用户访问令牌才能获得我无法获得的信息,除非我对它们进行身份验证!有没有解决这个悖论的方法,还是我必须指示我的用户不要限制他们的页面?
更新
我意识到我可以简单地重定向到facebook.com/$page_id
,这会在验证后将用户带回页面,并且我将不得不为$page_link
提出api请求,但理想情况下我希望它们是无论指定的默认着陆标签是什么,都会重定向到该页面上的我的应用页面标签。