Почему FB.ui не работает даже после загрузки javascript sdk? - PullRequest
1 голос
/ 01 августа 2011

Я просто теряю время из прошлой недели, пытаясь выяснить, что не так в этом конкретном простом примере кода.Консоль ошибок Firefox говорит: «FB.ui не определен».Я попытался исправить это, поместив код, который загружает javascript sdk всеми возможными способами.Но нет никакого эффекта.И все, что Firefox говорит: «FB.ui не определен».Кто-нибудь, помогите мне, пожалуйста.Благодарю.(Примечание: я заменил XXX ... на APPID)

<html>
    <head>
    <title>My Great Website</title>
    </head>
    <body>
    <div id="fb-root"></div>

    <script>

  var publish = {method: 'stream.publish',display: 'popup', // force popup mode
  attachment: {
    name: 'Connect',
    caption: 'The Facebook Connect JavaScript SDK',
    description: (
      'A small JavaScript library that allows you to harness ' +
      'the power of Facebook, bringing the user\'s identity, ' +
      'social graph and distribution power to your site.'
    ),
    href: 'http://fbrell.com/'
  }
};


function publish1()
{alert('2345');
    FB.ui(publish, Log.info.bind('stream.publish callback'));
    alert('asdf');
}
</script>

<button onclick="publish1()">Click</button>

</body>

<script>

    window.fbAsyncInit = function() {
    FB.init({appId: 'XXXXXXXXXXXXXXX', 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>
</html> 

1 Ответ

1 голос
/ 01 августа 2011

Нет ничего плохого в вашем коде как таковом.

При запуске вне fbrell отсутствует объект Log, поэтому он не будет работать в строке FB.ui, но ошибка не имеет ничего общего с вызовом FB.ui.

Запуск в fbrell кажется невозможным, потому что он не может найти функцию publish1 в области действия кнопки.

Вот тест по сути вашего кода, с небольшим исправлением пробелов и удалением строки журнала. Он может успешно опубликовать на моей стене:

http://telliott.net/facebookExamples/simpleAsyncInit.html

...