【发布时间】:2012-06-19 22:48:35
【问题描述】:
以下使用同一应用检索朋友的批处理请求不起作用:
var search = {batch: [
{
'name' : 'getFriends',
'relative_url': 'method/fql.query?query=SELECT+uid,+first_name,+name,+pic_square,+pic_small+FROM+user+WHERE+is_app_user=1+and+uid+IN+(SELECT+uid2+FROM+friend+WHERE+uid1=' + userId + ')'
},
{
'method': 'get',
'relative_url': '{result=getFriends:$.data[*].uid}/news.reads/article',
}
]};
以下代码执行批处理请求:
FB.api('/', 'post', search, function(response) {
console.log(response);
});
但第一次搜索返回 null。查询有什么问题?
根据批量请求的 facebook 文档,*relative_url* 是
(...) 一个 relative_url(在 graph.facebook.com 之后的 URL 部分)
从here获取。
所以我把第一段代码改成:
var search = {batch: [
{
'name' : 'getFriends',
'method' : 'GET',
'relative_url': 'method/fql?q=SELECT uid, first_name, name, pic_square, pic_small FROM user WHERE is_app_user=1 and uid IN (SELECT uid2 FROM friend WHERE uid1=me())'
},
{
'method': 'GET',
'relative_url': '{result=getAmigos:$.data[*].uid}/news.reads/article'
}
]};
批处理上第一个块的 relative_url 在 facebook 的 Open Graph API Tool 中工作,但在 JS 中,http 代码为 500,消息正文为:
{
"error": {
"message": "Graph batch API does not allow REST API method fql",
"type": "FacebookApiException",
"code": 3
}
}
但在 api 批处理请求文档中允许 fql 查询。文档已过时?我应该打开一个错误吗?
P.S:没有批量请求的fql是
SELECT uid, first_name, name, pic_square, pic_small
FROM user WHERE is_app_user=1
and uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
【问题讨论】:
标签: javascript facebook-fql facebook-javascript-sdk