将AFIncrementalStore与Auth令牌一起使用

时间:2012-12-20 06:34:51

标签: iphone ios authentication afnetworking afincrementalstore

我正在使用App.net的iOS客户端,我想使用AFIncrementalStore将网络服务与应用中的核心数据实施同步。

我已经让这两个工作用于不需要身份验证令牌的API请求,但我无法弄清楚如何将身份验证令牌与AFIncrementalStore一起使用。

换句话说,我可以下拉全局Feed,因为它不需要auth:

https://alpha-api.app.net/stream/0/posts/stream/global

...但是,要获取用户的流,您需要auth(您会注意到此链接出错):

https://alpha-api.app.net/stream/0/posts/stream

我知道我需要在API调用的末尾附加一个auth_token,但我不知道如何使用AFIncrementalStore执行此操作。

更新:以下是当前获取全局流的代码块:

这是直接从example App.net project included in AFIncrementalStore

提取的方法
-(NSURLRequest *)requestForFetchRequest:(NSFetchRequest *)fetchRequest withContext:(NSManagedObjectContext *)context {
    NSMutableURLRequest *mutableURLRequest = nil;
    if ([fetchRequest.entityName isEqualToString:@"Post"]) {
        mutableURLRequest = [self requestWithMethod:@"GET" path:@"stream/0/posts/stream/global" parameters:nil];
    }

    return mutableURLRequest;
}

1 个答案:

答案 0 :(得分:3)

您只需要对上述情况进行修改以正确使用访问令牌,即可向请求添加参数,而不是传递nil。

要构建参数,只需使用您需要的键和值创建NSDictionary即可。例如,在我的一些App.net代码中,我有这个

NSDictionary *params = @{@"access_token": token};

使用新的compiler directives,使用NSDictionary令牌中的值,使用单个密钥(在本例中为“access_token”)构建NSString

完成后,只需提出类似的请求:

[self requestWithMethod:@"GET" path:@"stream/0/posts/stream" parameters:params];

传递请求中的参数。

如果这还不够明确,请告诉我!