Как полностью загрузить ВСЕ функции Facebook JS на веб-сайт Connect - PullRequest
2 голосов
/ 19 июля 2010

Ну вот, я пытаюсь интегрировать веб-сайт с Facebook Connect, и я попал в какое-то странное кольцо ада.

Я видел 2 способа инициализации js на сайте fbc, я 'Я пробовал и то и другое, но они выполняют только противоположные части всей работы, которую мне нужно сделать.

<script src="http://connect.facebook.net/en_US/all.js"></script>
...
$(document).ready(function(){
   FB.init({'appId':'000',
       'cookie':true,
       'status':true,
   });
});

Это то, что в официальной документации сказано, но это не загружает все функции.FB.Connect не определен, sureInit ничего не делает, и я облажался.Другой код, который я видел, это

<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>
...
$(document).ready(function(){
   FB.init("000", "/xd_receiver.htm");
});

. На первый взгляд кажется, что это здорово, потому что он загружает функции FB.Connect ... но кажется, что это единственный набор функций, которые он загружает как FB.ui не определено, FB.getLoginStatus не определено, а все остальные «основные функции» не определены ...

Попытка включить оба файла js приводит к странным ошибкам и полуинициализированным сессиям, я неуверен, в чем разница между 2 различными типами вызовов FB.init ...

Спасибо!

Ответы [ 3 ]

1 голос
/ 19 июля 2010

В первом примере используется новый JS SDK , который определенно является тем, что вы хотите использовать. URL FeatureLoader предоставит вам более старый SDK. Они не могут быть загружены одновременно с тем, что вы обнаружили, поэтому просто используйте новый для самых последних и лучших.

1 голос
/ 19 июля 2010

В первом примере описан «новый способ» работы в новом API, недавно представленном (несколько месяцев назад), а во втором примере - то, что раньше было старым API (теперь устарело).

Лучший способ загрузки файлов FB js сейчас:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({appId: 'your app id', status: true, cookie: true,
             xfbml: true});
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

, который не будет препятствовать загрузке страницы до загрузки js.

Нет способа получитьК сожалению, лучшее из обоих миров, и вы должны начать использовать новый API для новых проектов, если это возможно, поскольку поддержка старого будет рано или поздно прекращена.

Вы можете найти новые документы API здесь ,90% функций старого API были перенесены (часто под разными именами), но некоторые старые полезности, такие как FB.ensureInit(), фактически отсутствуют.Также некоторые старые функции API теперь требуют использования FQL .

0 голосов
/ 19 июля 2010

Оказывается, я был в замешательстве, эти два файла и вызовы функций применяются к 2 различным версиям js lib ... Поэтому, когда я использую новую версию, я не должен ожидать, что FB.Connect будет определен и когда я используюстарая версия, которую я не ожидал, что FB.ui будет определен ...

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

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...