我正在构建一个使用Open Graph的Facebook画布应用程序。例如,应用程序从http://www.mysite.com/中提取内容。将发布到时间轴的操作称为“Duncan在我的应用上完成 MyObject ”
点击我的应用,在Facebook上打开应用页面。但是,单击 MyObject 链接将打开实际页面,其中所有元数据都将添加到Facebook www.mysite.com之外
我真的只想要两个链接在Facebook上打开应用程序。我在这里错过了一个技巧,或者是我执行重定向的唯一解决方案吗?
据我所知,我需要让Facebook解析mysite.com以获取元数据。但是,将og:url设置为我的应用的网址并没有什么区别。
答案 0 :(得分:1)
我遇到了同样的问题。我最终创建了一个单独的.jsp文件,该文件在页面中写入了所有的og:标签,并且在主体中它只包含:
<script>
location.href = "<%=redirectUrl%>";
</script>
redirectUrl变量是我从原始请求的URL计算的字符串,它类似于“http://apps.facebook.com/xxxyyy?myParam=zzz”。当然,它可以是任何东西,也可以是PHP或您使用的任何语言。
当您向Open Graph发布操作时,请使用带有重定向的页面作为对象URL。 Facebook将很好地解析og标签,当实际浏览器读取页面时,它会将用户重定向到您的Facebook应用程序。
答案 1 :(得分:0)
我遇到了同样的问题,不确定我是否遗漏了一些非常明显的问题。
我有一个PHP文件,它跟随Facebook的示例文件。但是当点击时间轴故事中的对象时,我注意到以下GET参数:fb_source=timeline_og
因此,为了解决重定向问题,我将以下内容放在文件的顶部,就在PHP标记内:
<?php
if ($_GET['fb_source'] == 'timeline_og') {
// clicked on link in timeline, so redirect to required URL
header('Location: REDIRECT_URL_HERE');
}
(显然,将REDIRECT_URL_HERE
替换为您要重定向到的任何网址。)
希望有人会觉得这很有用!