0

私はアプリ(「http://apps.facebook.com/greetingz」)を使用しています。これは私が使用しているajax部分です。リクエストを送信し、受信者も通知を受信できますが、受信者が通知をクリックすると直接移動しますキャンバスページ "apps.facebook.com/greetingz" 、実際には別のページを表示したい..これについて助けてください!!

    <?php 
         $app_id = "127736900693315";

         $canvas_page = "http://apps.facebook.com/greetingz";

         $message = $_POST['varx'];


         $requests_url = "https://www.facebook.com/dialog/apprequests?app_id=" 
                . $app_id . "&redirect_uri=" . urlencode($canvas_page)
                . "&message=" . $message;

         if (empty($_REQUEST["request_ids"])) {
            echo("<script> top.location.href='" . $requests_url . "'</script>");


         } else {
           // echo "Request Ids: ";
            //print_r($_REQUEST["request_ids"]);
            echo $message;
         }
?>

このアプリに以下のコードを使用するにはどうすればよいですか

 function onUrl(data) {
 if (data.path.indexOf("games.achieves") != -1) {
     console.log('I will process some achievement now.');
 } else if (data.path.indexOf("request_ids") != -1) {
     console.log('I will process some request now.');
 } else {
     // default behaviour
     window.location = data.path;
 }

}

FB.Canvas.setUrlHandler(onUrl);

4

1 に答える 1

2

FB APIの初期化後、少し遅れてハンドラー関数を設定する必要があります。

FB.init(params);
setTimeout(function() { FB.Canvas.setUrlHandler(onUrl) }, 5000);

この方法を使用して、この機能を動作させました。

于 2012-09-13T11:02:46.950 に答える