更改发布到Facebook时间轴的URL

时间:2012-05-08 15:20:47

标签: facebook facebook-graph-api facebook-opengraph facebook-page facebook-timeline

我有一个Facebook页面标签,使用以下功能在用户完成表单后将操作发布到时间轴。

function postFoo(){
    FB.api(
        '/me/<?php echo $namespace; ?>:foo?bar=<?php echo $url;?>',
        'post',
        function(response) {
            if (!response || response.error) {
                    console.log(response.error);
            } else {
                    console.log('Foo was successful! Action ID: ' + response.id);
            }
        });
}

这一切都正常,并且操作正确地添加到时间轴中,但是时间轴帖子中包含的链接的URls就像回到应用程序的实际位置(例如http://foo.bar.com/app)而不是facebook标签URL一样可能会期待。我已经尝试将重定向URI更改为页面标签地址而没有任何运气。

是否有其他人遇到此问题,如果有任何决议或建议,我将非常感激。

1 个答案:

答案 0 :(得分:0)

这很棘手。 Facebook将始终将用户发回给您在对象中使用的URL。

您需要做的是检测用户是否来自Facebook,然后将其重定向回粉丝页面。您可以在PHP中执行此操作,检查网址中是否包含fb_sourcefb_action_ids

PHP示例:

<?php
if ( isset( $_GET['fb_source'] ) || isset( $_GET['fb_action_ids'] ) ) {
    header( 'Location: '. $fan_page_url );
}
?>

这将重定向任何点击操作的人,以反弹回动作来自的粉丝专页。