1

以下のコードを使用してユーザーのルートフォルダーを取得する簡単な方法のボックスごとの例

http://opensource.box.com/box-java-sdk/

BoxAPIConnection api = new BoxAPIConnection("your-developer-token");
BoxFolder rootFolder = BoxFolder.getRootFolder(api);
for (BoxItem.Info itemInfo : rootFolder) {
System.out.format("[%d] %s\n", itemInfo.getID(), itemInfo.getName());
}

しかし、As-user を使用して他の誰かの情報にアクセスする必要がある場合、BOX SDK クラス (BoxFolder、BoxFile、BoxUser...) を使用できず、以下のように直接 JSON からのみデータを取得する必要があります。その場合、新しい SDK に追加された最新の機能が失われます。それは最善の方法ですか?パフォーマンスはどうですか?利用可能な代替方法はありますか?

url=  new URL("https://api.box.com/2.0/folders/0");
BoxAPIRequest request = new BoxAPIRequest(api,url,"GET"); 
request.addHeader("As-User", "12345678");
BoxJSONResponse response = (BoxJSONResponse) request.send();
JsonObject responseJSON =    JsonObject.readFrom(response.getJSON());

後で JsonObject / JsonArray を使用してフォルダーのプロパティを取得します。フォルダー項目が必要な場合は、以下のように JsonArray をループする必要があります

JsonArray entries = responseJSON.get("entries").asArray();

for (JsonValue entry : entries) 
               { ....}
4

1 に答える 1

3

残念ながら、新しい Java SDK ベータ版にはまだ「As-User」機能のサポートが組み込まれていないため、この種の操作は難しくなっています。1 つの回避策は、 を使用しRequestInterceptorBoxAPIConnection、「As-User」ヘッダーをすべてのリクエストに手動で追加することです。

api.setRequestInterceptor(new RequestInterceptor() {
    @Override
    public BoxAPIResponse onRequest(BoxAPIRequest request) {
        request.addHeader("As-User", "user-id");

        // Returning null means the request will be sent along with our new header.
        return null;
    }
}

これにより、SDK の残りの部分を通常どおり使用できるようになり、API リクエストを手動で行うことを心配する必要がなくなります。「As-User」サポートを追加するための問題も作成しました。

于 2015-02-12T21:29:24.417 に答える