将跟踪参数添加到Facebook时间线操作的链接

时间:2012-02-01 21:16:41

标签: facebook opengraph facebook-opengraph facebook-timeline

我们的客户希望跟踪用户彼此分享链接的时间(通过脸书,推特,电子邮件等),并奖励最初分享链接的人。目前,我们通过包含用户ID的URL上的参数进行跟踪,即

http://www.customer.com/items/item1?sharedBy=user1

因此,当用户点击该链接时,我们当前正在使用该网址向用户的墙发布标准墙帖。当user1的朋友点击该链接时,我们可以阅读sharedBy参数并为user1提供一些推荐信用。

我们还将我们的一些行动从标准墙上的帖子转移到新的OpenGraph操作,这会产生问题。为了被Facebook识别,opengraph对象具有如下元数据:

    <meta property="fb:app_id" content="MY_APP_ID" /> 
    <meta property="og:title" content="test item 1" />
    <meta property="og:type" content="mynamespace:item" />
    <meta property="og:url" content="http://www.customer.com/items/item1" />
    <meta property="og:image" content="http://img.fark.net/images/2011/site/farkLogoBig.png" />

无论我向Facebook提交哪个网址,它都会在构建链接时使用规范网址(og:url标记)。所以,没有我的跟踪参数。

我可以想出几种方法来解决它:

  1. 动态生成og:url的值以匹配facebook正在查看的任何URL。我宁愿不在我的所有客户身上投入更多的实施开销(他们中的许多人并不具备足够的技术能力来实现这一目标而无需大量的手持操作)。似乎Facebook可能会反对这一点,因为它基本上将每个URL视为一个单独的对象,即使它们真的是相同的。
  2. Facebook确实会在URL上添加一个fb_action_ids参数。我可以通过图形API获取这些并从中提取Facebook用户ID,然后将该ID与我的内部用户ID进行协调。宁愿不写所有额外的代码,而不是重用任何其他共享机制使用的相同参数。
  3. 是否有任何第三种方法我没有看到这会让我强迫Facebook在链接中添加额外的参数回到我的页面?

1 个答案:

答案 0 :(得分:0)

  

那么,还有比这两个更好的选择吗?

虽然这是一个主观的问题,而不是事实。我有一个基于事实和意见的答案,我将指出这两个。 :)

1完全出局,因为最后一句话是关于Facebook如何将不同的og:url标记值视为不同的对象(事实)。所以2,或者其中的一些方式,将会更好的两个(意见)