基本步驟
- 引入Facebook Sdk (建議異步引用)
- 初始化基礎信息
- 指定分享頁面(包含og元數據)
- 點擊分享事件及參數設定
具體代碼
// jquery 示例
$.getScript("https://connect.facebook.net/zh_HK/sdk.js", function(response, status) {
// 異步引入sdk
if (status === "success") {
// 成功加載后,初始化基礎設置
FB.init({
appId : '339526026920454',
autoLogAppEvents : true,
xfbml : true,
version : 'v3.2'
});
}
});
$('#btn').on('click', function() {
FB.ui({
method: 'share',
href: 'shareUrl', // 需要分享的網頁地址
hashtag: '#facebookshare', // 需要分享的hashTag,不能有任何符號,且以
quote: 'shareDes' // 分享的一句話,建議不要超過15個字符
}, function (response) {
// 回調
});
});
// vue 示例
<script>
export default {
props: {
src: {
type: String,
required: true
}
},
render: function(createElement) {
var self = this;
return createElement('script', {
attrs: {
type: 'text/javascript',
src: this.src
},
on: {
load: function(event) {
self.$emit('load', event);
},
error: function(event) {
self.$emit('error', event);
},
readystatechange: function(event) {
if (this.readyState == 'complete') {
self.$emit('load', event);
}
}
}
});
}
};
</script>
<remote-script
src="https://connect.facebook.net/zh_HK/sdk.js"
@load="loadFBsdkSuccess"
@error="loadFBsdkError"
></remote-script>
注意事項
hashtag 屬性只能設置一個,且中間不能有任務符號,示例: hashtag: "#facebook"
quote 設置該屬性后,分享的彈出框圖片會變成小圖,左右結構展示,不設置時圖片為最大程度顯示
- 分享網頁的圖片尺寸為: 520*282,需要設置
og:image:width og:image:height來避免第一次分享時Facebook抓不到圖片的問題
- 分享的地址的查詢參數有且只能帶一個,示例:
host/index.html?query=,帶兩個參數是不能被正確識別的,例如:host/index.html?query=test&query1=test,可以encodeURI,或者atob將多個參數加密傳遞