【问题标题】:FQL query returns no resultFQL 查询不返回结果
【发布时间】:2012-11-27 10:04:51
【问题描述】:

我的 FQL 查询有问题。我阅读了所有相关主题,但找不到我的错误。 我的 Facebook 应用程序具有以下权限:电子邮件、user_birthday、user_likes、read_stream。 如果用户喜欢我的页面,我想在一个函数中获取,但我的查询没有返回结果!相同的查询已在 Graph API 资源管理器中进行了测试,我得到了结果。这是函数:

  function getUserInfo(accessToken) {

        FB.api('/me', function (response) {
            var user_id = response.id;
            var page_id = "40796308305";   //page id for like
            var fql_query = "SELECT uid FROM page_fan WHERE page_id = " + page_id + "and uid=" + user_id;   // +"&access_token=" + accessToken.toString();
            var the_query = FB.Data.query(fql_query);

            alert(fql_query);

// 第一种方式

            FB.api({
                method: 'fql.query',
                query: fql_query,
                access_token: accessToken
            }, function (resp) {
                alert(resp);
                if (resp.length) {
                    alert('A fan!');
                    $("#container_like").show();
                    $("#container_notlike").hide();

                    document.getElementById('displayname').innerHTML = response.name;
                    document.getElementById('FBId').innerHTML = response.id;
                } else {
                    alert('Not a fan!');
                    $("#container_notlike").show();
                    $("#container_like").hide();
                }
            }
            );

// 第二种方式

            the_query.wait(function (rows) {
                if (rows.length == 1 && rows[0].uid == user_id) {
                    alert('A fan!');
                    $("#container_like").show();
                    $("#container_notlike").hide();
                    document.getElementById('displayname').innerHTML = response.name;
                    document.getElementById('FBId').innerHTML = response.id;
                } else {
                    alert('NOT a fan!');
                    $("#container_notlike").show();
                    $("#container_like").hide();
                }
            });

        });
    }

accessToken 用于 fql_query 中的第二种方式(现已注释)。我从代码中获取它:

FB.getLoginStatus(function (response) {
            if (response.status === 'connected') {                    
                var accessToken = response.authResponse.accessToken;
                getUserInfo(accessToken);

... 等等。所以我看到了所有警报,但查询没有返回任何数据。有什么问题?

【问题讨论】:

    标签: facebook facebook-fql


    【解决方案1】:

    不确定这是否是问题所在,但我花了很多时间才发现我在 localhost 上运行我的 javascript,但 facebook 授权的 url 是另一回事,所以我遇到了意想不到的失败。可以快速验证并消除这种可能性的东西。

    【讨论】:

    • 你说得有道理。我在服务器上发布并且 FB.api 正在工作,但 FB.Data.query(fql_query) 没有。我现在的问题是,当用户按赞时,页面会重新加载,但 fql 不会返回任何赞操作。我必须退出申请页面,然后再次访问。
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 2012-10-17
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    相关资源
    最近更新 更多