1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-29 22:27:42 +02:00

Проброс авторизации в Yandex Disk

This commit is contained in:
Anton Titovets
2025-11-09 00:33:53 +03:00
parent 5fae8ebad9
commit a485fc2a39
3 changed files with 156 additions and 0 deletions

View File

@@ -41,6 +41,59 @@
#Область ПрограммныйИнтерфейс
#Область Авторизация
// Получить код подтверждения
// Получает код подтверждения и адрес страницы, на которой его необходимо ввести
//
// Параметры:
// ClientId - Строка - Client id - id
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьКодПодтверждения(Знач ClientId) Экспорт
Результат = OPI_YandexID.ПолучитьКодПодтверждения(ClientId);
Возврат Результат;
КонецФункции
// Преобразовать код в токен
// Преобразовывает код в токен после ввода кода при выполнении ПолучитьКодПодтверждения
//
// Параметры:
// ClientId - Строка - Client id - id
// ClientSecret - Строка - Client secret - secret
// КодУстройства - Строка - device_code из ПолучитьКодПодтверждения - device
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПреобразоватьКодВТокен(Знач ClientId, Знач ClientSecret, Знач КодУстройства) Экспорт
Результат = OPI_YandexID.ПреобразоватьКодВТокен(ClientId, ClientSecret, КодУстройства);
Возврат Результат;
КонецФункции
// Обновить токен
// Обновляет токен по Refresh token
//
// Параметры:
// ClientId - Строка - Client id - id
// ClientSecret - Строка - Client secret - secret
// RefreshToken - Строка - Refresh token - refresh
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ОбновитьТокен(Знач ClientId, Знач ClientSecret, Знач RefreshToken) Экспорт
Результат = OPI_YandexID.ОбновитьТокен(ClientId, ClientSecret, RefreshToken);
Возврат Результат;
КонецФункции
#КонецОбласти
#Область РаботаСФайламиИПапками
// Получить информацию о диске

View File

@@ -305,6 +305,7 @@
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ВК_ЗагрузитьВидео" , "Загрузить видео" , ВКонтакте);
НовыйТест(ТаблицаТестов, "ЯДиск_Авторизация" , "Авторизация" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск);
НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск);
@@ -2581,6 +2582,54 @@
КонецФункции
Функция Проверка_YandexDisk_ПолучитьКодПодтверждения(Знач Результат, Знач Вариант)
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
ОжидаетЧто(Результат["verification_url"]).Заполнено();
ОжидаетЧто(Результат["device_code"]).Заполнено();
Возврат Результат;
КонецФункции
Функция Проверка_YandexDisk_ПреобразоватьКодВТокен(Знач Результат, Знач Вариант, Параметры = "")
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
Если Результат.Получить("access_token") <> Неопределено Тогда
Токен = Результат["access_token"];
ЗаписатьПараметр("YandexDisk_Token", Токен);
Параметры.Вставить("YandexDisk_Token", Токен);
Токен = Результат["refresh_token"];
ЗаписатьПараметр("YandexDisk_RefreshToken", Токен);
Параметры.Вставить("YandexDisk_RefreshToken", Токен);
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция Проверка_YandexDisk_ОбновитьТокен(Знач Результат, Знач Вариант, Параметры = "")
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
ОжидаетЧто(Результат["access_token"]).Заполнено();
ОжидаетЧто(Результат["refresh_token"]).Заполнено();
Токен = Результат["access_token"];
ЗаписатьПараметр("YandexDisk_Token", Токен);
Параметры.Вставить("YandexDisk_Token", Токен);
Токен = Результат["refresh_token"];
ЗаписатьПараметр("YandexDisk_RefreshToken", Токен);
Параметры.Вставить("YandexDisk_RefreshToken", Токен);
Возврат Неопределено;
КонецФункции
Функция Проверка_Viber_УстановитьWebhook(Знач Результат, Знач Вариант)
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();

View File

@@ -656,6 +656,20 @@
#Область YandexDisk
Процедура ЯДиск_Авторизация() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_ClientID", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_ClientSecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YandexDisk_RefreshToken", ПараметрыТеста);
YandexDisk_ПолучитьКодПодтверждения(ПараметрыТеста);
YandexDisk_ПреобразоватьКодВТокен(ПараметрыТеста);
YandexDisk_ОбновитьТокен(ПараметрыТеста);
КонецПроцедуры
Процедура ЯДиск_ПолучитьИнформациюОДиске() Экспорт
ПараметрыТеста = Новый Структура;
@@ -4949,6 +4963,46 @@
#Область YandexDisk
Процедура YandexDisk_ПолучитьКодПодтверждения(ПараметрыФункции)
ClientID = ПараметрыФункции["YandexDisk_ClientID"];
Результат = OPI_YandexDisk.ПолучитьКодПодтверждения(ClientID);
// END
Обработать(Результат, "YandexDisk", "ПолучитьКодПодтверждения");
КонецПроцедуры
Процедура YandexDisk_ПреобразоватьКодВТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["YandexDisk_ClientID"];
ClientSecret = ПараметрыФункции["YandexDisk_ClientSecret"];
КодУстройства = "12345678";
Результат = OPI_YandexDisk.ПреобразоватьКодВТокен(ClientID, ClientSecret, КодУстройства);
// END
Обработать(Результат, "YandexDisk", "ПреобразоватьКодВТокен", , ПараметрыФункции);
КонецПроцедуры
Процедура YandexDisk_ОбновитьТокен(ПараметрыФункции)
ClientID = ПараметрыФункции["YandexDisk_ClientID"];
ClientSecret = ПараметрыФункции["YandexDisk_ClientSecret"];
RefreshToken = ПараметрыФункции["YandexDisk_RefreshToken"];
Результат = OPI_YandexDisk.ОбновитьТокен(ClientID, ClientSecret, RefreshToken);
// END
Обработать(Результат, "YandexDisk", "ОбновитьТокен", , ПараметрыФункции);
КонецПроцедуры
Процедура YandexDisk_ПолучитьИнформациюОДиске(ПараметрыФункции)
Токен = ПараметрыФункции["YandexDisk_Token"];