在iframe中跟踪FB喜欢 - 事件未触发

时间:2012-11-14 03:06:21

标签: facebook facebook-like

我们的服务允许任何公司为其业务进行促销。

用户设置促销,复制一段代码,并将其放在他们的网站上,该网站在iframe中显示促销。

促销页面嵌入了Facebook like按钮,点击后,它会自动“喜欢”该公司的Facebook页面。

我们希望跟踪这些点击并在其信息中心中为我们的用户显示这些点击,这样他们就可以看到促销活动为他们带来了多少新“喜欢”。

我们尝试使用FB.Event.subscribe,但单击like按钮时不会触发事件。我们对使用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 个答案:

答案 0 :(得分: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对象。