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 のサーバーへの 1 回の往復で複数のリクエストを行うことができます。物事をかなりスピードアップする必要があります。

于 2012-04-09T12:25:21.193 に答える