2015-04-07 3 views
2

У меня есть следующий код JavaScriptDetect, когда Facebook, как кнопка нажата

<div class="fb-like-box" data-href="snip" data-colorscheme="light" 
    data-show-faces="false" data-header="false" data-stream="false" 
    data-show-border="true"></div> 

Я пытаюсь определить, когда кнопка, как нажата. Вышеприведенный код отображает iframe, поэтому обработчик события jQuery

$('.fb-like-box > button').on('click', function() { console.log('Clicked'); }); 

Никогда не стреляет. Я попытался обернуть этот div и другой контент в div-оболочку и указать его в вызове $(), но он запускается только при нажатии на другой контент, а не в области, отображаемой в SDK.

+0

Вы не можете. Почему вы все равно хотите это сделать? – WizKid

+0

Потому что мне нужно записать это действие и дать пользователю «точку» в качестве награды. Очки могут использоваться для выкупа продуктов/призов на сайте. – andrewb

+0

Это не допускается политикой платформы Facebook – WizKid

ответ

5

https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.3

Вам просто нужно подписаться на edge.create событие для подобных. См. Документы, например, код.

Но, как прокомментировано, вы не можете вознаграждать пользователей за симпатию. Прочитайте политику платформы для получения дополнительной информации: https://developers.facebook.com/policy/


Update: https://developers.facebook.com/blog/post/2017/11/07/changes-developer-offerings/

edge.create и edge.remove JS SDK События: Эти события больше не будут доступны. В качестве альтернативы вы можете использовать наши Webhooks и получать уведомления каждый раз, когда кому-то нравится одна из ваших страниц Facebook.

+0

Не работает. Знаете ли вы, изменила ли Facebook? Или я не могу использовать его с кнопкой iframe? – JCarlos

+0

не было никаких изменений. «он не работает» не является достаточным описанием ошибки, вы отлаживали обратный вызов? любые ошибки или предупреждения в dev-консоли? вы попробовали с другой версией подобной кнопки? – luschn

0

Этот код работает для меня:

<script> 
var liked_page = function() { 
    alert("liked!"); 
} 

FB.Event.subscribe('edge.create', liked_page); 
</script> 

Я поместил его в конце страницы. Кроме того, я считаю, вы должны также разместить

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

В начале страницы, сразу после < тела > тега.

0

edge.create and edge.remove JS SDK События: Эти события больше не будут доступны. В качестве альтернативы вы можете использовать наши Webhooks и получать уведомления каждый раз, когда кому-то нравится одна из ваших страниц Facebook.

https://developers.facebook.com/blog/post/2017/11/07/changes-developer-offerings/

Смежные вопросы