所以我有一个网站,让我们调用它foo.com,所有页面上都有Like Button插件(每页都重新编写相同的代码)
所以我'喜欢' http://foo.com
我墙上的帖子有一个链接,都很精致和花花公子
我对我的项目页面做了同样的事情 - http://foo.com/projects
它在信息中说你喜欢它(当你点击时发生的下拉状态),他们已经"喜欢"了http://foo.com/projects.一切都很好; 然而,Facebook上的实际链接是:
http://foo.com/projects?fb_action_ids=10151073089123411&fb_action_types=og.likes&fb_source=other_multiline&action_object_map=%7B"10151073089123411"%3A10151036996391185%7D&action_type_map=%7B"10151073089123411"%3A"og.likes"%7D&action_ref_map=%5B%5D
这不仅是丑陋的,它还意味着like按钮不计入/ projects页面,而是新的 /projects?fbcrap=....
{编辑}
还注意到你可以实际上进入一个无限循环.
人A喜欢 http://foo.com/projects
B http://foo.com/projects人从A人的墙上点击链接B 人喜欢http://foo.com/projects?randomhashstuff
人C点击http://foo.com/projects?randomhashstuff人B的墙上的链接人C喜欢http://foo.com/projects?anotherrandomhash
结果:
/projects = 1喜欢/projects?randomhash = 1喜欢/projects?anotherrandomhash = 1喜欢哪里/projects应该有3个喜欢.
我很确定这是故意的,额外的参数可以让您识别哪个“喜欢”触发了(入站)用户看到的故事,并告诉您他们在 Facebook 上的哪个位置看到并点击了它。
有文档显示了许多可能的fb_source参数(https://developers.facebook.com/docs/fb_source/),并fb_action_ids包含fb_action_types开放图谱操作类型和 ID,这些类型和 ID 有助于用户点击的故事(即 X 喜欢 Y 和 Z 其他) SiteName 上的页面将有多个操作 ID,代表单击的每个类似按钮)
{编辑},正如 CBroe 所说,解决此问题的方法是在您的网站上设置一组 Open Graph 元标记,这些标记告诉 Facebook 内容/对象本身的 URL,即使是使用其他查询字符串参数进行访问时也是如此