尝试通过批量请求获取我可以成功完成的所有用户Facebook好友信息:
NSString *jsonRequest1 = @"{ \"method\": \"GET\", \"relative_url\": \"me/friends?fields=name,picture\" }";
NSString *jsonRequestsArray = [NSString stringWithFormat:@"[%@]", jsonRequest1];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObject:jsonRequestsArray forKey:@"batch"];
[facebook requestWithGraphPath:@"me" andParams:params andHttpMethod:@"POST" andDelegate:self];
个人资料照片尺寸较小(50x50),我需要指定照片的大小。我一直在查看图形API文档,我正在努力将两者结合在一起 - 这里是相关链接:http://developers.facebook.com/docs/reference/api/user/
它说要在请求中添加以下参数,但就像我说的那样,我不确定如何将两者结合在一起:
picture?type=large
我确信它适用于特定用户的单个请求,但我通过批量请求没有运气。
感谢您的帮助,它可能正在盯着我!
答案 0 :(得分:2)
FQL有一些像Facebook所说的优势
FQL,Facebook查询语言,允许您使用SQL风格 用于查询Graph API公开的数据的接口。它提供了先进的 图谱API中没有的功能,包括批处理多个功能 查询到一个电话。
从Facebook查看本教程。
https://developers.facebook.com/docs/howtos/run-fql-queries-ios-sdk/
但我建议使用带有字段扩展的Graph API,这比FQL更有帮助,也更容易理解。请注意,Graph API不支持所有子字段。
https://developers.facebook.com/docs/reference/api/field_expansion/
祝你好运!答案 1 :(得分:1)
我认为使用Graph API没有一种简单的方法可以做到这一点。这个FQL查询很容易(可以通过批处理请求传递):
SELECT uid, name, pic_big FROM user WHERE uid IN
(SELECT uid2 FROM friend WHERE uid1 = me())
如果您正在寻找特定大小的图片,请查看新的profile_pic表格。
答案 2 :(得分:1)
可以通过向URL添加height和width参数来实现。 FB将尝试为您提供符合宽度和高度标准的图像。您的批次看起来像这样:
var batch= {
batch: []
};
batch.batch.push({
method: 'GET',
relative_url: fbid + '/picture?height=400&width=400'
});
FB.api('/', 'POST', batch, function (response) {
});
答案 3 :(得分:0)
这样的事情对我有用:
{
"friends": "SELECT uid, name, pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())",
"profiles": "SELECT id, url, real_width, real_height FROM profile_pic WHERE id IN (SELECT uid FROM #friends) AND width = 300"
}
它并不完美(扫描两个查询),但它只是一个请求。
基于profile_pic表格文档。
可以在FQL Explorer中进行测试。