1

Box iOS SDK をプロジェクトに統合する手順に問題があります。https://github.com/box/box-ios-sdk-v2の指示に従い、アプリが正常に認証されました。今、私は最初の部分 (フォルダーの子を取得する) の API 呼び出しのセクションで立ち往生しています。これを機能させるための私のスケルトン アプリには、今のところ基本的に 2 つのボタンがあります。(1) リンク。(2)子供を得る。リンクすると、box.com にログインするよう求められます。そうです; その後、空の画面に戻ります。次に、プログラムを再度実行してから、get children をクリックする必要があります。このリンク ( iOS Box SDK BoxFolder.children は常に nil ) とその他の質問を調べて解決策を見つけようとしましたが、できませんでした。それぞれのルーチンは次のとおりです。

- (IBAction)linkAction:(id)sender {

    UIViewController *authorizationController = [[BoxAuthorizationViewController alloc] initWithAuthorizationURL:[[BoxSDK sharedSDK].OAuth2Session authorizeURL] redirectURI:nil]; 
    [self presentViewController:authorizationController animated:YES completion:nil]; 
}

- (IBAction)getChildrenAction:(id)sender { 

    BoxCollectionBlock success = ^(BoxCollection *collection) 
    { 
        dispatch_sync(dispatch_get_main_queue(), ^{ 
            NSLog(@"CHILDREN SUCCESS!!!"); 
        }); 
    }; 

    BoxAPIJSONFailureBlock failure = ^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSDictionary *JSONDictionary)
    {

        dispatch_sync(dispatch_get_main_queue(), ^{ 
            // handle errors 
            NSLog(@"CHILDREN ERROR, error = %@", error); 
        }); 
    }; 

    NSString *folderID = BoxAPIFolderIDRoot; 

    [[BoxSDK sharedSDK].foldersManager folderItemsWithID:folderID requestBuilder:nil success:success failure:failure]; 

}

リンク後の成功した出力は次のとおりです。

2013-09-16 17:18:45.585 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:11303] -[BoxParallelAPIQueueManager enqueueOperation:]: グローバル キュー 2013-09-16 17:18:45.585 BoxIntegratedApp に POST api.box.com/oauth2/token をエンキュー-Without_Addition_of_Sample_Files[760:11303] LINKED!! 2013-09-16 17:18:45.587 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] +[BoxAPIOperation globalAPIOperationNetworkThreadEntryPoint:]: {name = Box API 操作スレッド、num = 4} 開始 2013-09-16 17:18:45.587 BoxIntegratedApp- Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIOperation executeOperation]: BoxAPIOperation POST api.box.com/oauth2/token が開始されました 2013-09-16 17:18:45.588 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIOperation executeOperation]: 開始中POST api.box.com/oauth2/token 2013-09-16 17:18:45。596 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:11303] -[BoxAuthorizationViewController webViewDidFinishLoad:] 2013-09-16 17:18:46.186 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIOperation connectionDidFinishLoading:]: BoxAPIOperation POST/oauth.api/oauth.トークンは読み込みを終了しました 2013-09-16 17:18:46.187 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIQueueManager OAuth2OperationDidComplete:]: POST api.box.com/oauth2/token が完了しました。OAuth2 依存関係のセットからの削除 com/oauth2/token did finsh loading 2013-09-16 17:18:46.187 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIQueueManager OAuth2OperationDidComplete:]: POST api.box.com/oauth2/token が完了しました。OAuth2 依存関係のセットからの削除 com/oauth2/token did finsh loading 2013-09-16 17:18:46.187 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIQueueManager OAuth2OperationDidComplete:]: POST api.box.com/oauth2/token が完了しました。OAuth2 依存関係のセットからの削除

2013-09-16 17:18:46.188 BoxIntegratedApp-Without_Addition_of_Sample_Files[760:1730f] -[BoxAPIOperation 終了]: BoxAPIOperation POST api.box.com/oauth2/token が状態 3 で終了しました

子を取得しようとした後の失敗した出力は次のとおりです。

15407] -[BoxAPIAuthenticatedOperation connection:didReceiveResponse:]: OAuth2 アクセス トークンの有効期限が切れています。2013-09-16 17:25:46.670 BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIAuthenticatedOperation 接続:didReceiveResponse:]: 認証に失敗した再エンキュー操作:15407] -[BoxParallelAPIQueueManager enqueueOperation:]: グローバル キュー 2013-09-16 17:25:46.671 で GET api.box.com/2.0/folders/0/items をエンキューしました BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIAuthenticatedOperation 接続:didReceiveResponse:]: 自動 OAuth2 トークン更新を試みています 2013-09-16 17:25:46.671 BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxParallelOAuth2Session performRefreshTokenGrant:]: アクセス トークンの有効期限が切れました: box.com/oauth2/token 完了。OAuth2 依存関係のセットからの削除 2013-09-16 17:25:47.041 BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIOperation 終了]: BoxAPIOperation POST api.box.com/oauth2/token が状態 3 2013-09-16 で終了しました17:25:47.047 BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIOperation executeOperation]: BoxAPIOperation GET api.box.com/2.0/folders/0/items が開始されました 2013-09-16 17:25:47.048 BoxIntegratedApp-Without_Addition_of_Sample_Files[ 794:15407] -[BoxAPIOperation executeOperation]: GET api.box.com/2.0/folders/0/items 2013-09-16 17:25:47.281 を開始しています BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIOperation connectionDidFinishLoading:]: BoxAPIOperation GET api.box.com/2.0/folders/0/items は 2013-09-16 17:25:47 の読み込みを完了しました。

2013-09-16 17:25:47.282 BoxIntegratedApp-Without_Addition_of_Sample_Files[794:15407] -[BoxAPIOperation 終了]: BoxAPIOperation GET api.box.com/2.0/folders/0/items は状態 3 で終了しました

box.com のベース ディレクトリにファイルがあります。誰かがこれで私を助けることができれば、私は非常に感謝しています. 私は指示に明示的に従おうとしてきました。または、これを診断するためにさらに情報が必要な場合はお知らせください。どうもありがとうございました。

ヴィノード

4

1 に答える 1

1

あなたが持っていたエラーコードは20002で、この状態を表しています

アクセス トークンの有効期限が切れており、以前に再エンキューされているため、操作を再エンキューできません。

これはボックス API GIT ドキュメントからのものであるため、この操作を実行するときにアクセス トークンが有効であることを確認する必要があります。

また、次のようなことを行う必要があるフォルダーピッカーを見てください。

   if ([BoxSDK sharedSDK].OAuth2Session.isAuthorized)
{
    // in order to avoid a short lag, jump immediatly to the file picker if we are already authorized
    [self presentBoxFolderPicker];
}
else
{
    BoxFolderBlock success = ^(BoxFolder * folder) {
        [self presentBoxFolderPicker];
    };
    BoxAPIJSONFailureBlock failure = ^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, NSDictionary *JSONDictionary){
        [self boxError:error];
    };
    // try sending a hearbeat
    [[BoxSDK sharedSDK].foldersManager folderInfoWithID:BoxAPIFolderIDRoot
                                         requestBuilder:nil
                                                success:success
                                                failure:failure];
}
于 2013-10-02T08:11:08.057 に答える