Различные коды являются асинхронными и синхронными реализациями SDK.Первый - асинхронный - код загружается, не затрагивая другие элементы на странице.Второй (только включающий тег script) является синхронным.Скрипт Facebook будет загружен, и он будет удерживать страницу во время загрузки.
Асинхронная реализация часто лучше - она должна заставить страницу чувствовать себя быстрее.Однако, поскольку код Facebook загружается после страницы, мы не можем использовать какие-либо функции FB, пока не убедимся, что она загружена.Итак, асинхронная реализация предоставляет нам обратный вызов, который запускается при загрузке SDK.
Я думаю, что было бы лучше использовать код из первого фрагмента, но добавьте этот код для инициализации SDK, используяобратный вызов.
FB.login на вашей кнопке должен работать вместе с кнопкой «Нравится».
window.fbAsyncInit = function() {
FB.init({
appId: ...,
status: true,
cookie: true,
xfbml: true,
oauth: true
});
};