从ios中的box cloud(box.com)访问用户数据

时间:2013-02-05 11:20:26

标签: ios cloud box-api

我正在尝试从Box用户帐户获取数据。 现在我已生成令牌,但我无法获取根文件夹内容(例如)。

获取令牌,我收到带有此请求的票证:

https://www.box.com/api/1.0/rest?action=get_ticket&api_key=BoxApiKey

之后我在我的应用程序中调用webView来加载此页面:

https://m.box.com/api/1.0/auth/ticket

用户登录成功后,我解析网页并提取令牌。

现在出现问题,我无法获取根文件夹内容。 这就是我尝试使用AFNetworking:

  1. 我在AFHTTPClient类中添加此方法(如建议的her

    -(void)setAuthorizationHeaderWithTokenBearer:(NSString *)token
    {
       [self setDefaultHeader:@"Authorization" value:[NSString stringWithFormat:@"Bearer %@", token]];
    }
    
  2. 我的电话:

    NSURL *url = [NSURL URLWithString:@"https://www.box.com/api/2.0/folders/0"];
    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
    [httpClient setAuthorizationHeaderWithTokenBearer:token];
    
    
    [httpClient postPath:@"" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *responseStr = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
        NSLog(@"Request Successful, response '%@'", responseStr);
    } failure:^(AFHTTPRequestOperation *operation, NSError *e) {
        NSLog(@"[HTTPClient Error]: %@", e.localizedDescription);
    }];
    
  3. 但我有这个本地化的描述:

    [HTTPClient Error]: Expected status code in (200-299), got 401
    
    你可以帮我解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您遇到了问题,因为您使用的标题样式是OAuth 2,而您拥有的令牌是V1 Auth。

如果您使用此标题

Authorization: Bearer {ACCESS_TOKEN}

您需要通过[OAuth 2 process][1]

获取令牌

但是,如果您使用此标题

Authorization BoxAuth api_key={api key}&auth_token={v1 auth token}

您需要通过V1 auth进程获取令牌,这是您概述的那个。

作为旁注,您应该尝试使用OAuth 2流程,因为V1流程将在今年晚些时候弃用。