Facebook graph api 使用javascript sdk的Facebook FQL问题

Facebook graph api 使用javascript sdk的Facebook FQL问题,facebook-graph-api,facebook-fql,facebook-javascript-sdk,facebook-apps,Facebook Graph Api,Facebook Fql,Facebook Javascript Sdk,Facebook Apps,大家好, 我执行以下查询以获取用户状态: FB.api( { method: 'fql.query', query: 'SELECT message FROM statuses WHERE uid = ' + userId }, function(data) { // do something with the response } )) 当结果数大于0时,它非常有效 但是当没有结果时,根本不会调用回调函数

大家好,

我执行以下查询以获取用户状态:

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

当结果数大于0时,它非常有效

但是当没有结果时,根本不会调用回调函数

我需要知道是否有0行从这个查询返回,有什么办法吗


谢谢:)当查询没有结果时,您应该得到一个空数组


此外,没有名为“status”的FQL表,它是“status”。

首先,
status
不存在。您应该使用表

始终调用回调,但您应该正确地检查。只需将此粘贴到:


授予对状态的访问权限
获取状态
window.getStatuses=函数(){
FB.api(
{
方法:“fql.query”,
查询:“从uid=me()和时间<315532800的状态中选择消息”
},
功能(数据){
如果(!isEmpty(数据)){
for(var输入数据){
var obj=数据[键];
console.log(obj['message'])
}
}否则{
console.log(“数据为空”)
}
});
};
函数isEmpty(obj){
用于(obj中的var prop){
if(对象拥有自己的财产(财产))
返回false;
}
返回true;
}
这里我检查1980年1月1日之前的状态,以确保返回空结果。在控制台中,您应该注意
数据为空
响应

<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>