2013-02-05 4 views
1

상자 사용자 계정에서 데이터를 가져 오려고합니다. 지금은 토큰을 생성했지만 루트 폴더 내용을 가져올 수 없습니다 (예 :).상자 구름 (box.com)에서 사용자 데이터에 액세스하십시오.

토큰을 얻기 위해,이 요청에 티켓을 얻을 : 성공적으로 사용자 로그 후

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

:이 페이지를로드 내 응용 프로그램에서 웹보기를 호출 그 후

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

나는 웹 페이지를 파싱하고 토큰을 추출한다.

이제 문제가 발생합니다. 루트 폴더 콘텐츠를 가져올 수 없습니다. 내가 AFNetworking으로 무엇을하려고 이다 : (her를 제안)

  1. 내가 AFHTTPClient 클래스에서이 메도를 추가

    -(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); 
    }]; 
    

하지만 난이 localizedDescription :

[HTTPClient Error]: Expected status code in (200-299), got 401 

이 문제를 해결하도록 도와 줄 수 있습니까? 고맙습니다.

답변

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 인증 프로세스를 통해 토큰을 얻으십시오.

sidenote로, V1 과정이 올해 후반에 중단 될 예정이므로 OAuth 2 프로세스를 사용해보십시오.

관련 문제