Как загрузить файл в Dropbox с генерацией токена с помощью Dropbox Core SDK for Java?

Имеется Windows-приложение на Java, использующее официальный Dropbox Core SDK (недавно обновлён до версии 4.0.1). Его цель - загрузка пользовательских файлов в облако в целях создания резервных копий. Ранее всё работало путём получения long-lived access token (перманентного ключа доступа) через консоль приложения. После этого аутентификация происходила следующим образом:

import com.dropbox.core.DbxException;
import com.dropbox.core.DbxRequestConfig;
import com.dropbox.core.v2.DbxClientV2;

public class Main {
    private static final String ACCESS_TOKEN = "<ACCESS TOKEN>";

    public static void main(String args[]) throws DbxException {
        // Create Dropbox client
        DbxRequestConfig config = DbxRequestConfig.newBuilder("dropbox/javaFileCopy").build();
        DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
    }
}

С сентября 2021 года консоль Dropbox не выдаёт перманентные токены, из-за чего каждые 3-4 часа приходится "ручным образом" получать новый, что неприемлемо - в силу архитектурных особенностей, токен должен быть непосредственно встроен в код приложения. Также исчезла возможность получить перманентный токен через API.

С связи с этим вопрос - как следует модифицировать код выше для динамического получения временного токена перед загрузкой очередного файла? Загрузка с помощью "готового клиента" происходит следующим образом (file - объект загружаемого файла, inputStream2 - его потоковое представление):

client.files().uploadBuilder("/" + file.getName()).uploadAndFinish(inputStream2);

В целях достижения требуемого функционала и с учётом специфики использования допустимо встроить в код следующие данные: логин и пароль пользователя напрямую, App key, App secret или любую другую информацию, ассоциированную с аккаунтом разработчика. Возможно, следует создать некий refresh token, т.к. приложение работает в так называемом offline-режиме.


Ответы (0 шт):