From 5fae8ebad9b5fdfe1bdeab2c848cd3af527d976a Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Sat, 8 Nov 2025 14:52:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B1=D1=80=D0=BE=D1=81=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20GoogleWokspace=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OPI_GoogleCalendar/Module.bsl | 79 ++++++ .../CommonModules/OPI_GoogleDrive/Module.bsl | 79 ++++++ .../CommonModules/OPI_GoogleSheets/Module.bsl | 79 ++++++ .../OPI_ПолучениеДанныхТестов/Module.bsl | 188 ++++++++++++- .../src/CommonModules/OPI_Тесты/Module.bsl | 261 ++++++++++++++++++ 5 files changed, 683 insertions(+), 3 deletions(-) diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/Module.bsl index 40cf599785..7afc07de5b 100644 --- a/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_GoogleCalendar/Module.bsl @@ -39,6 +39,85 @@ #Область ПрограммныйИнтерфейс +#Область Авторизация + +// Сформировать ссылку получения кода +// Возвращает URL для авторизации в браузере +// +// Параметры: +// ClientID - Строка - Client ID - id +// Calendar - Булево - разрешение на методы Calendar - calendar +// Drive - Булево - разрешение на методы Drive - drive +// Sheets - Булево - разрешение на методы Sheets - sheets +// +// Возвращаемое значение: +// Строка - Ссылка получения кода +Функция СформироватьСсылкуПолученияКода(Знач ClientID + , Знач Calendar = Истина + , Знач Drive = Истина + , Знач Sheets = Истина) Экспорт + + Результат = OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID, Calendar, Drive, Sheets); + Возврат Результат; + +КонецФункции + +// Получить токен по коду +// Получает токен по коду из авторизации в бразуере +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// Code - Строка - Code из браузера - code +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенПоКоду(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + Возврат Результат; + +КонецФункции + +// Обновить токен +// Обновляет токен по Refresh token +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// RefreshToken - Строка - Refresh token - refresh +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач RefreshToken) Экспорт + + Результат = OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + Возврат Результат; + +КонецФункции + +// Получить токен service аккаунта +// Получает токен авторизации по данным service аккаунта +// +// Примечание: +// Список доступных областей действия: [developers.google.com](https://developers.google.com/identity/protocols/oauth2/scopes) +// +// Параметры: +// Данные - Произвольный - JSON данные авторизации как файл, коллекция или двоичные данные - auth +// ОбластиДействия - Массив Из Строка - Область действия (scope) или массив областей - scope +// ВремяЖизни - Число - Время жизни токена в секундах - exp +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенServiceАккаунта(Знач Данные, Знач ОбластиДействия, Знач ВремяЖизни = 3600) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия, ВремяЖизни); + Возврат Результат; + +КонецФункции + +#КонецОбласти + #Область РаботаСМетаданнымиКалендарей // Создать календарь diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/Module.bsl index 4a0cb5720b..8ddf246e51 100644 --- a/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_GoogleDrive/Module.bsl @@ -39,6 +39,85 @@ #Область ПрограммныйИнтерфейс +#Область Авторизация + +// Сформировать ссылку получения кода +// Возвращает URL для авторизации в браузере +// +// Параметры: +// ClientID - Строка - Client ID - id +// Calendar - Булево - разрешение на методы Calendar - calendar +// Drive - Булево - разрешение на методы Drive - drive +// Sheets - Булево - разрешение на методы Sheets - sheets +// +// Возвращаемое значение: +// Строка - Ссылка получения кода +Функция СформироватьСсылкуПолученияКода(Знач ClientID + , Знач Calendar = Истина + , Знач Drive = Истина + , Знач Sheets = Истина) Экспорт + + Результат = OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID, Calendar, Drive, Sheets); + Возврат Результат; + +КонецФункции + +// Получить токен по коду +// Получает токен по коду из авторизации в бразуере +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// Code - Строка - Code из браузера - code +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенПоКоду(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + Возврат Результат; + +КонецФункции + +// Обновить токен +// Обновляет токен по Refresh token +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// RefreshToken - Строка - Refresh token - refresh +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач RefreshToken) Экспорт + + Результат = OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + Возврат Результат; + +КонецФункции + +// Получить токен service аккаунта +// Получает токен авторизации по данным service аккаунта +// +// Примечание: +// Список доступных областей действия: [developers.google.com](https://developers.google.com/identity/protocols/oauth2/scopes) +// +// Параметры: +// Данные - Произвольный - JSON данные авторизации как файл, коллекция или двоичные данные - auth +// ОбластиДействия - Массив Из Строка - Область действия (scope) или массив областей - scope +// ВремяЖизни - Число - Время жизни токена в секундах - exp +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенServiceАккаунта(Знач Данные, Знач ОбластиДействия, Знач ВремяЖизни = 3600) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия, ВремяЖизни); + Возврат Результат; + +КонецФункции + +#КонецОбласти + #Область РаботаСФайламиИКаталогами // Получить информацию об объекте diff --git a/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/Module.bsl index b5c58a2dcd..8230afeedb 100644 --- a/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_GoogleSheets/Module.bsl @@ -39,6 +39,85 @@ #Область ПрограммныйИнтерфейс +#Область Авторизация + +// Сформировать ссылку получения кода +// Возвращает URL для авторизации в браузере +// +// Параметры: +// ClientID - Строка - Client ID - id +// Calendar - Булево - разрешение на методы Calendar - calendar +// Drive - Булево - разрешение на методы Drive - drive +// Sheets - Булево - разрешение на методы Sheets - sheets +// +// Возвращаемое значение: +// Строка - Ссылка получения кода +Функция СформироватьСсылкуПолученияКода(Знач ClientID + , Знач Calendar = Истина + , Знач Drive = Истина + , Знач Sheets = Истина) Экспорт + + Результат = OPI_GoogleWorkspace.СформироватьСсылкуПолученияКода(ClientID, Calendar, Drive, Sheets); + Возврат Результат; + +КонецФункции + +// Получить токен по коду +// Получает токен по коду из авторизации в бразуере +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// Code - Строка - Code из браузера - code +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенПоКоду(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + Возврат Результат; + +КонецФункции + +// Обновить токен +// Обновляет токен по Refresh token +// +// Параметры: +// ClientID - Строка - Client ID - id +// ClientSecret - Строка - Client secret - secret +// RefreshToken - Строка - Refresh token - refresh +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач RefreshToken) Экспорт + + Результат = OPI_GoogleWorkspace.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + Возврат Результат; + +КонецФункции + +// Получить токен service аккаунта +// Получает токен авторизации по данным service аккаунта +// +// Примечание: +// Список доступных областей действия: [developers.google.com](https://developers.google.com/identity/protocols/oauth2/scopes) +// +// Параметры: +// Данные - Произвольный - JSON данные авторизации как файл, коллекция или двоичные данные - auth +// ОбластиДействия - Массив Из Строка - Область действия (scope) или массив областей - scope +// ВремяЖизни - Число - Время жизни токена в секундах - exp +// +// Возвращаемое значение: +// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google +Функция ПолучитьТокенServiceАккаунта(Знач Данные, Знач ОбластиДействия, Знач ВремяЖизни = 3600) Экспорт + + Результат = OPI_GoogleWorkspace.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия, ВремяЖизни); + Возврат Результат; + +КонецФункции + +#КонецОбласти + #Область РаботаСКнигами // Создать книгу diff --git a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index cadae19a69..7dd46e39b1 100644 --- a/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -316,16 +316,16 @@ НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск); НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск); НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , ВСпейс); - НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Календарь); + НовыйТест(ТаблицаТестов, "ГК_Авторизация" , "Авторизация" , Календарь); НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь); НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь); НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь); - НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Драйв); + НовыйТест(ТаблицаТестов, "ГД_Авторизация" , "Авторизация" , Драйв); НовыйТест(ТаблицаТестов, "ГД_ПолучитьСписокКаталогов" , "Получить список каталогов" , Драйв); НовыйТест(ТаблицаТестов, "ГД_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить Файл" , Драйв); НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв); НовыйТест(ТаблицаТестов, "ГД_СоздатьКаталог" , "Создать/Удалить каталог" , Драйв); - НовыйТест(ТаблицаТестов, "ГВ_Авторизация" , "Авторизация" , Таблицы); + НовыйТест(ТаблицаТестов, "ГТ_Авторизация" , "Авторизация" , Таблицы); НовыйТест(ТаблицаТестов, "ГТ_СоздатьТаблицу" , "Создать таблицу" , Таблицы); НовыйТест(ТаблицаТестов, "ГТ_ЗаполнитьОчиститьЯчейки" , "Заполнить/Очистить ячейки" , Таблицы); НовыйТест(ТаблицаТестов, "Твиттер_ДанныеАккаунта" , "Данные аккаунта" , Твиттер); @@ -2352,6 +2352,20 @@ КонецФункции +Функция Проверка_VK_ПолучитьПараметрыАвторизации(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Структура").Заполнено(); + ОжидаетЧто(Результат["v"]).Заполнено(); + ОжидаетЧто(Результат["from_group"]).Заполнено(); + ОжидаетЧто(Результат["group_id"]).Заполнено(); + ОжидаетЧто(Результат["owner_id"]).Заполнено(); + ОжидаетЧто(Результат["app_id"]).Заполнено(); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + + Возврат Результат; + +КонецФункции + Функция Проверка_YandexDisk_ПолучитьИнформациюОДиске(Знач Результат, Знач Вариант) Соответствие_ = "Соответствие"; @@ -2743,6 +2757,62 @@ КонецФункции +Функция Проверка_GoogleCalendar_СформироватьСсылкуПолученияКода(Знач Результат, Знач Вариант) + + Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда + Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат); + КонецЕсли; + + ОжидаетЧто(Результат).ИмеетТип("Строка"); + ОжидаетЧто(СтрНачинаетсяС(Результат, "https://accounts.google.com/o/oauth2")).Равно(Истина); + + ЗаписатьПараметр("Google_Link", Результат); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleCalendar_ПолучитьТокенПоКоду(Знач Результат, Знач Вариант) + + Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда + + ЗаписатьПараметр("Google_Token" , Результат["access_token"]); + ЗаписатьПараметр("Google_Refresh", Результат["refresh_token"]); + + КонецЕсли; + + OPI_Инструменты.Пауза(2); + + Возврат Неопределено; + +КонецФункции + +Функция Проверка_GoogleCalendar_ОбновитьТокен(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_Token", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleCalendar_ПолучитьТокенServiceАккаунта(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_ServiceToken", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + Функция Проверка_GoogleCalendar_ПолучитьСписокКалендарей(Знач Результат, Знач Вариант) ОжидаетЧто(Результат).ИмеетТип("Массив"); @@ -2929,6 +2999,62 @@ КонецФункции +Функция Проверка_GoogleDrive_СформироватьСсылкуПолученияКода(Знач Результат, Знач Вариант) + + Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда + Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат); + КонецЕсли; + + ОжидаетЧто(Результат).ИмеетТип("Строка"); + ОжидаетЧто(СтрНачинаетсяС(Результат, "https://accounts.google.com/o/oauth2")).Равно(Истина); + + ЗаписатьПараметр("Google_Link", Результат); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleDrive_ПолучитьТокенПоКоду(Знач Результат, Знач Вариант) + + Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда + + ЗаписатьПараметр("Google_Token" , Результат["access_token"]); + ЗаписатьПараметр("Google_Refresh", Результат["refresh_token"]); + + КонецЕсли; + + OPI_Инструменты.Пауза(2); + + Возврат Неопределено; + +КонецФункции + +Функция Проверка_GoogleDrive_ОбновитьТокен(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_Token", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleDrive_ПолучитьТокенServiceАккаунта(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_ServiceToken", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + Функция Проверка_GoogleDrive_ПолучитьСписокКаталогов(Знач Результат, Знач Вариант, Параметры = "") Результат = Результат[0]; @@ -3108,6 +3234,62 @@ КонецФункции +Функция Проверка_GoogleSheets_СформироватьСсылкуПолученияКода(Знач Результат, Знач Вариант) + + Если ТипЗнч(Результат) = Тип("ДвоичныеДанные") Тогда + Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат); + КонецЕсли; + + ОжидаетЧто(Результат).ИмеетТип("Строка"); + ОжидаетЧто(СтрНачинаетсяС(Результат, "https://accounts.google.com/o/oauth2")).Равно(Истина); + + ЗаписатьПараметр("Google_Link", Результат); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleSheets_ПолучитьТокенПоКоду(Знач Результат, Знач Вариант) + + Если ЗначениеЗаполнено(Результат["access_token"]) И ЗначениеЗаполнено(Результат["refresh_token"]) Тогда + + ЗаписатьПараметр("Google_Token" , Результат["access_token"]); + ЗаписатьПараметр("Google_Refresh", Результат["refresh_token"]); + + КонецЕсли; + + OPI_Инструменты.Пауза(2); + + Возврат Неопределено; + +КонецФункции + +Функция Проверка_GoogleSheets_ОбновитьТокен(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_Token", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + +Функция Проверка_GoogleSheets_ПолучитьТокенServiceАккаунта(Знач Результат, Знач Вариант) + + ОжидаетЧто(Результат).ИмеетТип("Соответствие"); + ОжидаетЧто(Результат["access_token"]).Заполнено(); + ЗаписатьПараметр("Google_ServiceToken", Результат["access_token"]); + + OPI_Инструменты.Пауза(2); + + Возврат Результат; + +КонецФункции + Функция Проверка_GoogleSheets_СоздатьКнигу(Знач Результат, Знач Вариант, Параметры = "", Наименование = "", МассивЛистов = "") diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl index deb4c7cff8..45533b0a35 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -397,8 +397,11 @@ ПараметрыТеста = Новый Структура; OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_AppID", ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_GroupID", ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("VK_Token", ПараметрыТеста); VK_СоздатьСсылкуПолученияТокена(ПараметрыТеста); + VK_ПолучитьПараметрыАвторизации(ПараметрыТеста); КонецПроцедуры @@ -897,6 +900,23 @@ #Область GoogleCalendar +Процедура ГК_Авторизация() Экспорт + + ПараметрыТеста = Новый Структура; + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста); + + GoogleCalendar_СформироватьСсылкуПолученияКода(ПараметрыТеста); + GoogleCalendar_ПолучитьТокенПоКоду(ПараметрыТеста); + GoogleCalendar_ОбновитьТокен(ПараметрыТеста); + GoogleCalendar_ПолучитьТокенServiceАккаунта(ПараметрыТеста); + +КонецПроцедуры + Процедура ГК_ПолучитьСписокКалендарей() Экспорт ПараметрыТеста = Новый Структура; @@ -952,6 +972,23 @@ #Область GoogleDrive +Процедура ГД_Авторизация() Экспорт + + ПараметрыТеста = Новый Структура; + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста); + + GoogleDrive_СформироватьСсылкуПолученияКода(ПараметрыТеста); + GoogleDrive_ПолучитьТокенПоКоду(ПараметрыТеста); + GoogleDrive_ОбновитьТокен(ПараметрыТеста); + GoogleDrive_ПолучитьТокенServiceАккаунта(ПараметрыТеста); + +КонецПроцедуры + Процедура ГД_ПолучитьСписокКаталогов() Экспорт ПараметрыТеста = Новый Структура; @@ -1019,6 +1056,23 @@ #Область GoogleSheets +Процедура ГТ_Авторизация() Экспорт + + ПараметрыТеста = Новый Структура; + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientID" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ClientSecret", ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Code" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_Refresh" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Google_ServiceData" , ПараметрыТеста); + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Access_Token" , ПараметрыТеста); + + GoogleSheets_СформироватьСсылкуПолученияКода(ПараметрыТеста); + GoogleSheets_ПолучитьТокенПоКоду(ПараметрыТеста); + GoogleSheets_ОбновитьТокен(ПараметрыТеста); + GoogleSheets_ПолучитьТокенServiceАккаунта(ПараметрыТеста); + +КонецПроцедуры + Процедура ГТ_СоздатьТаблицу() Экспорт ПараметрыТеста = Новый Структура; @@ -4001,6 +4055,21 @@ КонецПроцедуры +Процедура VK_ПолучитьПараметрыАвторизации(ПараметрыФункции) + + + IDГруппы = ПараметрыФункции["VK_GroupID"]; + IDПриложения = ПараметрыФункции["VK_AppID"]; + Токен = ПараметрыФункции["VK_Token"]; + + Результат = OPI_VK.ПолучитьПараметрыАвторизации(IDГруппы, IDПриложения, Токен); + + // END + + Обработать(Результат, "VK", "ПолучитьПараметрыАвторизации"); + +КонецПроцедуры + Процедура VK_СоздатьПост(ПараметрыФункции) Параметры = ПолучитьПараметрыВК(); @@ -5419,6 +5488,70 @@ #Область GoogleCalendar +Процедура GoogleCalendar_СформироватьСсылкуПолученияКода(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + Результат = OPI_GoogleCalendar.СформироватьСсылкуПолученияКода(ClientID); + + // END + + Обработать(Результат, "GoogleCalendar", "СформироватьСсылкуПолученияКода"); + +КонецПроцедуры + +Процедура GoogleCalendar_ПолучитьТокенПоКоду(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + Code = ПараметрыФункции["Google_Code"]; + + Результат = OPI_GoogleCalendar.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + + // END + + Обработать(Результат, "GoogleCalendar", "ПолучитьТокенПоКоду"); + +КонецПроцедуры + +Процедура GoogleCalendar_ОбновитьТокен(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + RefreshToken = ПараметрыФункции["Google_Refresh"]; + + Результат = OPI_GoogleCalendar.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + + // END + + Обработать(Результат, "GoogleCalendar", "ОбновитьТокен"); + +КонецПроцедуры + +Процедура GoogleCalendar_ПолучитьТокенServiceАккаунта(ПараметрыФункции) + + Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция + + Токен = ПараметрыФункции["Access_Token"]; // SKIP + Данные = OPI_ЗапросыHTTP // SKIP + .НовыйЗапрос() // SKIP + .Инициализировать(Данные) // SKIP + .ДобавитьBearerАвторизацию(Токен) // SKIP + .ОбработатьЗапрос("GET") // SKIP + .ВернутьОтветКакДвоичныеДанные(); // SKIP + + ОбластиДействия = Новый Массив; + ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets"); + + Результат = OPI_GoogleCalendar.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия); + + // END + + Обработать(Результат, "GoogleCalendar", "ПолучитьТокенServiceАккаунта"); + +КонецПроцедуры + Процедура GoogleCalendar_ПолучитьСписокКалендарей(ПараметрыФункции) Токен = ПараметрыФункции["Google_Token"]; @@ -5693,6 +5826,70 @@ #Область GoogleDrive +Процедура GoogleDrive_СформироватьСсылкуПолученияКода(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + Результат = OPI_GoogleDrive.СформироватьСсылкуПолученияКода(ClientID); + + // END + + Обработать(Результат, "GoogleDrive", "СформироватьСсылкуПолученияКода"); + +КонецПроцедуры + +Процедура GoogleDrive_ПолучитьТокенПоКоду(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + Code = ПараметрыФункции["Google_Code"]; + + Результат = OPI_GoogleDrive.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + + // END + + Обработать(Результат, "GoogleDrive", "ПолучитьТокенПоКоду"); + +КонецПроцедуры + +Процедура GoogleDrive_ОбновитьТокен(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + RefreshToken = ПараметрыФункции["Google_Refresh"]; + + Результат = OPI_GoogleDrive.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + + // END + + Обработать(Результат, "GoogleDrive", "ОбновитьТокен"); + +КонецПроцедуры + +Процедура GoogleDrive_ПолучитьТокенServiceАккаунта(ПараметрыФункции) + + Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция + + Токен = ПараметрыФункции["Access_Token"]; // SKIP + Данные = OPI_ЗапросыHTTP // SKIP + .НовыйЗапрос() // SKIP + .Инициализировать(Данные) // SKIP + .ДобавитьBearerАвторизацию(Токен) // SKIP + .ОбработатьЗапрос("GET") // SKIP + .ВернутьОтветКакДвоичныеДанные(); // SKIP + + ОбластиДействия = Новый Массив; + ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets"); + + Результат = OPI_GoogleDrive.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия); + + // END + + Обработать(Результат, "GoogleDrive", "ПолучитьТокенServiceАккаунта"); + +КонецПроцедуры + Процедура GoogleDrive_ПолучитьСписокКаталогов(ПараметрыФункции) Имя = "Тестовая папка"; @@ -5922,6 +6119,70 @@ #Область GoogleSheets +Процедура GoogleSheets_СформироватьСсылкуПолученияКода(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + Результат = OPI_GoogleSheets.СформироватьСсылкуПолученияКода(ClientID); + + // END + + Обработать(Результат, "GoogleSheets", "СформироватьСсылкуПолученияКода"); + +КонецПроцедуры + +Процедура GoogleSheets_ПолучитьТокенПоКоду(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + Code = ПараметрыФункции["Google_Code"]; + + Результат = OPI_GoogleSheets.ПолучитьТокенПоКоду(ClientID, ClientSecret, Code); + + // END + + Обработать(Результат, "GoogleSheets", "ПолучитьТокенПоКоду"); + +КонецПроцедуры + +Процедура GoogleSheets_ОбновитьТокен(ПараметрыФункции) + + ClientID = ПараметрыФункции["Google_ClientID"]; + ClientSecret = ПараметрыФункции["Google_ClientSecret"]; + RefreshToken = ПараметрыФункции["Google_Refresh"]; + + Результат = OPI_GoogleSheets.ОбновитьТокен(ClientID, ClientSecret, RefreshToken); + + // END + + Обработать(Результат, "GoogleSheets", "ОбновитьТокен"); + +КонецПроцедуры + +Процедура GoogleSheets_ПолучитьТокенServiceАккаунта(ПараметрыФункции) + + Данные = ПараметрыФункции["Google_ServiceData"]; // URL, двоичные данные, файл или коллекция + + Токен = ПараметрыФункции["Access_Token"]; // SKIP + Данные = OPI_ЗапросыHTTP // SKIP + .НовыйЗапрос() // SKIP + .Инициализировать(Данные) // SKIP + .ДобавитьBearerАвторизацию(Токен) // SKIP + .ОбработатьЗапрос("GET") // SKIP + .ВернутьОтветКакДвоичныеДанные(); // SKIP + + ОбластиДействия = Новый Массив; + ОбластиДействия.Добавить("https://www.googleapis.com/auth/calendar"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/drive"); + ОбластиДействия.Добавить("https://www.googleapis.com/auth/spreadsheets"); + + Результат = OPI_GoogleSheets.ПолучитьТокенServiceАккаунта(Данные, ОбластиДействия); + + // END + + Обработать(Результат, "GoogleSheets", "ПолучитьТокенServiceАккаунта"); + +КонецПроцедуры + Процедура GoogleSheets_СоздатьКнигу(ПараметрыФункции) Токен = ПараметрыФункции["Google_Token"];