FQL查询没有得到响应

时间:2011-09-24 13:38:12

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

我的javascript解决方案用于拉入某个页面上的一组链接的喜欢不再有效。我找不到任何错误,我尝试使用.api()方法(下面)和Data.query()方法,但两者都没有。这是我目前拥有的代码,它与我工作时使用的代码类似。

var inlist = [url1, url2, url3..... urln];

FB.api(
  {
    method: 'fql.query',
    query: 'SELECT url, total_count FROM link_stat WHERE url IN('+inlist.substr(0, inlist.length-2)+')'
  },
  function(response) {
    console.log(response);
    for( var i = 0 ; i < response.length ; i++ ) {
      if (response[i]['total_count'] > 0){
        $(vids[response[i]['url']]).append("<div class='likes'>"+response[i]['total_count']+"</div>");
      }
    }
  }
);

控制台没有报告任何内容,我的FB对象已正确初始化(示例查询运行没有问题),并且URL是基于链接列表动态生成的。此外,值得一提的是我在这里测试了FQL:http://developers.facebook.com/docs/reference/rest/fql.query/它运行良好......

2 个答案:

答案 0 :(得分:0)

我不确定你为什么在数组上使用substr,但这就是我要做的:

var inlist = ['www.facebook.com','www.masteringapi.com'];
FB.api(
{
    method: 'fql.query',
    query: 'SELECT url, total_count FROM link_stat WHERE url IN("'+inlist.join('","')+'")'
},
function(response) {
    for( var i = 0 ; i < response.length ; i++ ) {
      if (response[i]['total_count'] > 0){
        console.log(response[i]['url'] + ': ' + response[i]['total_count'] + ' likes');
      }
    }
}
);

这将返回如下内容:

  

www.facebook.com:36643537赞   www.masteringapi.com:26喜欢

答案 1 :(得分:0)

看起来问题是我包含了太多的IN(...)项目。奇怪的是,虽然没有错误,但没有回应。我将这些项目限制为10,一切都开始了。

for(var i=0 ; i < Math.ceil(inlist.length/10); i++) {
  FB.api(
    {
      method: 'fql.query',
      query: 'SELECT url, total_count FROM link_stat WHERE url IN('+inlist.slice((10*i), ((i+1)*10)).join(', ')+')'
    },
    function(response){
      for( var i = 0 ; i < response.length ; i++ ) {
        ...
      }
    }
);