如何在Facebook中喜欢/分享包含get-parameters的URL

时间:2011-07-22 22:41:48

标签: facebook

我们正在开发一个包含大量动态页面的facebook-app。由于应用程序嵌入在Facebook页面的选项卡中,因此URL包含一个get参数来解决正确的选项卡/应用程序。我们希望在我们的应用程序中为多个页面实现like-和send-按钮,但facebook似乎从facebook中的url转储所有get-parameters。结果所有喜欢和发送按钮指向facebook页面本身而不是标签。

现在有人有任何解决方法吗?我们已经尝试通过外部sefor facebook urls only.rver重定向,但facebook似乎评估了点击like- / send-button上的链接(并且似乎遵循所有类型的重定向)。

更新
以下是有问题的网址示例:
https://www.facebook.com/smartmobil.de?sk=app_171502639574871

更新
问题似乎与url get-parameters无关。看来,like-button不适用于任何以www.facebook.com开头的网址

当用在一个像按钮后面的一切东西?将被倾销。这似乎只适用于facebook网址。

3 个答案:

答案 0 :(得分:5)

到目前为止,最好的解决方法是在外部(非Facebook画布)网址上指出您喜欢的按钮。

要使其工作,您需要执行一些条件重定向以使用户返回到画布URL。您可以使用客户端javascript重定向:

<script>
  window.location = 'http://apps.facebook.com/yourcanvasname/foo/bar';
</script>

或者您可以根据useragent字符串执行服务器端重定向。基本上,如果useragent包含'facebookexternalhit',那么渲染一个包含OG标记的基本HTML页面,如果没有,则重定向到画布URL。

执行此操作意味着Facebook sharescraper / linter不会将任何重定向追溯到画布URL,但任何到达您的URL 的用户都将返回到Canvas。

答案 1 :(得分:1)

我也在寻找通过get参数(app_data)控制自定义页面选项卡内容的解决方案。我仍然没有解决方案,但至少在这里为什么所有的www.facebook.com链接都不受限制。开发人员在底部Here解释了原因。

答案 2 :(得分:0)

不幸的是,我不认为你想做的事情是可能的。以编程方式发布类似要求您指定Facebook内容ID或别名。这对你不起作用,因为标签似乎没有自己的公开内容ID,而是使用Page的内容ID和一个你不能用于图表的附加参数。

禁止以编程方式喜欢外部链接和其他没有ID的内容。使用外部URL,第一个类似于无法识别的URL会为那些喜欢被表示的人创建一个新的Facebook页面(这是我放弃尝试战斗的问题),但可能是你的Page的内容ID别名的存在( www.facebook.com/smartmobil.de)在网址中让Facebook选择你的页面,而不是创建一个新页面。

我能想到这个深夜的唯一建议是定位一个外部URL,通过Javascript而不是服务器执行重定向,但Facebook也可能是明智之举,我担心我会去睡觉而不是测试它:)