Как я могу настроить диалог oauth facebook в JavaScript? - PullRequest
0 голосов
/ 19 ноября 2011

Я хотел бы изменить расположение URL-адреса страницы, и я бы настоятельно хотел, чтобы диалоговое окно запроса разрешений было открыто в отдельном окне.

Это JavaScript, который я использую:

  <script>
        window.fbAsyncInit = function() {
  FB.init({
    appId      : 'XXXXXXXXXXXXXXX',
    status     : true, 
    cookie     : true,
    xfbml      : true
  });
};
    (function(d){
   var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js";
   d.getElementsByTagName('head')[0].appendChild(js);
 }(document));
  </script>

Диалог, который открывается в отдельном окне, не отображается во всех браузерах, волнующий IE ...

PHP:

 // Create our Application instance (replace this with your appId and secret).
    $facebook = new Facebook(array(
      'appId'  => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
      'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
    ));

    // Get User ID
    $user = $facebook->getUser();

    if ($user) { 
      try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    }

    //  n or logout url will be needed depending on current user state.
    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl(   array(
           'scope' => 'publish_stream,user_birthday,email,offline_access',
           'next'  => 'LINK HERE',
          ));
    }

1 Ответ

3 голосов
/ 19 ноября 2011

Вместо того, чтобы пытаться подорвать JavaScript SDK Facebook, просто используйте стандартную аутентификацию OAuth, которая позволяет перенаправить пользователя в диалог аутентификации или разрешений без всплывающего окна JavaScript.

См. Поток на стороне сервера в Документация по аутентификации и Пример прямого URL в документации OAuth диалогового окна . Обратите внимание, что пример URL в последней документации выглядит очень похоже на ваш второй снимок экрана.

...