使用facebook请求对话框

时间:2011-10-20 07:33:17

标签: facebook

我正在使用请求对话框向我的朋友发送申请请求。

现在,我想通过网址嵌入我的ID,所以当他点击邀请时,它必须是 带他到我的应用程序,并在我的浏览器的地址栏中得到这样的链接:apps.facebook.com/test?uid=1111111111

这个uid是我的uid,因为我把邀请发送给了我的朋友。

怎么做? 于21/10/2011更新                      

         

<script>
  FB.init({
    appId  : 'YOUR_APP_ID',
    status : true,
    cookie : true,
    oauth: true
  });


  function sendRequestToManyRecipients() {
    FB.ui({method: 'apprequests',
      message: 'My Great Request',
    }, requestCallback);
  }

  function requestCallback(response) {
    // Handle callback here
  }
  function getMultipleRequests(requestIds) {
  FB.api('', {"ids": requestIds }, function(response) {
  console.log(response);
});
}
</script>

1 个答案:

答案 0 :(得分:5)

Request Dialog properties中,可以使用属性data来嵌入您的唯一标识符。

当用户点击邀请通知时,将返回一个(或多个,如果有多个朋友邀请hime)request_ids。然后,您可以使用request_ids查询data

更新:将data放入请求中:

 FB.ui({method: 'apprequests',
      message: 'My Great Request',
      data: 'hello'
    }, requestCallback);

<强> UPDATE2

FB邀请有几个步骤:

1)此功能打开一个对话框,供用户(例如,用户A)选择要邀请的朋友:

 FB.ui({method: 'apprequests',
      message: 'My Great Request',
      data: 'hello'
    }, requestCallback);

2)用户A邀请朋友后说,用户B.用户B将收到有关其新闻提要的通知。

3)用户B点击进入通知,然后重定向到画布页面:apps.facebook.com/test?request_ids=xxxxxx

4)您可以使用request_ids通过javascript

检索邀请详情
function getMultipleRequests(requestIds) {
  FB.api('', {"ids": requestIds }, function(response) {
  console.log(response);
});
}

或服务器代码(这里为php,但其他语言的机制相同):

//get the request ids from the query parameter
   $request_ids = explode(',', $_REQUEST['request_ids']);

   //build the full_request_id from request_id and user_id 
   function build_full_request_id($request_id, $user_id) {
      return $request_id . '_' . $user_id; 
   }

   //for each request_id, build the full_request_id and delete request  
   foreach ($request_ids as $request_id)
   {
      echo ("reqeust_id=".$request_id."<br>");
      $full_request_id = build_full_request_id($request_id, $user_id);  
      echo ("full_request_id=".$full_request_id."<br>");

      try {
         $delete_success = $facebook->api("/$full_request_id",'DELETE');
         if ($delete_success) {
            echo "Successfully deleted " . $full_request_id;}
         else {
           echo "Delete failed".$full_request_id;}
        }          
      catch (FacebookApiException $e) {
      echo "error";}
    }