我的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/它运行良好......
答案 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++ ) {
...
}
}
);