Около трех лет назад мы добавили новые специальные компоненты – «Транспорты». Они помогают сохранять построенные отчёты в облако, а также использовать находящиеся в облаке файлы (например, картинки) для построения отчётов.
До текущего момента было 4 облачных транспорта: Dropbox, Google Drive, Box, OneDrive. А также 2 необлачных транспорта: Email и FTP. О их настройке облачных транспортов можете почитать тут, а о том как использовать файлы из облака тут.
Эта статья посвящается добавлению пятого облачного транспорта: Яндекс Диска. Рассмотрим же все тонкости настройки с подробным описанием возможностей.
Если вы уже работали с нашими облачными транспортами, то можете переходить сразу на главу с настройкой подключения.
Важно! Для работы протокола https необходимы следующие библиотеки Open SSL: libssl-3.dll и libcrypto-3.dll их можно найти в директории с главным демо приложением. Библиотеки необходимо скопировать в папку с приложением или системную директорию.
Первым шагом, как и с другими транспортами, вам нужно добавить соответствующий компонент из вкладки “FastReport VCL Internet transports”.
Можно использовать контекстное меню на компоненте. Это установит подключение прямо из среды разработки. Нажимаем на подменю “Edit connection”.
По умолчанию транспорты реагируют только на ответ авторизации от браузера используя порт 9898. Если этот порт уже занят или планируется использовать данный порт в дальнейшем, то FastReport VCL позволяет изменить порт в свойстве ListenerPort.
Далее будем предполагать использование порта 9898 по умолчанию.
Важно! Пользователю не нужно выполнять все нижеперечисленные действия каждый раз, для авторизации. Данная настройка выполняется только один раз администратором облачных сервисов. После выполнения всех действий полученные авторизационные данные могут быть использованы другими пользователями.
Когда пользователь хочет открыть или сохранить в файл с помощью транспорта, то он увидит стандартный диалог авторизации (если он не авторизовался ранее).
Для перехода на страницу настроек подключения нажмите на знак вопроса справа вверху окна авторизации. После этого будет открыт браузер по умолчанию со страницей доступа внешних приложений Яндекс Диска. Если пользователь не авторизован в Яндексе, то откроется страница с авторизацией, на которой нужно будет войти в аккаунт Яндекса.
Нажмите на кнопку «Зарегистрировать новое приложение».
Введите название приложения и спускайтесь ниже.
В пункте «Платформы» выберете «Веб-сервисы», в поле «Callback URI» укажите «http://localhost:9898», а после нажмите кнопку “Добавить”.
Обратите внимание, что порт должен соответствовать порту, указанному в свойстве ListenerPort у компонента транспорта.
Список возможных доступов достаточно длинный, поэтому на картинке ниже мы скрыли большую их часть.
Откройте пункт «Яндекс.Диск REST API» и поставьте галочку у полей «Запись в любом месте на Диске» и «Чтение всего Диска».
После чего спуститесь в самый низ и нажмите «Создать приложение».
Вы увидите, что приложение создано. Скопируйте поля «ID» и «Пароль».
И вставьте их в соответствующие поля ввода диалога авторизации FastReport VCL.
Нажмите “Ok”. Должно открыться новое окно в браузере, который установлен по умолчанию. На экране высветится предложение выбрать аккаунт для авторизации.
После выбора аккаунта окно браузера можно закрыть.
При удачном подключении вы увидите стандартный браузер файлов FastReport VCL.
На данном скриншоте вы можете видеть проверку на поддержку юникода.
Мы считаем транспорты важной частью нашего продукта и будем постепенно увеличивать их количество, но как спрос рождает предложение, так и транспорты создаются по вашим заявкам. Если у вас есть какие-либо предложения, то вы можете написать нам в поддержку.