Возможно, вам нужно дождаться полной готовности библиотеки Facebook и проверить ответ. Вы можете сделать это с помощью метода fbAsyncInit
, который вызывается Facebook после асинхронной загрузки библиотеки:
<div id="fb-root"></div>
<script type="text/javascript" charset="utf-8">
window.fbAsyncInit = function() {
FB.init({appId:"1234567890", status:true, cookie:true, xfbml:true, session:null});
FB.Event.subscribe('edge.create', function(response) {
if (response)
{
var song_id = response.toString().split("&id=");
likeSong(song_id[1]);
}
});
}
(function() {
var e = document.createElement("script");
e.src = document.location.protocol + "//connect.facebook.net/en_US/all.js";
e.async = true;
document.getElementById("fb-root").appendChild(e);
}());
</script>
Вы также должны убедиться, что везде, где определен likeSong, инициализируется до загрузки библиотеки Facebook, и вы добавляете этот прослушиватель событий.