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);
            }
        });
}

これはすべて正しく機能し、アクションはタイムラインに正しく追加されますが、タイムラインに含まれるリンクの URL は、facebook タブではなくアプリの実際の場所 (例: http://foo.bar.com/app ) に戻るように投稿されます。予想通りのURL。リダイレクト URI をページ タブのアドレスに変更しようとしましたが、うまくいきませんでした。

他の誰かがこの問題に遭遇しましたか?解決策や提案があれば、私は非常に感謝しています.

4

1 に答える 1

0

これはトリッキーです。Facebook は常に、オブジェクトで使用した URL にユーザーを送り返します。

必要なのは、ユーザーが Facebook から来ているかどうかを検出し、ファン ページにリダイレクトすることです。fb_sourceURLにまたはが含まれているかどうかを確認するPHPでこれを行うことができますfb_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 に答える