它可以正常工作,但不太美观。该方法会将用户发送到认证页面之前的着陆页。效果如下图所示:
(图片链接:https://istack.dev59.com/bZN0u.webp)
当我点击“转到Facebook.com”时,我会看到实际的权限请求页面(如果我打印url并将其复制并输入到新的浏览器窗口中,我也可以直接进入权限页面)。如何让Facebook在从Iframe重定向时跳过此步骤?
我的代码如下(使用CodeIgniter和Facebook PHP SDK):
$this->facebook = new Facebook(array(
'appId' => '{MY_APP_ID}',
'secret' => '{MY_SECRET}',
'cookie' => TRUE,
'domain' => $_SERVER['SERVER_NAME']
));
$this->facebook->getSession();
try {
$this->me = $this->facebook->api('/me');
}
catch (FacebookApiException $e) {
$this->me = NULL;
}
if ( is_null($this->me) ) {
redirect($this->facebook->getLoginUrl(array(
'req_perms' => 'offline_access,read_stream,publish_stream,user_photos,user_videos,read_friendlists',
'next' => $this->config->item('base_url').'fblogin.php?redirect_uri='.$this->uri->uri_string()
)));
}
_top
是预期的解决方案,而且似乎 Facebook 希望我们自己处理后续的重定向。问题 4994286 (http://stackoverflow.com/questions/4994286/facebook-iframe-application-redirect) 正在讨论同一点。 - Owen Blacker