【发布时间】:2015-09-01 00:28:14
【问题描述】:
我有一个 Facebook 页面 我已经构建了一个应用程序以位于页面选项卡中 该应用程序与原始网址一起工作正常 它从 facebook 获取登录信息并返回 url
如何在不更改“iframe 内部”的 url 的情况下从用户那里获得身份验证?
require_once("facebook.php");
$facebook = new Facebook(array(
'appId' => 'App_id',
'secret' => 'Secret'));
$current_user = $facebook->getUser();
$params = array('scope' =>'email,user_likes,user_friends');
if ($current_user) {
try {
$expiration = time() + 172800;
$cookie_value = $current_user . '|' . $expiration;
setcookie('fbid', $cookie_value, $expiration , "/");
echo '<script type="text/javascript">
window.location = "like.php";
</script>';
} catch (FacebookApiException $e) {
$login_url = $facebook->getLoginUrl($params);
echo '<script type="text/javascript">
window.location = "' . $login_url . '";
</script>';
exit;
error_log($e->getType());
error_log($e->getMessage());
}
} else {
$login_url = $facebook->getLoginUrl($params);
echo '<script type="text/javascript">
window.location = "'.$login_url.'";
</script>';
exit;
}
【问题讨论】:
-
如果你想在页面标签应用程序中通过 URL 调用登录对话框,那么你必须在顶部窗口实例中执行此操作 -
top.location.href = 'login-url';但处理登录的方式更方便页面标签/画布应用程序是嵌入JS SDK,并使用它的FB.login方法。这不需要重定向到不同的 URL,而是在一个简单的叠加层中显示登录对话框——更好的用户体验。
标签: php facebook facebook-apps