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

Mik*_*lin 6 facebook opengraph facebook-timeline facebook-opengraph

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

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

因此,当用户点击该链接时,我们当前正在使用该URL向用户的墙发布标准墙帖.当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" />
Run Code Online (Sandbox Code Playgroud)

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

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

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

有没有第三种方法我没有看到会让我强迫Facebook在链接中添加额外的参数回到我的页面?

DMC*_*MCS 0

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

尽管这是一个主观问题,寻求意见而不是事实。我有一个基于事实和观点的答案,我将指出两者。:)

1 完全不成立,因为最后一句关于 Facebook 如何将不同的 og:url 标签值视为不同对象的说法是正确的(事实)。所以2,或者其中的某种方式,将是两者中更好的一个(意见)