【发布时间】:2012-01-29 21:42:57
【问题描述】:
这是我的查询:
fql?q=SELECT uid, name, pic_square, sex FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
这是错误:
(#604) Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference
这里是js代码:
var query = encodeURI("SELECT uid, name, pic_square, sex FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())");
FB.api('fql?q=' + query, function(response) {
console.dir(response);
if(! jQuery.isEmptyObject(response)&& ! jQuery.isEmptyObject(response.data)) {
var maleList = $('#male-list');
var femaleList = $('#female-list');
for (var friend in response.data) {
var item = STValentines.buildFriendItem(friend);
if (friend.sex === 'male')
maleList.append(item);
else
femaleList.append(item);
}
}
});
这是常见问题吗?我能做些什么吗? 有走走的吗?谢谢你的帮助
【问题讨论】:
-
这很奇怪.. 使用 [Graph API Explorer](developers.facebook.com/tools/… - 我能够从这个查询中获取数据。这个查询是正确的并且问题可能是暂时的。
-
如果问题仍然存在,您应该大胆地向 facebook 提交错误:developers.facebook.com/bugs
-
它仅使用我的应用程序中的 javascript sdk 发生。使用 Graph API Explorer 不会引发任何错误
-
这可能是转义字符的问题吗?也许您应该在将 FQL 查询交给 JavaScript SDK 之前尝试使用
escape()方法。 -
你能写一个这样的例子吗?
标签: javascript facebook facebook-graph-api facebook-fql