2014-09-09 2 views
0

Привет, у меня проблема, потому что я новичок в создании приложения для facebook. Я использую javascript sdk для создания базового приложения только для отправки уведомлений пользователям.Перенаправление в приложение facebook после входа пользователя в facebook

У меня есть приведенный ниже код.

FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 

      var uid = response.authResponse.userID; 
      accessToken = response.authResponse.accessToken; 

      FB.api('/me', function(info) { 
       $('#welcome').html("Hello there " + info.birthday); 
      }); 

     } else if (response.status === 'not_authorized') { 
      //User is logged into Facebook, but not your App 
       var oauth_url = 'https://www.facebook.com/dialog/oauth/'; 
       oauth_url += '?client_id=xxxxxxxx'; //Your Client ID 
       oauth_url += '&redirect_uri=' + 'https://apps.facebook.com/xxxxxxx/'; //Send them here if they're not logged in 
       oauth_url += '&scope=user_about_me,email,user_location,publish_actions,user_birthday,publish_stream'; 

       window.top.location = oauth_url;    
     } else { 
      // User is not logged into Facebook at all 
      window.top.location ='https://www.facebook.com/index.php'; 
     } //response.status 
    }); //getLoginStatus 
}; //fbAsyncInit 

Когда пользователь вошел в систему и не авторизован, он разрешит окно и работу. Когда пользователь вошел в систему и разрешил работать. Но когда пользователь не авторизован и НЕ отправлен в facebook, приложение перенаправляет меня на страницу для входа в систему пользователя, но после того, как она не перенаправляется в приложение, чтобы проверить, разрешено или нет.

Может кто-нибудь мне помочь? как это сделать. Спасибо

ответ

0

Вы делаете это слишком сложно для себя. Используйте FB.login для процесса входа в систему: https://developers.facebook.com/docs/reference/javascript/FB.login/v2.1

Но НЕ используйте его внутри (асинхронной) функции обратного вызова FB.getLoginStatus, он всегда должен вызываться непосредственно при взаимодействии с пользователем.

Btw, publish_stream устарел с тех пор, и publish_actions покрывает те же разрешения. Не знаю, откуда у вас этот код, но я настоятельно рекомендую использовать официальные документы Facebook.

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

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

+0

Спасибо за помощь. – boursin

Смежные вопросы