Может ли Javascript SDK Facebook работать вместе со старым API Facebook? - PullRequest
1 голос
/ 12 октября 2010

Может ли текущий Javascript SDK Facebook работать со старой библиотекой API Facebook?

Сейчас есть код для загрузки текущего Javascript SDK Facebook по:

window.fbAsyncInit = function() {
    FB.init({appId: '218565466928', status: true, cookie: true,
             xfbml: true});
};
// [...] initialize it

И есть код дляиспользуйте старый API Facebook от

init_fb_connect('Connect', 'XFBML', :js => :jquery, :app_settings=> '{ifUserNotConnected: fb_user_not_connected}' ) do

, который является Facebooker Rubygem.Могут ли они работать вместе как-нибудь?Если у меня есть оба, то добавленная кнопка «Мне нравится» не будет работать.Если я удалю старый код Facebooker, кнопки «Войти с Facebook» и «Поделиться» не будут работать.Есть идеи?


Обновление: старый код делает такие вещи как:

<a class="facebook-connect-link " href="#" 
  onclick="; FB.Connect.requireSession(fb_after_connect, null, true); return false;"
  rel="nofollow">Sign in with Facebook</a>  

и

<a href="#" onclick="FB.Connect.streamPublish('', {'name': 'Some product name' ...

и

  $('.login-button').each(function() {
    FB.XFBML.Host.addElement(new FB.XFBML.LoginButton(this));  
  })

1 Ответ

1 голос
/ 12 октября 2010

Преобразование API JavaScript относительно просто.Я не уверен, насколько сильно будет затронута ваша серверная сторона.Вот основные методы, которые вам, вероятно, понадобятся:

//Check if user is logged in right now.
FB.getLoginStatus(function(response) {
  if (response.session) {
    // logged in and connected user, someone you know
  } else {
    // no user session available, someone you dont know
  }
});

//Callback fired when user logs out/logs in.
FB.Event.subscribe('auth.sessionChange', function(response) {
  // do something with response.session
});

//To force login (on login btn click).
FB.login(function(response) {
  if (response.session) {
    // user successfully logged in
    fb_after_connect();
  } else {
    // user cancelled login
  }
});

//Post to feed.
FB.api('/me/feed', 'post', { body: "message" }, function(response) {
  if (!response || response.error) {
    alert('Error occured');
  } else {
    alert('Post ID: ' + response);
  }
});

Если вы не хотите конвертировать в новый API, вы можете встроить кнопку like в виде iframe.Рано или поздно вам все равно придется конвертировать свой проект, поэтому с таким же успехом сделайте это сейчас.

...