после прочтения официальной документации Dropbox мне удалось написать этот код для аутентификации пользователя с помощью DropBox и получения его токена доступа. Пользователь должен скопировать и вставить токен, мне не нравится этот шаг, и я заметил, что какой-то разработчик может использовать метод withRedirect()
класса DbxWebAuth
. Существует пример использования перенаправления, но он предназначен для веб-приложений, и я не смог адаптировать его для своего настольного приложения. Кто-нибудь из вас имел какое-либо отношение к этому? В настоящее время это мой код
public static void main(String[] args) throws Exception {
String accessToken = "";
String userLocale = null;
DbxRequestConfig requestConfig = new DbxRequestConfig("text-edit/0.1", userLocale);
DbxAppInfo appInfo = new DbxAppInfo("myString", "myString");
DbxWebAuth auth = new DbxWebAuth(requestConfig, appInfo);
DbxWebAuth.Request requestAuth = DbxWebAuth.newRequestBuilder().withNoRedirect().build();
String authorizeUrl = auth.authorize(requestAuth);
System.out.println("1. Go to " + authorizeUrl);
System.out.println("2. Click \"Allow\" (you might have to log in first).");
System.out.println("3. Copy the authorization code.");
//Abrimos el enlace de autenticación del paciente en la carpeta de DropBox
try {
URL authenticationURL = new URL(authorizeUrl);
Desktop.getDesktop().browse(authenticationURL.toURI());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JFrame frame1 = new JFrame("InputDialog Example #2");
frame1.setAlwaysOnTop(true);
String code = JOptionPane.showInputDialog(frame1, "Insert verification code");
System.out.println(code);
code = code.trim();
try {
DbxAuthFinish authFinish = auth.finishFromCode(code);
accessToken = authFinish.getAccessToken();
} catch (Exception e) {
}
}