iOS Facebook Graph API使用“下一个”或“上一个” URL通过SDK进行分页

TWright

当要对结果进行分页时,我想使用图API所返回的“下一个”或“上一个” URL时,我不确定最好的方法或正确的SDK调用。我已经查看了FBRequest和FBRequestConnection的文档,但是没有任何方法或调用让我跳出来,这显然是解决我的问题的方法。任何人都可以提出一个建议或可以给我正确方向的建议吗?

TWright

因此,在寻找明显答案的过程中,我偶然发现了github.com上的Facebook iOS SDK源,并发现了此类:https : //github.com/facebook/facebook-ios-sdk/blob/master/src/Network/FBGraphObjectPagingLoader .m

在“ - (void)followNextLink”方法中,我找到了解决方案:

 FBRequest *request = [[FBRequest alloc] initWithSession:self.session
                                                  graphPath:nil];

    FBRequestConnection *connection = [[FBRequestConnection alloc] init];
    [connection addRequest:request completionHandler:
     ^(FBRequestConnection *innerConnection, id result, NSError *error) {
         _isResultFromCache = _isResultFromCache || innerConnection.isResultFromCache;
         [innerConnection retain];
         self.connection = nil;
         [self requestCompleted:innerConnection result:result error:error];
         [innerConnection release];
     }];

    // Override the URL using the one passed back in 'next'.
    NSURL *url = [NSURL URLWithString:self.nextLink];
    NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
    connection.urlRequest = urlRequest;

    self.nextLink = nil;

    self.connection = connection;
    [self.connection startWithCacheIdentity:self.cacheIdentity
                      skipRoundtripIfCached:self.skipRoundtripIfCached];

上面有/没有很多我不需要的代码,因此我能够(借助于此SO OP)将其压缩为:

/* make the API call */
FBRequest *request = [[FBRequest alloc] initWithSession:FBSession.activeSession graphPath:nil];
FBRequestConnection *connection = [[FBRequestConnection alloc] init];
[connection addRequest:request completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

    NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] initWithDictionary:@{@"friends": [result objectForKey:@"data"], @"paging": [result objectForKey:@"paging"]}];
    NSLog(@"%@", dictionary);
    block(dictionary, error);
}];

// Override the URL using the one passed back in 'next|previous'.
NSURL *url = [NSURL URLWithString:paginationUrl];
NSMutableURLRequest* urlRequest = [NSMutableURLRequest requestWithURL:url];
connection.urlRequest = urlRequest;

[connection start];

为了帮助别人谁可能需要一个更通用的方法,我编译很多我的Facebook API调用图形为依据发现@ https://gist.github.com/tamitutor/c65c262d8343d433cf7f

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在iOS中访问分页-上一个和下一个:从Facebook graph-api中以JSON检索

分页下一个上一个

使用Facebook Graph API进行Instagram分页

使用jQuery在循环中分页上一个和下一个

分页:使用PHP的上一个和下一个

使用 jquery 在分页时激活下一个/上一个按钮

使用Swift处理iOS SDK中的Facebook Graph API结果

Facebook Graph API 在一个请求中获取多个 url 的评论数

下一个/上一个键盘工具栏iOS7

分页表tr添加上一个和下一个jquery

YouTube的下一个上一个与Json的分页

自定义分页,用箭头代替下一个上一个

JPA分页与数字和下一个,上一个

如何使我的“上一个”和“下一个”按钮在分页上工作?

当前的分页链接无效,并且下一个,上一个无效

PHP分页-下一个/上一个按钮

WordPress链接分页仅显示下一个和上一个按钮

jQuery分页的下一个和上一个按钮不起作用

如何使用“下一个”和“上一个”按钮代替list.js分页中的数字?

依靠上一个和下一个元素进行流处理

如何使用上一个输出的下一个参数对字符串进行grep?

如何使用LINQ按索引进行范围调整以允许上一个或下一个项目?

使用symfony 3通过理论迁移执行下一个/上一个迁移

我如何通过下一个上一个更改单选按钮

仅使用下一个按钮进行分页

获取下一个和上一个CakePHP 2的Paginator的URL

如何创建遍历数组中URL的jquery上一个和下一个按钮(分页)

Elasticsearch通过下一个/上一个数组项进行过滤/聚合

如何通过查看每行中的上一个和下一个值进行分组