Я просматривал Java SDK для Box по адресу https://github.com/box/box-java-sdk-v2
Я видел образец фрагмента
String url = "https://www.box.com/api/oauth2/authorize?response_type=code&client_id=" + key + "&redirect_uri=http%3A//localhost%3A" + PORT;
try {
Desktop.getDesktop().browse(java.net.URI.create(url));
code = getCode();
System.out.println("code: " + code);
} catch (IOException e) {
e.printStackTrace();
}
«код» используется для создания «BoxOAuthToken».
Это отлично работает!
Мой вопрос: «код» должен генерироваться для каждого запроса. Это включает в себя запуск браузера и аутентификацию пользователя в Box. Но что, если я хочу запустить это на веб-сервере и открыть веб-службу? Я хотел бы, чтобы пользователи аутентифицировались из своего браузера и позволяли веб-серверу вызывать
BoxFolder boxFolder= client.getFoldersManager().getFolder("0",null);
ArrayList<BoxTypedObject> folderEntries = boxFolder.getItemCollection().getEntries();
и вернуть результаты клиенту/пользователям в формате JSON.
Любые идеи о том, как этого можно достичь?
На данный момент мой веб-сервер напрямую вызывает API (например, api.box.com/2.0/folders/0) с использованием Apache Commons HTTP и передает токен с заголовком «Авторизация», и это работает. Но мне было интересно, могу ли я использовать SDK.