Facebook, как и поделиться кнопкой с обратным вызовом
У меня есть веб-страница, на которой я разместил кнопку "Мне нравится" и "Facebook", также присутствуют соответствующие функции обратного вызова javascript.
Теперь проблема в том, что обратный вызов javascript срабатывает только тогда, когда пользователь "любит", и, похоже, не срабатывает при нажатии кнопки "поделиться".
Как будто мне нужно награждать пользователя каждый раз, когда он / она делится ссылкой. Принимая во внимание, что "нравится", пользователю может понравиться ссылка только один раз (не считая непохожих / повторных).
Я знаю, что кнопка "Поделиться" устарела. Но теперь в Facebook есть кнопка "Поделиться" с кнопкой "Мне нравится". Источник: https://developers.facebook.com/docs/plugins/like-button/
Есть ли способ запустить этот метод обратного вызова из этой кнопки общего доступа?
Вот мой код:
Код в начале тега BODY в моем HTML:-
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: ' My App ID ',
status: true,
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('edge.create', function(response) {
alert('You liked the URL: ' + response);
});
};
(function(d) {
var js, id = 'facebook-jssdk';
if (d.getElementById(id)) {
return;
}
js = d.createElement('script');
js.id = id;
js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
Код для отображения кнопок Like & Share: -
<div class="fb-like" data-href=" My URL " data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>
4 ответа
Вы не можете получить обратный вызов, используя эту кнопку. Вместо этого вы можете создать свою кнопку "Поделиться" и вызвать диалог "Лента" по ее клику.
FB.ui(
{
method: 'feed',
name: 'Facebook Dialogs',
link: 'https://developers.facebook.com/docs/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
Полный код здесь
$("#bodyarea").on('click', '.share_fb', function(event) {
event.preventDefault();
var that = $(this);
var post = that.parents('article.post-area');
$.ajaxSetup({ cache: true });
$.getScript('//connect.facebook.net/en_US/sdk.js', function(){
FB.init({
appId: '822306031169238', //replace with your app ID
version: 'v2.3'
});
FB.ui({
method: 'share',
title: 'TTitle Test',
description: 'Test Description Goes here. Tahir Sada ',
href: 'https://developers.facebook.com/docs/',
},
function(response) {
if (response && !response.error_code) {
alert('Posting completed.');
} else {
alert('Error while posting.');
}
});
});
});
Изменить идентификатор приложения для работы
Альтернативный способ, который я сделал здесь для тех, кто не хочет публиковать приложение только для этого:
jQuery("#div_share").click(function() {
var url = "http://www.facebook.com/sharer/sharer.php?u=YOUR_URL&title=YOUR_TITLE";
var openDialog = function(uri, name, options, closeCallback) {
var win = window.open(uri, name, options);
var interval = window.setInterval(function() {
try {
if (win == null || win.closed) {
window.clearInterval(interval);
closeCallback(win);
}
}
catch (e) {
}
}, 1000);
return win;
};
openDialog(url,'Facebook','width=640,height=580', function(){
jQuery("#div_share").hide();
jQuery("#formulario").show();
});
});
Он откроет диалоговое окно JavaScript, чтобы поделиться им и узнать, когда пользователь закроет его. Не гарантируется, что они действительно делятся контентом... но..:)
<div class="fb-like" data-href="page_link" data-layout="button_count" data-onshare="page_like_or_unlike_callback" data-onlike="page_like_or_unlike_callback" data-action="like" data-size="large" data-show-faces="true" data-share="false"></div>
Просто добавь data-onlike="function_name"
и определите функцию в вашем JavaScript. Вы сделали, ваша функция будет вызвана, как только человек нажмет, как на вашем сайте. Что касается кнопки "Поделиться", она все еще находится в режиме разработки, я скоро сообщу вам об этом..