2011-03-16 183 views
3

所以我希望有人打電話來幫助我解決這個問題,因爲我不太確定它的javascript,或者它的facebook。Facebook請求2.0過濾器

這是我的情況。我在Facebook上升級到Requests 2.0,這不再允許我將exclude_ids字段添加到用戶將邀請其朋友加入App的表單中。這種形式的目的不是爲了邀請朋友,而是爲了在App中添加朋友。

總之,我有一個他們已經添加的朋友的列表,我想從他們的朋友的主列表中篩選出來,以便當他們想要使用該表格時,已添加的朋友不會顯示出來。

這裏是我的javascript來獲得朋友:

<script language="Javascript" type="text/javascript">  
var friends_filter = '<?=$myClass->getFiltered());?>'; 
</script> 

將返回類似:

999999999,999999999,999999999,999999999,999999999,999999999,999999999 

這是他們還沒有添加誰是他們的朋友的用戶ID列表。

這裏是我的表單代碼:

function addUser() { 
    FB.ui(
    { 
     method: 'apprequests', 
     display: 'dialog', 
     title: 'Add friends', 
     message: 'Hey, I added you as a user/friend on such-and-such App', 
     data: 'added', 
     filters: [{name: 'Non-Added', user_ids: [friends_filter]}], 
    }, 
    function(response) { 
     if(response && response.request_ids) { 
      showLoading('Adding Relatives'); 
      var dataString = 'rids='+response.request_ids; 
      $.ajax({ 
       type: "GET", 
       url: server_url+"ajax/add_relative.php", 
       data: dataString, 
       success: function(data){ 
        window.location.reload(); 
       } 
      }); 
     } 
    } 
    ); 
} 

如果你看一下filters: [{name: 'Non-Added', user_ids: [friends_filter]}],線,那是我包括IDS,我只希望在選擇器來查看列表。該對話框彈出,但隨後列出這些ID在friends_filter和錯誤消息,指出「不能解析爲一個有效的用戶ID」

這是我感到困惑,如果我複製和粘貼什麼friends_filter輸出,並更換了friends_filter與ID列表,即999999999,999999999,999999999,999999999,完全一樣,它的工作正常。

我知道這是一個詳盡的帖子,我很抱歉,但我在我的智慧結束。

我唯一能想到的是,也許我的javascript變量friends_filter需要轉換爲某種類型的某種?

任何想法?

回答

2

我試過這段代碼,它對我很好用

 FB.ui(
      { 
      method: 'apprequests', 
      filters: ['app_non_users'], 
      message: 'msg here!', 
      title: 'title for box' 
      }, 
      function(response) { 
       alert(response.request_ids);//this is return after send invite 
      } 
     ); 

只是如果你想過濾結果與用戶列表中使用

filters: [{name: 'Invite friends', user_ids: <?php echo json_encode($users_array);?> }], 
1

經過多次試驗和錯誤,我想出瞭解決方案。

在:

<script language="Javascript" type="text/javascript">  
var friends_filter = '<?=$myClass->getFiltered());?>'; 
</script> 

我改

<script language="Javascript" type="text/javascript">  
var friends_filter = [<?=$myClass->getFiltered());?>]; 
</script> 

通過與括號的PHP回聲更換引號。

然後,我改變:

filters: [{name: 'Non-Added', user_ids: [friends_filter]}], 

要:

filters: [{name: 'Non-Added', user_ids: friends_filter}], 
0

如果要排除那些(你的朋友)誰添加的應用程序,您只需使用:

filters: ['app_non_users'] 
+0

我不找那些誰沒有添加該應用,但對於那些誰我在一定的功能已經添加。我在下面寫了我的問題。 – ehftwelve 2011-03-17 21:14:42