0

ねえみんな、FacebookのFQLproblem

ユーザiのステータスを取得するには、次のクエリを実行します。

FB.api(
    { 
     method: 'fql.query', 
     query: 'SELECT message FROM statuses WHERE uid = ' + userId 
    }, 
    function(data) { 
     // do something with the response 
    } 

を)。

結果の数が0以上

ですが、結果がない場合、コールバック関数がまったく呼び出されていないときにそれは素晴らしい作品。私はこのクエリから戻っ0行があるかどうかを知る必要があり

は、それを行うにはどのような方法はありますか?

感謝:)

答えて

1

まず、statusesテーブルが存在しません。 statusテーブルを使用する必要があります。

コールバックは常に呼ばれていますが、正しくempty objectsに対してチェックする必要があります。ただ、Javascript Test Consoleでこれを貼り付けます。

<fb:login-button scope="read_stream"> 
    Grant access to statuses 
</fb:login-button> 

<button onclick="getStatuses()">Get Statuses</button> 
<script> 
window.getStatuses = function() { 
    FB.api(
    { 
     method: 'fql.query', 
     query: 'SELECT message FROM status WHERE uid = me() AND time < 315532800' 
    }, 
    function(data) { 
     if(!isEmpty(data)) { 
      for(var key in data) { 
       var obj = data[key]; 
       console.log(obj['message']) 
      } 
     } else { 
      console.log("data is empty") 
     } 
    }); 
}; 

function isEmpty(obj) { 
    for(var prop in obj) { 
     if(obj.hasOwnProperty(prop)) 
      return false; 
    } 

    return true; 
} 
</script> 

ここで私は、空の結果が返されることを保証するために 1980年1月1日前の状態をチェックしています。あなたのコンソールにはdata is emptyという応答があるはずです。

+1

大変ありがとうございます! – daren1212

+0

@ Shai123ようこそ! – ifaour

0

クエリの結果がないときは、空の配列を取得する必要があります。

また、「ステータス」という名前のFQLテーブルには、それが「状態」だ、そこではありません。