Facebook Open Graph Object链接到Facebook App

时间:2012-08-23 09:16:00

标签: facebook web-applications facebook-opengraph

我正在构建一个使用Open Graph的Facebook画布应用程序。例如,应用程序从http://www.mysite.com/中提取内容。将发布到时间轴的操作称为“Duncan在我的应用上完成 MyObject

点击我的应用,在Facebook上打开应用页面。但是,单击 MyObject 链接将打开实际页面,其中所有元数据都将添加到Facebook www.mysite.com之外

我真的只想要两个链接在Facebook上打开应用程序。我在这里错过了一个技巧,或者是我执行重定向的唯一解决方案吗?

据我所知,我需要让Facebook解析mysite.com以获取元数据。但是,将og:url设置为我的应用的网址并没有什么区别。

2 个答案:

答案 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替换为您要重定向到的任何网址。)

希望有人会觉得这很有用!