0

我有一个 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 选项卡正如人们所期望的那样。我尝试将重定向 URI 更改为页面选项卡地址,但没有任何运气。

有没有其他人遇到过这个问题,如果有任何解决方案或建议,我将非常感激。

4

1 回答 1

0

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

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

PHP 示例:

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

这将重定向任何单击该操作的人以反弹回该操作来自的粉丝页面。

于 2012-05-23T13:45:00.783 回答