1

ボックスのユーザー アカウントからデータを取得しようとしています。今のところ、トークンを生成しましたが、ルート フォルダーのコンテンツを取得できません (たとえば)。

トークンを取得するには、次のリクエストでチケットを取得します。

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

その後、アプリケーションで webView を呼び出して、このページをロードします。

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

ユーザー ログが正常に取得されたら、Web ページを解析してトークンを抽出します。

問題が発生しました。ルート フォルダーのコンテンツを取得できません。これは私がAFNetworkingで試したことです:

  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

これを解決するのを手伝ってもらえますか? ありがとうございました。

4

1 に答える 1

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 認証プロセスを通じてトークンを取得する必要があります。

補足として、V1 プロセスは今年後半に廃止される予定であるため、OAuth 2 プロセスを使用するようにしてください。

于 2013-02-05T20:50:25.993 に答える