6

我们的客户希望跟踪用户何时彼此共享链接(通过 facebook、twitter、电子邮件等),并奖励最初共享链接的人。目前,我们正在通过包含用户 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" />

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

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

  1. 动态生成 og:url 的值以匹配 facebook 正在查看的任何 URL。我宁愿不给我的所有客户增加更多的实施开销(他们中的许多人的技术不够精通,无法在没有大量手持设备的情况下实施这一点)。似乎 Facebook 可能会反对这一点,因为它基本上会将每个 URL 视为一个单独的对象,即使它们实际上是相同的。
  2. Facebook 会自行将 fb_action_ids 参数添加到 URL。我可以通过图形 API 获取这些并从中提取 facebook 用户 ID,然后将该 ID 与我的内部用户 ID 进行核对。宁愿不编写所有额外的代码,也不愿重用任何其他共享机制使用的相同参数。

是否有任何我没有看到的第三种方法可以让我强制 Facebook 将额外的参数添加到他们返回到我页面的链接中?

4

1 回答 1

0

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

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

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

于 2012-02-01T22:46:12.677 回答