2012-11-14 94 views
2

我們的服務允許任何公司爲其業務運行促銷活動。跟蹤FB在iframe中的喜歡 - 事件不會觸發

用戶設置了促銷活動,複製一段代碼,並將其放置在他們的網站上,該網站在iframe中顯示促銷信息。

推廣頁面嵌入了Facebook like按鈕,點擊時它會自動「喜歡」該公司的facebook頁面。

我們希望跟蹤這些點擊並將其顯示給我們的用戶,以便他們可以看到促銷活動帶來了多少新「喜歡」。

我們嘗試使用FB.Event.subscribe,但點擊類似按鈕時事件不會觸發。我們真的很新的使用FB SDK所以我們可能失去了一些東西......這裏是我們所擁有的:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '424426844274364', // App ID 
     channelUrl : '//www.viralsweep.com/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    FB.Event.subscribe('edge.create', 
     function(response) { 
      alert('You FB liked the URL: ' + response); 
     } 
    ); 


    // Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (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)); 
+1

你是如何嵌入像按鈕?只有在使用類似按鈕的HTML%/ XFBML版本時纔會觸發事件 - 如果使用iframe嵌入方法,則不會觸發該事件。 – CBroe

回答

0

首先你需要加載sdk.js

<script src ="https://connect.facebook.net/en_GB/sdk.js" ></script> 

那麼你調用函數

FB.Event.subscribe('edge.create', 
     function(response) { 
      alert('You FB liked the URL: ' + response); 
     } 
    ); 

現在,因爲函數在加載sdk之前調用,所以無法找到FB對象。