Events 捕获喜欢哪个选项卡

Events 捕获喜欢哪个选项卡,events,facebook-like,Events,Facebook Like,我知道,当一个人通过edge.create方法从Facebook选项卡中单击“喜欢”按钮时,你可以捕获该事件,但我想知道的是,当单击页面顶部的Facebook喜欢按钮时,是否有一种方法可以捕获该事件,目的是能够找出我的粉丝页面中的哪个选项卡正在生成喜欢 当页面重新加载时,我会知道页面是喜欢的,但我不知道喜欢是从同一页面上的一个选项卡还是另一个选项卡生成的。我认为可以这样完成: 当点击页面顶部或左侧的like按钮时,facebook会刷新当前显示的选项卡 如果从已签名的请求中记录相似状态,则可以捕

我知道,当一个人通过edge.create方法从Facebook选项卡中单击“喜欢”按钮时,你可以捕获该事件,但我想知道的是,当单击页面顶部的Facebook喜欢按钮时,是否有一种方法可以捕获该事件,目的是能够找出我的粉丝页面中的哪个选项卡正在生成喜欢


当页面重新加载时,我会知道页面是喜欢的,但我不知道喜欢是从同一页面上的一个选项卡还是另一个选项卡生成的。

我认为可以这样完成:

  • 当点击页面顶部或左侧的like按钮时,facebook会刷新当前显示的选项卡
  • 如果从已签名的请求中记录相似状态,则可以捕获此刷新,并且当选项卡从“不喜欢”转换为“喜欢”时,可以将其计为转换
  • 这应该是有效的,我从来没有用过它,它总比什么都没有好。您可能需要对用户ip地址添加限制,以防止不同/相似事件增加计数器


    祝你好运,如果你找到一个更好的解决方案,请发到这里,这可能会很有趣。

    我能想到的唯一一个足够准确的解决方案是:

    使用第一个应用程序请求在服务器端启动会话。 记住签名的_请求中的like状态以及发出请求时的时间戳

    在tab应用程序中嵌入javascript间隔,每隔几秒钟向服务器发送一个AJAX请求。我想你应该在2到最多5秒之间做点什么。 AJAX请求只刷新会话中的时间戳

    如果用户点击页面顶部的like,那么整个facebook页面都会被重新加载——你的应用程序也会被重新加载,你会收到一个新的签名请求,该请求的like状态现在设置为1。 查看您的会话>以前是否处于0状态?对时间戳是否最长为6-10秒?对那么,很可能用户在标签上时喜欢这个页面

    我讨厌AJAX间隔会污染网络的解决方案(在一个有很多用户的大型站点上,这会给服务器带来压力),但我想不出任何其他解决方案,因为如果用户仍在查看您的选项卡,就没有其他方法可以跟踪。如果间隔太高,用户将能够导航到墙或信息部分,并喜欢那里的页面。如果他在这之后直接回到你的账单上,你将无法跟踪他是否离开了账单

    另一种解决方案是侦听body.unload事件并向服务器发出AJAX请求,告诉您用户已离开选项卡,但可能在某些浏览器上从未触发该事件,或者AJAX请求的速度不够快,无法在选项卡页面卸载之前处理。另一方面,此解决方案会占用更少的用户网络资源和服务器性能


    这只是理论上的解决方案,必须首先进行测试

    是的,我想过使用这样的方法,但是如果有人喜欢一个标签,然后又回到我的标签上(或者从墙上的一个标签上),它是不起作用的,因为它看起来是一样的。我曾考虑过使用时间戳机制,但在生产中可靠地使用它似乎是不可靠的=/你想过使用谷歌分析吗?我认为误差很小,而且很容易实现。如果某个选项卡上喜欢该页面,请使用_setCustomVar设置访问者级别的变量,并将其包装在_getVisitorCustomVarif块中(如果该变量不存在,请设置该变量,如果存在则不执行任何操作)。您可以将变量值设置为tabs app id或app name,即3-4行代码。