【问题标题】:Facebook FQLproblem with javascript sdkFacebook FQLproblem with javascript sdk
【发布时间】:2012-03-21 07:18:03
【问题描述】:

大家好,

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

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

);

当结果数大于0时效果很好。

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

我想知道这个查询是否返回了 0 行,有什么办法吗?

谢谢:)

【问题讨论】:

    标签: facebook-graph-api facebook-fql facebook-javascript-sdk facebook-apps


    【解决方案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 响应。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-22
        • 1970-01-01
        • 2014-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多