2012-07-12 94 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); 
     }