在指定的地方與時間插入 Facebook Plugins

如果在播放動畫時剛好 Facebook plugins 在初始化會影響動畫的順暢度。

這時候如果可以控制 plugins 在動畫播放完畢後或是在其他較適當的時間出現時,我們可以將 fb plugins 的程式碼在適當的時間再加入。前面需要先 FB.init() 以及載入 SDK 才可以使用 FB 呼叫函式。

var likeBoxPlugin = '<div class="fb-like" data-href="https://www.facebook.com/PartnersStudio/" data-width="50" data-layout="button" data-action="like" data-size="small" data-show-faces="false" data-share="false"></div>';

function insertFbPlugins(container, plugins){
    $(container).append(plugins);
    FB.XFBML.parse($(container)[0]);
}

insertFbPlugins('.fb-like-container', likeBoxPlugin);

常用 Facebook 語法

分享該頁網址

<a class="fb-share" href="javascript:void(window.open('http://www.facebook.com/sharer/sharer.php?u='.concat(encodeURIComponent( 'http://' + window.location.hostname + '/page_name.html')) ));" target="_blank">分享至 Facebook</a>

FB UI 分享(可帶入 hashtag, quote 可使用較長文字)

FB.ui({
        method:"share",
        display:"popup",
        href: URL,
        hashtag:"#your hashtag",
        quote:"\n\<\-可使用斷行\n​​\n"
    },
    function(response){}
);

新增粉絲頁頁籤

http://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL

 

Facebook Debug URL from JavaScript

如果客製化的圖片或影片(jpg, png, gif, video)在分享時無法被 Facebook 的發佈預覽。

可以預先做一個 url debugger 讓 Facebook 先 cache 資料。

$.post('https://graph.facebook.com', {
    id: URL,
    scrape: true
}, function(response) {

});