0

私は OAuth 2.0 を初めて使用し、以下に説明するユーザー ケースの最適なアプローチについて少し不明です。

box.com からデータを取得するために使用する Web サービスがあります。これはマルチスレッド サービスであり、box.com から同時に複数のスレッドをプルすることができます。さらに、box.com からファイルをプルする Web サービスの複数のインスタンスがあります。それらは、サービスの異なるインスタンスによって同じファイルが 2 回プルされないように協力します。Web サービスのインスタンスがダウンしている場合、作業負荷は他の使用可能なインスタンスに移行されます。

それで、ここに質問のリストがありますか?

  1. box.com Java API v2 スレッドセーフによって提供される BoxClient はありますか?
  2. BoxClient がスレッド セーフでない場合、新しいクライアントをインスタンス化するときに、フォルダーのユーザー/所有者に新しいアクセス コードの要求を承認するよう要求する必要がありますか? フォルダのユーザー/所有者にとってはかなりの負担のようです。
  3. リフレッシュ トークンのコピーを保持している場合、oauth 2.0 のダンスを繰り返さずに新しい BoxClient を作成できますか? サンプルコードはありますか?
4

2 に答える 2

0

SDK のソース コードについて少し読んだ後、リフレッシュ トークンを使用してボックス クライアントを取得するコードを次に示します。

public BoxClient getAuthenticatedClient(String refreshToken, String apiKey, String apiSecret)  {
    BoxResourceHub hub = new BoxResourceHub();
    BoxJSONParser parser = new BoxJSONParser(hub);
    IBoxConfig config = (new BoxConfigBuilder()).build();
    BoxClient client = new BoxClient(apiKey, apiSecret, hub, parser, config);
    Map<String, Object> map = new HashMap<String, Object>();
    map.put(BoxOAuthToken.FIELD_REFRESH_TOKEN, refreshToken);
    BoxOAuthToken bt = new BoxOAuthToken(map);
    client.authenticate(bt);
    return client;
}
于 2014-07-10T16:24:59.937 に答える