1

基本上这就是我想做的

- 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 范围之外的事情之前,我可以等待所有 FB.api 调用完成吗?
  2. 做这样的事情(递归 FB api 调用)的最佳实践是什么?

感谢你的回答

4

1 回答 1

1

您应该阅读Batch API。它允许您在一次往返 Facebook 的服务器中发出多个请求。应该大大加快速度。

于 2012-04-09T12:25:21.193 回答