Обработка позволяет взаимодействовать с файлами на Яндекс.Диске через REST API. Можно использовать в интерактивном или программном режиме.
- OAuth-авторизация
- Обзор файлов
- Доступ к папке приложения
- Добавление папок
- Загрузка файлов на Яндекс.Диск
- Скачивание файлов с Яндекс.Диска
- Удаление файлов и папок
- Публикация и отмена публикации ресурсов
Платформа версии 8.3.6 и выше
- Зарегистрируйте свое приложение на OAuth-сервере https://oauth.yandex.ru/, включите необходимые права на вкладке "Яндекс.Диск REST API", оставьте Callback URL по умолчанию — https://oauth.yandex.ru/verification_code
- Выгрузите обработку из конфигурации этого проекта (подробнее...)
- Загрузите обработку в конфигурацию или подключите ее через подсистему дополнительных отчетов и обработок из БСП.
- Получите код авторизации
- Перейдите по адресу https://oauth.yandex.ru/authorize?response_type=code&client_id=(ID приложения) от имени пользователя, аккаунт которого вы хотите использовать.
- Разрешите доступ к вашему Яндекс.Диску, код авторизации появится на экране.
- Можете реализовать автоматическое получение кода авторизации аналогично тому, как это сделано на основной форме обработки командой ЗаполнитьКодАвторизации.
- Используйте процедуру "Токен" из модуля объекта обработки для обмена полученного кода авторизации на OAuth-токен. Токен выдается на один год и используется во всех прикладных методах.
- Используйте программный интерфейс объекта обработки, модуль объекта содержит подробные комментарии.
REST API, в отличие от Web DAV, позволяет использовать "Папки приложений". Если при регистрации приложения на OAuth-сервере задать соответствующий доступ, то приложение сможет использовать только данные из своей собственной папки Приложения/<Название приложения>. Эту возможность можно использовать, например, при организации обменов между базами, избавляя пользователя от необходимости выбирать папку для обмена.
// Инициализируем объект из конфигурации
ЯндексДиск = Обработки.ОбменЯндексДиск.Создать();
// Или инициализируем объект из подсистемы доп обработок БСП 2.3
ЯндексДиск = ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(СсылкаНаДопОбработку);
ЯндексДиск.IDПриложения = Константы.IDПриложенияЯндексДиск.Получить();
ЯндексДиск.ПарольПриложения = Константы.ПарольПриложенияЯндексДиск.Получить();
ЯндексДиск.КодАвторизации = КодАвторизации;
ЯндексДиск.Токен();
// Получаем список файлов в папке приложения
ЯндексДиск.СписокФайлов("app:/");
ВременныйФайл = ПолучитьИмяВременногоФайла("xml");
// Ищем файл для загрузки
Для Каждого Стр Из ЯндексДиск.СписокФайлов Цикл
Если Стр.Тип = "file" И СтрНачинаетсяС(Стр.Имя, "Message1to2") Тогда
// Скачиваем файл
АдресФайла = ЯндексДиск.СкачатьФайл(Стр.Путь);
ДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
ДанныеФайла.Записать(ВременныйФайл);
// Читаем данные из файла
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ВременныйФайл);
// (...) Обработка объекта ЧтениеXML
КонецЕсли;
КонецЦикла;
УдалитьФайлы(ВременныйФайл);
ВременныйФайл = ПолучитьИмяВременногоФайла("xml");
// Подготавливаем файл для выгрузки
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ВременныйФайл);
ЗаписьXML.ЗаписатьБезОбработки(ТекстXML);
ЗаписьXML.Закрыть();
// Выгружаем данные
АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл));
ЯндексДиск.ЗагрузитьФайл("app:/Message2to1.xml", АдресФайла, Истина);
УдалитьФайлы(ВременныйФайл);