0

アプリがキャンバス内にロードされているかどうかを確認することはできますか?私は人々に私のアプリをFacebookキャンバスの内側でのみ使用してもらい、外側では使用しないようにしたいと思っています。

Facebook Javascript SDKを使用していますが、signed_request(http://developers.facebook.com/docs/howtos/login/signed-request/)について読んでいるときに、アプリが内部に読み込まれると、signed_requestがPOSTされることがわかりました。キャンバス。

ただし、Javascriptでこれを確認する方法が見つかりません。FB.getLoginStatusを使用すると、キャンバス内にあるかどうかに関係なく、常にsigned_requestがあります。

4

1 に答える 1

1

解決策を見つけたようです: ページが Facebook 経由で表示されているかどうかを判断するには、PHP (または使用しているサーバー側の言語) を使用する必要があります。

わからない人のために説明すると、PHP を使用して、変数 signed_request がページに投稿されたかどうかを判断します。そうでない場合は、適切な Facebook ページにリダイレクトするか、必要に応じて他のアクションを実行できます。

<?php
//if signed_request was not posted...
    if ( !isset ($_POST['signed_request'] ) ) 
        {
        $redirect = 'http://apps.facebook.com/exampleapp'; //the URL of your Facebook canvas app
        header('Location:'.$redirect); //redirect the browser there
        }
?>
于 2012-12-01T01:45:00.417 に答える