2010-10-12 3 views
1

Le SDK Javascript actuel peut-il fonctionner avec une ancienne bibliothèque d'API Facebook?Le SDK Javascript de Facebook peut-il fonctionner avec l'ancienne API Facebook?

En ce moment, il y a un code pour charger le courant Facebook Javascript SDK par:

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

Et il y a code à utiliser l'ancienne API Facebook par

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

qui est le Facebooker rubygem. Peuvent-ils travailler ensemble d'une manière ou d'une autre? Si j'ai les deux, le nouveau bouton "J'aime" ne fonctionnera pas. Si je supprime l'ancien code Facebooker, le bouton "Connexion avec Facebook" et "Partager" ne fonctionnera pas. Des idées?


Mise à jour: le code plus faire des choses comme:

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

et

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

et

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

s'il vous plaît voir mise à jour ci-dessus –

+0

Je suppose que cela aurait été bien si les deux bibliothèques peuvent travailler en même temps ?? Mais je suppose que la dynamique est la suivante: si Facebook a vraiment besoin de beaucoup d'entreprises pour la soutenir, alors il y aura plus d'efforts. À l'heure actuelle, c'est plus comme si les entreprises devaient s'adapter à ce que Facebook soutient. –

Répondre

1

API JavaScript convertir les est relativement facile. Je ne suis pas sûr combien votre côté de serveur sera affecté cependant. Voici les méthodes de base que vous auriez probablement besoin:

//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); 
    } 
}); 

Si vous ne voulez pas convertir à la nouvelle API, vous pouvez incorporer comme le bouton comme iframe. Tôt ou tard, vous devrez convertir votre projet de toute façon, aussi bien le faire maintenant.

+0

Je vois. peut-être qu'une partie du travail consistera à trouver tout l'ancien code et à les supprimer aussi ... mais je suppose que ce sera l'initialisation ou le code qui fera le travail, qui sera converti en utilisant le nouveau SDK. Merci. –