сохранить соединение с помощью Facebook Javascript SDK - PullRequest
0 голосов
/ 05 января 2012

Я реализовал вход в Facebook с использованием JavaScript javascript SDK в Jquery Mobile, теперь проблема в том, что я хочу сохранить соединение через все страницы, так как когда я обновляю страницу, мне нужно снова запускать FB.Login.

Кроме того, мне нужно включить следующий код в каждую HTML-страницу для доступа к объекту FB?

<script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'XXXXXXXXXX', // App ID

          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
        });

        // Additional initialization code here
      };

      // Load the SDK Asynchronously
      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
          var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
       }(document));
    </script>

Ответы [ 3 ]

1 голос
/ 05 января 2012

На каждой странице вы хотите включить Javascript SDK.

На каждой странице в window.fbAsyncInit = function() {}; после вызова обычного FB.init () вы захотите вызвать FB.getLoginStatus ()(см .: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/), который даст вам токен доступа, который вы можете использовать для доступа к API.

1 голос
/ 10 августа 2012

Если вы вызываете init более одного раза, SDK отвечает «FB.init уже вызван - это может указывать на проблему» в журнале консоли. Чтобы избежать этого, вы можете проверить, существует ли объект FB, а затем загрузить и запустить API, если это не так.

    $( document ).delegate("#my_jqm_page", "pagebeforecreate", function() {

      if (typeof FB !== 'undefined') {
          console.log("FB JS API is available now");
          FB.getLoginStatus(function(response) {
              if (response.status === 'connected') {
      // etc.
1 голос
/ 05 января 2012

Да. Вы должны включить инициализацию JavaScript SDK на каждой странице.

JavaScript SDK должен устанавливать cookie автоматически (как вы установили в FB.init параметры вызова), поэтому вам не нужно вызывать FB.login на каждой странице

...