为什么我的Facebook应用程序在发送邀请后会保持清爽?

时间:2011-09-13 20:36:50

标签: php facebook facebook-graph-api

我正在使用此代码邀请朋友加入我的Facebook应用程序

<?php 

     $app_id = "12165444444444444";

     $canvas_page = "http://www.domain.net/facebook/app/";

     $message = "Would you like to join me in this great app?";

     $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"]);
     }

&GT;

但是在发送邀请后,页面会像无限循环一样保持刷新

这有什么问题?

1 个答案:

答案 0 :(得分:1)

由于request_ids参数只会在用户刚刚接受应用程序请求时添加到URL中,因此会发生以下情况:

  1. 用户访问该页面,然后重定向到请求对话框($requests_url)。
  2. 用户邀请朋友或取消对话。它们被重定向回应用程序的画布页面($canvas_page)。
  3. 由于$canvas_page不包含request_ids参数,因此用户将被重定向到请求对话框(请参阅#1)。
  4. 如果没有测试,我怀疑由于刚创建(并关闭)请求对话框,Facebook会自动重定向到redirect_uri,从而导致无限重定向。