2012-04-09 85 views
0

基本上這就是我想要做的遞歸Facebook的API調用

- Get all my likes (page likes) 
- Get all my friends 
- for each of my friends, get their likes 
- for each of their likes, do something 

現在,我這樣做的方法是使用JS SDK,因爲我已經試過PHP SDK,它是很慢(所以緩慢的最大執行時間的PHP錯誤踢),是PHP的SDK總是比JS慢?我的腳本是這樣的:

var newArray = []; 
FB.api('me/likes', function(response){ 
    FB.api('me/friends', function(friends){ 
     $(friends).each(function(){ 
      FB.api(this.uid+'/likes', function(fr_likes){ 
      $(fr_likes).each(function(){ 
       //save this friend likes to newArray 
       newArray.push(this); 
      }); 
      }); 
     }); 
    }); 
}); 

//call newArray outside FB scope doesn't work at first 
console.log(newArray); //returns []/empty 

但如果我使用Chrome的控制檯一段時間後打電話到newArray,newArray緩慢與FB的數據填充。

所以我的問題是:

  1. 我可以等所有FB.api調用到外面FB範圍做某件事之前完成?
  2. 什麼是做類似的東西(遞歸FB API調用)的最佳實踐?

感謝您的回答

回答

1

你應該在Batch API讀了。它允許您在Facebook服務器上進行單次往返訪問多個請求。應該大大加快速度。