1

現在の Facebook Javascript SDK は古い Facebook API ライブラリで動作しますか?

現在、現在の Facebook Javascript SDK をロードするコードは次のとおりです。

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

そして、古いFacebook APIを使用するコードがあります

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

それがFacebookerRubygemです。彼らはなんとか一緒に働くことができますか?両方あると、新しく追加された「いいね」ボタンが機能しません。古い 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));  
  })
4

1 に答える 1

1

JavaScript API の変換は比較的簡単です。ただし、サーバー側がどの程度影響を受けるかはわかりません。おそらく必要となる基本的な方法は次のとおりです。

//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 に変換したくない場合は、いいねボタンを iframe として埋め込むことができます。遅かれ早かれ、とにかくプロジェクトを変換する必要があるため、今すぐ変換することをお勧めします。

于 2010-10-12T19:39:56.427 に答える