Я разработал приложение для Facebook, которое работает внутри iframe на холсте Facebook. Для правильной работы я запрашиваю расширенные разрешения у пользователя. Если пользователь не авторизовал приложение, я отправляю его на страницу входа с помощью метода getLoginUrl () в PHP SDK.
Работает, но не красиво. Метод отправляет пользователя на целевую страницу перед страницей аутентификации. Это выглядит так:
Когда я нажимаю «Перейти на 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()
)));
}