2

Я хочу использовать кнопку facebook, как кнопку для страницы фейсбука, но с функцией обратного вызова.facebook 'like' кнопка для страницы facebook, но с обратным вызовом

До сих пор я только удалось получить функцию обратного вызова для работы с приложением facebook со следующим code-

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({ 
     appId : 'appID', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true, // parse XFBML 
     channelUrl : 'http://www.my_url.com/channel.html', // channel.html file 
     oauth : true // enable OAuth 2.0 
    }); 
</script> 

<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
FB.Event.subscribe('edge.create', function(href, widget) { 
    callbackFunction(); 
}); 
</script> 

Как я уже говорил, выше код работает отлично для приложения facebook. Но то, что я действительно хочу сделать, это связать код похож на это, но на странице facebook «как» кнопки, такие как включено следующее:

<div class="fb-like-box" data-href="https://www.facebook.com/{page-name}" data-width="292" data-height="250" data-show-faces="true" data-stream="true" data-header="true"></div> 

Кто-нибудь знает, как добиться этого?

Большое спасибо заранее.

+0

Я не знаю, помню ли я это корр. но я думаю, что где-то читал или слышал, что это работает только в том случае, если вы используете XFBML-версию подобной кнопки - так что, возможно, попробуйте. (Это окончательно работает, я только что использовал его недавно.) – CBroe

+0

Спасибо за это. Некоторое время я застрял в этом, но переход на XFBML-версию подобной кнопки позволил работать с обратным вызовом. Cheers again - если вы хотите вставить свой комментарий в ответ, я бы с радостью принял его как ответ :-) – goose

+0

@ user1104955, используя версию «HTML5», это то же самое, что и с использованием 'XFBML', будут запускаться события, только «iframe» версия пропускает эти события. –

ответ

2

Я был захватить щелчок на LAIK из <div class = "fb-like-box" ... html5 дива. Вариант:

FB.Event.subscribe ('edge.create', function (response) { 
    alert ('You just liked' + response); 
}); 

Вы можете использовать только в версии XFBML кнопки, как,

, но я был очень, и решил в конце концов, этот вариант

<div id="fb-root"></div> 

<script> 
    window.fbAsyncInit = function() { 
FB.init({appId: 'YOUR_FACEBOOK_APP_ID', status: true, cookie: true, xfbml: true}); 
FB.Event.subscribe('edge.create', function(response) { 
alert('You just liked '+response); 
}); 
}; 
(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=265929413447804"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

</script> 

<div class="fbp-one" style="margin-top: 62px; 
           margin-left: 60px; 
           position: absolute; 
           z-index: 1000; 
           height: 27px; 
           background-color: white;"> 
      <div class="fb-like" data-send="false" data-layout="button_count" data-width="100" data-height="200" data-show-faces="false"></div> 
</div> 
<div class="fbp-two" style="position:relative;"> 
      <div class="fb-like-box" data-href="YOUR_ADRESS" data-width="190" data-show-faces="true" data-stream="false" data-header="true"></div> 
</div> 

FBP Див» -одно «улучшилось на кнопке в FBP-2 выше и выглядит как одна единица, а функциональность работает во всех браузерах, просто нарисуйте CSS, каждый для себя :)

1

Фактически Like Box ведут себя так же, как и Like Button, так же как и для событий, что означает, что ваш код должен работать должным образом. Вот working sample on fbrell.

На самом деле существует проблема с кодом , что может привести к неожиданному поведению , у вас есть две версии JS-SDK включены на странице, один как обычный script тег (с en_US локали) и один включенный в асинхронной манере (с en_GB locale), вы должны использовать только один!

Учтите, что если вы выбираете второй (асинхронной) версии вам необходимо определить window.fbAsyncInit функцию и вызвать ваш FB.init и FB.subscribe оттуда ...

+0

Я удалил одну из версий, и обратный вызов все еще не срабатывал. Если версия HTML5 работает, есть ли что-то еще в моем коде, которое вы видите неправильно. Хотя обратите внимание, что версия кода XFBML работает для меня сейчас. – goose

+1

В живом образце вы можете увидеть, что эти обратные вызовы отлично срабатывают, как код коробки, который вы использовали в своем вопросе, с версией «HTML5». –