Я заметил, что событие edge.create не запускается на localhost.После загрузки на тестовый сервер, который виден Facebook, все заработало.
Также, как предложил Руфинус, подпишитесь на эти события вне функции обратного вызова xfbml.render.
<script>
window.fbAsyncInit = function () {
FB.init({ appId: 'myappid', status: true, cookie: true, xfbml: true });
targetUrl="http://www.goal.com";
FB.Event.subscribe("xfbml.render", function () {
console.log('xfbml.render');
});
FB.Event.subscribe("edge.create", function (targetUrl) {
console.log('edge.create');
alert('hi');
});
FB.Event.subscribe("edge.remove", function (targetUrl) {
console.log('edge.remove');
});
};
(function () {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
} ());
</script>