2012-07-12 92 views
2

我能够使用请求对话框发送应用程序请求的用户的朋友50 to=字段的修改,但我想将请求发送到所有的用户的朋友喜欢这个示例应用程序的功能:Invite your friend button for pages如何向使用Facebook请求对话框的用户发送应用程序请求?

这个应用程序第一次邀请用户50个比朋友再次邀请下一个50个用户朋友等

在我的代码我使用PHP

https://www.facebook.com/dialog/apprequests?app_id=443468799026324 
&to=" . $friend_ids . " 
&max_recipients=50&filters=app_non_users 
&redirect_uri=" . urlencode($canvas_page2) . " 
&message=" . $message; 

Facebook offical guide for request dialogue

转发用户到这个URL

我该如何从这里出发?

+0

听起来像你要求你的用户邀请所有的朋友给你的应用程序...这是对FB政策......让你的用户选择某些朋友,否则请你站在击球请求的风险限制为您的应用程序... – Lix 2012-07-12 07:34:19

+0

@Lix这是没有必要的,如果用户想要他可以 首先他点击邀请按钮,并返回索引页,但如果他再次点击邀请按钮,他会发现新的50个用户 – 2012-07-12 07:36:06

+0

@Lix你能请更多解释如下: “允许您的用户选择某些朋友邀请,否则您将面临达到您的应用程序请求限制的风险。” 这是单身使用者还是所有使用者的限制? – 2012-07-12 07:36:49

回答

4

你可以这样做如下: 首先你设置50个朋友id参数,然后将剩余的朋友ID存储在cookie中,现在当你发送请求时,它会重定向到你的站点的url,你可以重复上面的step.i.e.发送50个朋友请求并存储在Cookie中。

var to=""; 
    for(var j=0 ; j< 50 && j<friends.length ; j++){ 
     if(friends[j].checked == true){ 
      to += friends[j].value; 
      if(j != friends.length-1 && j != 49){ 
       to += ','; 
      } 
     } 
    } 
    var redirect_uri=your_site_url+"?button=inviteresponse"; 
    var callbackto=""; 
    for(var i=j;i<friends.length;i++){ 
     callbackto += friends[i].value; 
     if(i != friends.length-1){ 
      callbackto += ','; 
     } 
    } 
    document.cookie = "param="+callbackto+";path=/"; 
    var url="https://www.facebook.com/dialog/apprequests?app_id="+app_id+"&to="+to+"&message=Checkout apps&redirect_uri="+redirect_uri; 
    window.open(url,'', 'width=900,height=500,resizable=yes,scrollbars=yes'); 

case "inviteresponse": 
     if (empty($_COOKIE['param'])) { 
      unset($_COOKIE['param']); 
      echo "<script type='text/javascript'>window.close();</script>"; 
      die(); 
     } else { 
      $friends = explode(",", $_COOKIE["param"]); 
      $to = ""; 
      for ($j = 0; $j < 50 && $j < count($friends); $j++) { 
       $to .= $friends[$j]; 
       if ($j != count($friends) - 1 && $j != 49) { 
        $to .= ","; 
       } 
      } 
      $redirect_uri = your_site_url+"?button=inviteresponse"; 
      $callbackto = ""; 
      for ($i = $j; $i < count($friends); $i++) { 
       $callbackto .= $friends[$i]; 
       if ($i != count($friends) - 1) { 
        $callbackto .= ","; 
       } 
      } 
      unset($_COOKIE['param']); 
      setcookie("param", $callbackto); 
      $url = "https://www.facebook.com/dialog/apprequests?app_id=" . APP_ID . "&to=" . $to . "&message=Checkout apps&redirect_uri=" . $redirect_uri; 
      header("Location: " . $url); 
     }