Подключение к Яндекс.Диску через REST API

04.08.17

Интеграция - WEB-интеграция

Эта обработка позволит подключить вашу конфигурацию к Яндекс.Диску. В ней есть графический интерфейс, поэтому можно проверить работоспособность до встраивания обработки в конфигурацию.

Скачать исходный код

Наименование Файл Версия Размер
ОбменЯндексДиск.epf
.epf 17,63Kb
119
.epf 17,63Kb 119 Скачать

Возможности

  • OAuth-авторизация
  • Обзор файлов
  • Доступ к папке приложения
  • Добавление папок
  • Загрузка файлов на Яндекс.Диск
  • Скачивание файлов с Яндекс.Диска
  • Удаление файлов и папок

Использование

  1. Зарегистрируйте свое приложение на OAuth-сервере https://oauth.yandex.ru/, включите необходимые права на вкладке "Яндекс.Диск REST API", оставьте Callback URL по умолчанию — https://oauth.yandex.ru/verification_code
  2. Скачайте обработку.
  3. Загрузите обработку в конфигурацию или подключите ее через подсистему дополнительных отчетов и обработок из БСП.
  4. Получите код авторизации
    1. Перейдите по адресу https://oauth.yandex.ru/authorize?response_type=code&client_id=(ID приложения) от имени пользователя, аккаунт которого вы хотите использовать.
    2. Разрешите доступ к вашему Яндекс.Диску, код авторизации появится на экране.
    3. Можете реализовать автоматическое получение кода авторизации аналогично тому, как это сделано на основной форме обработки командой ЗаполнитьКодАвторизации.
  5. Используйте процедуру "Токен" из модуля объекта обработки для обмена полученного кода авторизации на OAuth-токен. Токен выдается на один год и используется во всех прикладных методах.
  6. Используйте программный интерфейс объекта обработки, модуль объекта содержит подробные комментарии.

Папка приложения

REST API позволяет использовать "папки приложений". Если при регистрации приложения на OAuth-сервере задать такой доступ, то приложение сможет использовать данные только из своей папки Приложения/<Название приложения>. Папки приложений удобно использовать для обмена между базами, чтобы не выбирать путь к папке в каждой базе.

Инициализация

// Создаем объект из конфигурации
ЯндексДиск = Обработки.ОбменЯндексДиск.Создать();

// Или создаем объект из подсистемы доп обработок БСП 2.3
ЯндексДиск = ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(СсылкаНаДопОбработку);

ЯндексДиск.IDПриложения = Константы.IDПриложенияЯндексДиск.Получить();
ЯндексДиск.ПарольПриложения = Константы.ПарольПриложенияЯндексДиск.Получить();
ЯндексДиск.КодАвторизации = КодАвторизации;

ЯндексДиск.Токен();

Просмотр и скачивание файлов

// Получаем список файлов в папке приложения
ЯндексДиск.СписокФайлов("app:/");

ВременныйФайл = ПолучитьИмяВременногоФайла("xml");

// Ищем файл для загрузки
Для Каждого Стр Из ЯндексДиск.СписокФайлов Цикл
    Если Стр.Тип = "file" И СтрНачинаетсяС(Стр.Имя, "Message1to2") Тогда

        // Скачиваем файл
        АдресФайла = ЯндексДиск.СкачатьФайл(Стр.Путь);
        ДанныеФайла = ПолучитьИзВременногоХранилища(АдресФайла);
        ДанныеФайла.Записать(ВременныйФайл);

        // Читаем данные из файла
        ЧтениеXML = Новый ЧтениеXML;
        ЧтениеXML.ОткрытьФайл(ВременныйФайл);

        // (...) Обработка объекта ЧтениеXML

    КонецЕсли;
КонецЦикла;

УдалитьФайлы(ВременныйФайл);

Загрузка файлов на Яндекс.Диск

ВременныйФайл = ПолучитьИмяВременногоФайла("xml");

// Подготавливаем файл для выгрузки
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ВременныйФайл);
ЗаписьXML.ЗаписатьБезОбработки(ТекстXML);
ЗаписьXML.Закрыть();

// Выгружаем данные
АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ВременныйФайл));
ЯндексДиск.ЗагрузитьФайл("app:/Message2to1.xml", АдресФайла, Истина);

УдалитьФайлы(ВременныйФайл);

Особенности

  • Для работы нужна версия платформы 8.3.6 и выше.
  • Используются кроссплатформенные объекты для работы с HTTP запросами, так что должно работать на Linux и Mac.

https://github.com/vpozdnyakov/YandexDiskExchangeXML — страничка проекта на GitHub

яндекс.диск яндекс диск обмен синхронизация интеграция HTTP REST API github SDK OAuth БСП

См. также

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17851    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25856    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88880    162    216    

318

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16467    42    49    

23

Merlion Commander Версия 1.3.9.2 - июль 2022 г. (Интеграция с 1С: УT, редакция 11.4, 1С:Розница 2.3,1С:ERP Управление предприятием 2, УТ 10.3, редакция веб-сервиса MERLION API 3.0 от 18.08.2021)

Оптовая торговля Розничная торговля WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Расширении конфигурации "Управление торговлей, редакция 11" для работы с веб-сервисом Мерлион с помощью Merlion API. Расширение и набор подключаемых дополнительных обработок позволяет без изменения конфигурации получить возможность работы с API крупнейшего российского дистрибьютора http://merlion.com. Логика работы максимально приближена к работе веб-сервиса b2b. Вы сможете создать и исправить заказ, зарезервировать товар прямо из 1С, посмотреть актуальные остатки и цены, импортировать штрихкода EAN13 товаров, загружать заказ c автоматическим созданием номенклатуры в 1С и корректности создания. Можно выбирать характеристики по товарным группам и загружать товар с выбранными характеристиками, загружать изображения товара. Не требуется установки дополнительного ПО для работы с веб-сервисом. Кроссплатформенное решение для ОС Windows и Linux. Весь код модулей открыт и доступен для просмотра и внесения изменений.

8280 руб.

02.05.2017    40958    43    64    

50
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. N2 3 15.09.17 17:01 Сейчас в теме
Добрый день!

Спасибо Вам огромное за отличную разработку и подробную статью!

Скажите пожалуйста, КодАвторизации это что? Пробовал "https://oauth.yandex.ru/verification_code" и полученный токен. В обоих случаях вываливается с ошибкой:

{Обработка.ОбменЯндексДиск.МодульОбъекта(236)}: Запрос: /token
Код ответа: 400
Тело ответа: {"error_description": "Invalid code", "error": "bad_verification_code"}
		ВызватьИсключение ТекстИсключения;


Разобрался! Код авторизации можно получить после авторизации через обработку в публикации.
2. men260181 22 21.09.17 11:19 Сейчас в теме
Ошибка в тексте статьи: ЯндексДиск.ЗагрузитьФайл("app:/Message2to1.xml", АдресФайла, Истина);

Должно быть: ЯндексДиск.ЗагрузитьФайл("disk:/Message2to1.xml", АдресФайла, Истина);
3. vitaliy1911 38 21.09.17 11:51 Сейчас в теме
(2) добрый день. disk — это путь до корня, app — это путь до папки вашего приложения. про папки приложений я написал в статье.
4. dimasts 22 07.11.17 19:14 Сейчас в теме
Я правильно понимаю, что не предусмотрена возможность получения публичной ссылки на загруженный в ЯндексДиск файл?
5. vitaliy1911 38 07.11.17 22:02 Сейчас в теме
(4) добавил на гитхабе, по ссылке в статье перейдите
ilya4; dimasts; +2 Ответить
6. dimasts 22 09.11.17 13:05 Сейчас в теме
Очень странно работает. Поставил данные от другой учётной записи, отозвал все токены, поменял пароли прилолжения, перезагрузил компьютер, вообще удалил приложение...

а она всё равно работает с тем же диском и причём нормально работает удаляет и публикует файлы как положено. В чём может быть дело?
7. dimasts 22 09.11.17 13:30 Сейчас в теме
(6) Разобрался. НАдо внимательно следить для какого аккаунта в браузере при авторизации запрашивается разрешени
vitaliy1911; +1 Ответить
8. Vladislava-smile 14.08.18 03:28 Сейчас в теме
Добрый день. А в обычном приложении выскакивает ошибка при получении токена: "error_description": "grant_type not in POST", "error": "invalid_request". Не подскажите в чем проблема? Где рыть?
9. vitaliy1911 38 14.08.18 11:17 Сейчас в теме
(8) добрый день. запишите пожалуйста проблему в гитхабе, опишите сценарий воспроизведения и укажите номер версии платформы.
10. Vladislava-smile 15.08.18 10:57 Сейчас в теме
(9) Проблема была решена путем удаления приложения и созданием его заново.
11. Vladislava-smile 15.08.18 10:57 Сейчас в теме
Спасибо автору, очень полезная статья!
12. primat 3654 10.08.20 00:41 Сейчас в теме
Спасибо за публикацию! Скажите, а есть ли способ получить публичную ссылку на файл, выложенный через эту обработку?
13. vitaliy1911 38 10.08.20 04:31 Сейчас в теме
(12) да, есть интерфейс. посмотрите версию на гитхабе https://github.com/vpozdnyakov/1CYandexDiskExchange
14. user768010 25.05.21 07:43 Сейчас в теме
Большое спасибо, очень полезная статья!
15. IncomeGroup 36 08.01.22 12:40 Сейчас в теме
16. vika64 75 09.05.22 11:26 Сейчас в теме
Спасибо за обработку!! все работает ! Единственное в описании не совсем понятно как прописать Callback URL и пришлось поискать. Добавьте в описание что нужно отметить платформу Веб сервисы.
17. IrinaMakatukha 10.11.22 20:53 Сейчас в теме
Скажите пожалуйста можно ли с помощью этой обработки сохранять табличный документ в Яндекс документы ? интересует чтобы потом в любом месте человек со смартфона мог по ссылке открыть файлик и там редактировать что угодно и был совместный доступ . Сейчас же есть Яндекс документы как аналог Гугл таблиц.
18. ZIGRAS 26.09.23 14:20 Сейчас в теме
Добрый! У вас на сегодняшний день работает выгрузка файлов? Что только не делал вылетает ошибка "413 Request Entity Too Large" - "слишком большой размер файла", тестовый файл 50кб. Вашей обработкой пробовал включительно. Все работает кроме выгрузки файла.
Оставьте свое сообщение