这是一个很好的问题。我以前经历过,我知道这有多糟糕。
所以,首先你需要在developers.facebook.com注册一个facebook应用,拥有你自己的应用Secret和App ID。
其次,需要初始化Facebook Javascript SDK
window.fbAsyncInit = function() {
FB.init({
appId: YOUR_APP_ID,
channelUrl: YOUR_CHANNEL_URL,
status: true,
xfbml: true
});
};
(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_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
第三您需要创建一个函数或方法,使用您的图像数据动态调用 FB UI(用户点击分享按钮时将出现的对话框)。 p>
function shareMyImage(data) {
FB.ui(
{
method: 'feed',
name: 'Facebook Dialogs',
link: data.link,
picture: data.image,
caption: data.caption,
description: data.description
},
function(response) {
if (response && response.post_id) {
alert('Post was published.');
} else {
alert('Post was not published.');
}
}
);
}
最后,但同样重要的是,您需要调用您的函数
shareMyImage({
link: 'http://link-to-your-page.com',
image: 'http://link-to-your-page.com/your-image.jpg',
caption: 'Reference info'
description: 'Description to your image'
});
动态结构
显然,上面的“共享信息”也必须是动态的,因此您可以使用数据属性轻松传递此信息
<span class="button--share" data-link="THE LINK" data-image="THE IMAGE" data-caption="THE CAPTION" data-description="THE DESCRIPTION">Share</span>
所以,您可以使用 jQuery .data() 解析信息并直接运行您的方法。
$('.button--share').on('click', function(){
var data = $(this).data();
shareMyImage(data);
})