如何使用facebook setUrlHandler?

时间:2012-05-03 02:44:17

标签: php ajax facebook

我正在使用一个应用程序(" 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);

1 个答案:

答案 0 :(得分:2)

初始化FB api后,必须设置处理函数一些延迟。

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

使用这种方式我可以使用此功能。