0

试图通过批处理请求获取我可以成功完成的所有用户 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

我确信它适用于特定用户的单个请求,但我通过批处理请求没有运气。

谢谢你的帮助,它可能正盯着我看!

4

4 回答 4

2

FQL 有一些优势,就像 Facebook 所说的那样

FQL,Facebook 查询语言,允许您使用 SQL 样式的界面来查询 Graph API 公开的数据。它提供了 Graph 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/

祝你好运!

于 2012-11-21T03:20:24.397 回答
1

我认为使用 Graph API 没有简单的方法可以做到这一点。这个 FQL 查询很容易(可以通过批处理请求传递):

SELECT uid, name, pic_big FROM user WHERE uid IN 
  (SELECT uid2 FROM friend WHERE uid1 = me())

如果您正在寻找特定尺寸的图片,请查看新的profile_pic表。

于 2012-08-27T17:44:10.097 回答
1

这可以通过向 URL 添加高度和宽度参数来实现。FB 将尝试为您提供符合您的宽度和高度标准的图像。您的批次看起来像这样:

var batch= {
  batch: []
};

batch.batch.push({
  method: 'GET',
  relative_url: fbid + '/picture?height=400&width=400'
});

FB.api('/', 'POST', batch, function (response) {
});
于 2013-01-24T18:46:20.917 回答
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中测试。

于 2012-12-03T15:01:35.660 回答