1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-02-11 13:53:00 +02:00

Обработки исключений

This commit is contained in:
Anton Titovets 2024-04-02 09:42:16 +03:00
parent 48a9210b73
commit 3acdb5b062
5 changed files with 320 additions and 64 deletions

View File

@ -42,6 +42,9 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
Функция СоздатьКалендарь(Знач Токен, Знач Наименование) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars";
@ -65,6 +68,9 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
Функция ПолучитьМетаданныеКалендаря(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
@ -88,6 +94,11 @@
, Знач Наименование = ""
, Знач Описание = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
@ -116,6 +127,8 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция ОчиститьОсновнойКалендарь(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/primary/clear";
Ответ = OPI_Инструменты.Post(URL, , Заголовки, Ложь);
@ -134,6 +147,9 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
Функция УдалитьКалендарь(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
@ -155,6 +171,8 @@
// Соответствие Из КлючИЗначение - Массив соответствий данных календарей
Функция ПолучитьСписокКалендарей(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
МассивКалендарей = Новый Массив;
@ -174,6 +192,9 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
Функция ДобавитьКалендарьВСписок(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList";
@ -196,6 +217,9 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция ПолучитьКалендарьСписка(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
@ -214,6 +238,9 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция УдалитьКалендарьИзСписка(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь;
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
@ -239,6 +266,12 @@
, Знач ДополнительныйЦвет
, Знач Скрытый = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОсновнойЦвет);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ДополнительныйЦвет);
OPI_ПреобразованиеТипов.ПолучитьБулево(Скрытый);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/users/me/calendarList/" + Календарь + "?colorRgbFormat=true";
@ -289,6 +322,9 @@
// Соответствие Из КлючИЗначение - Массив соответствий событий
Функция ПолучитьСписокСобытий(Знач Токен, Знач Календарь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
МассивСобытий = Новый Массив;
@ -309,6 +345,10 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция ПолучитьСобытие(Знач Токен, Знач Календарь, Знач Событие) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/"
+ Календарь
@ -346,6 +386,11 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция ПереместитьСобытие(Знач Токен, Знач КалендарьИсточник, Знач КалендарьПриемник, Знач Событие) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(КалендарьИсточник);
OPI_ПреобразованиеТипов.ПолучитьСтроку(КалендарьПриемник);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/"
+ КалендарьИсточник
@ -385,6 +430,10 @@
// Строка, Произвольный, HTTPОтвет, ДвоичныеДанные, Неопределено - ответ сервера Google
Функция УдалитьСобытие(Знач Токен, Знач Календарь, Знач Событие) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/"
+ Календарь
@ -405,6 +454,8 @@
Функция ПреобразоватьДату(Знач Дата)
OPI_ПреобразованиеТипов.ПолучитьДату(Дата);
СтруктураДаты = Новый Структура;
Если Не ТипЗнч(Дата) = Тип("Дата") Тогда
@ -429,9 +480,11 @@
Функция ПреобразоватьВложения(Знач Вложения)
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Вложения);
МассивВложений = Новый Массив;
Если ТипЗнч(Вложения) = Тип("Соответствие") Тогда
Если ТипЗнч(Вложения) = Тип("Соответствие") Или ТипЗнч(Вложения) = Тип("Структура") Тогда
Для Каждого Вложение Из Вложения Цикл
@ -455,6 +508,11 @@
Функция УправлениеСобытием(Знач Токен, Знач Календарь, Знач ОписаниеСобытия, Знач Событие = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Календарь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Событие);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(ОписаниеСобытия);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
Существующее = ЗначениеЗаполнено(Событие);
URL = "https://www.googleapis.com/calendar/v3/calendars/"

View File

@ -42,6 +42,9 @@
// HTTPОтвет - Ответ сервера Google
Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Идентификатор) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
@ -65,6 +68,10 @@
// Соответствие Из КлючИЗначение - Массив соответствий каталогов
Функция ПолучитьСписокКаталогов(Знач Токен, Знач ИмяСодержит = "", Знач Подробно = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяСодержит);
OPI_ПреобразованиеТипов.ПолучитьБулево(Подробно);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
МассивОбъектов = Новый Массив;
Отбор = Новый Массив;
@ -96,6 +103,10 @@
// Соответствие Из КлючИЗначение - Массив соответствий файорв
Функция ПолучитьСписокФайлов(Знач Токен, Знач ИмяСодержит = "", Знач Каталог = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяСодержит);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Каталог);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
МассивОбъектов = Новый Массив;
Отбор = Новый Массив;
@ -140,6 +151,10 @@
// HTTPОтвет - Ответ сервера Google
Функция СоздатьПапку(Знач Токен, Знач Имя, Знач Родитель = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Родитель);
Описание = Новый Соответствие;
Описание.Вставить("MIME" , "application/vnd.google-apps.folder");
Описание.Вставить("Имя" , Имя);
@ -160,6 +175,9 @@
// HTTPОтвет - Ответ сервера Google
Функция СкачатьФайл(Знач Токен, Знач Идентификатор) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
@ -184,6 +202,11 @@
// HTTPОтвет - Ответ сервера Google
Функция СкопироватьОбъект(Знач Токен, Знач Идентификатор, Знач НовоеИмя = "", Знач НовыйРодитель = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НовоеИмя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйРодитель);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор + "/copy";
@ -219,6 +242,11 @@
// HTTPОтвет - Ответ сервера Google
Функция ОбновитьФайл(Знач Токен, Знач Идентификатор, Знач Файл, Знач НовоеИмя = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НовоеИмя);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
Если ЗначениеЗаполнено(НовоеИмя) Тогда
Описание = Новый Соответствие;
Описание.Вставить("Имя", НовоеИмя);
@ -240,6 +268,9 @@
// HTTPОтвет - Ответ сервера Google
Функция УдалитьОбъект(Знач Токен, Знач Идентификатор) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор;
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
@ -279,6 +310,10 @@
// HTTPОтвет - Ответ сервера Google
Функция СоздатьКомментарий(Знач Токен, Знач Идентификатор, Знач Комментарий) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор + "/comments?fields=*";
@ -302,6 +337,10 @@
// HTTPОтвет - Получить комментарий
Функция ПолучитьКомментарий(Знач Токен, Знач ИДОбъекта, Знач ИДКомментария) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДКомментария);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments/" + ИДКомментария;
@ -324,6 +363,9 @@
// HTTPОтвет - Получить список комментариев
Функция ПолучитьСписокКомментариев(Знач Токен, Знач ИДОбъекта) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments";
@ -347,6 +389,10 @@
// HTTPОтвет - Удалить комментарий
Функция УдалитьКомментарий(Знач Токен, Знач ИДОбъекта, Знач ИДКомментария) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДОбъекта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДКомментария);
Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/drive/v3/files/" + ИДОбъекта + "/comments/" + ИДКомментария;
@ -449,6 +495,10 @@
Функция УправлениеФайлом(Знач Токен, Знач Файл = "", Знач Описание = "", Знач Идентификатор = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Описание);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
СоответствиеФайла = Новый Соответствие;
MimeType = "mimeType";

View File

@ -41,6 +41,10 @@
// Строка - Сформировать ссылку получения кода
Функция СформироватьСсылкуПолученияКода(Знач ClientID, Знач Calendar = Истина, Знач Drive = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
OPI_ПреобразованиеТипов.ПолучитьБулево(Calendar);
OPI_ПреобразованиеТипов.ПолучитьБулево(Drive);
URL = "https://accounts.google.com/o/oauth2/auth";
ПараметрыURL = Новый Структура;
@ -67,6 +71,10 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - Получить токен по коду
Функция ПолучитьТокенПоКоду(Знач ClientID, Знач ClientSecret, Знач Code) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Code);
URL = "https://accounts.google.com/o/oauth2/token";
ПараметрыURL = Новый Структура;
@ -93,6 +101,10 @@
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - Обновить токен
Функция ОбновитьТокен(Знач ClientID, Знач ClientSecret, Знач RefreshToken) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientSecret);
OPI_ПреобразованиеТипов.ПолучитьСтроку(RefreshToken);
URL = "https://accounts.google.com/o/oauth2/token";
ПараметрыURL = Новый Структура;
@ -113,6 +125,8 @@
Функция ПолучитьЗаголовокАвторизации(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + Токен);

View File

@ -108,6 +108,7 @@
URL = "api.telegram.org/bot" + Токен + "/deleteWebHook";
Ответ = OPI_Инструменты.Get(URL);
Возврат Ответ;
КонецФункции
@ -720,9 +721,13 @@
Result = "result";
URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers";
Ответ = OPI_Инструменты.Get(URL);
Ответ = OPI_Инструменты.Get(URL);
Иконки = Ответ[Result];
Если Не ЗначениеЗаполнено(Иконки) Тогда
Возврат Ответ;
КонецЕсли;
Коллекция = Новый Соответствие;
Для Каждого Иконка Из Иконки Цикл

View File

@ -97,12 +97,29 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Ответ = ЗагрузитьФотоНаСервер(КартинкаПоста, Параметры_);
ОтветСоответствие = Ответ.Получить("response")[0];
ОтветМассив = Ответ.Получить("response");
Если Не ЗначениеЗаполнено(ОтветМассив) Или Не ТипЗнч(ОтветМассив) = Тип("Массив") Тогда
Возврат Ответ;
Иначе
Если ОтветМассив.Количество() = 0 Тогда
Возврат Ответ;
Иначе
ОтветСоответствие = ОтветМассив[0];
КонецЕсли;
КонецЕсли;
OwnerId = ОтветСоответствие.Получить("owner_id");
ObjectId = ОтветСоответствие.Получить("id");
Если Не ЗначениеЗаполнено(OwnerId) Или Не ЗначениеЗаполнено(ObjectId) Тогда
Возврат Ответ;
КонецЕсли;
ФотоID = "photo"
+ OPI_Инструменты.ЧислоВСтроку(ОтветСоответствие.Получить("owner_id"))
+ OPI_Инструменты.ЧислоВСтроку(OwnerId)
+ "_"
+ OPI_Инструменты.ЧислоВСтроку(ОтветСоответствие.Получить("id"));
+ OPI_Инструменты.ЧислоВСтроку(ObjectId);
СтрокаВложений = СтрокаВложений + ФотоID + ",";
@ -169,9 +186,15 @@
Фото = Ответ.Получить(Response);
Если ЗначениеЗаполнено(Фото) Тогда
IDФото = Фото["id"];
IDФото = Фото["id"];
Если Не ЗначениеЗаполнено(IDФото) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Ответ);
Возврат Ответ;
КонецЕсли;
КонецЕсли;
@ -189,10 +212,21 @@
Опрос = OPI_Инструменты.Get("api.vk.com/method/polls.create", Параметры_);
ОпросСоответствие = Опрос.Получить(Response);
Если Не ЗначениеЗаполнено(ОпросСоответствие) Тогда
Возврат Опрос;
КонецЕсли;
OwnerId = ОпросСоответствие.Получить("owner_id");
ObjectId = ОпросСоответствие.Получить("id");
Если Не ЗначениеЗаполнено(OwnerId) Или Не ЗначениеЗаполнено(ObjectId) Тогда
Возврат Опрос;
КонецЕсли;
ОпросID = "poll"
+ OPI_Инструменты.ЧислоВСтроку(ОпросСоответствие.Получить("owner_id"))
+ OPI_Инструменты.ЧислоВСтроку(OwnerId)
+ "_"
+ OPI_Инструменты.ЧислоВСтроку(ОпросСоответствие.Получить("id"));
+ OPI_Инструменты.ЧислоВСтроку(ObjectId);
Параметры_.Вставить("attachments", ОпросID);
@ -593,9 +627,23 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("url", URL);
Ответ = OPI_Инструменты.Get("https://api.vk.com/method/utils.getShortLink", Параметры_);
Ответ = OPI_Инструменты.Get("https://api.vk.com/method/utils.getShortLink", Параметры_);
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
URL = Результат["short_url"];
Если ЗначениеЗаполнено(URL) Тогда
Возврат URL;
Иначе
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
Возврат Ответ[Response]["short_url"];
КонецФункции
@ -877,12 +925,36 @@
Response = "response";
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_);
Количество = Ответ[Response]["count"];
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
Количество = Результат["count"];
Если Не ЗначениеЗаполнено(Количество) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
Параметры_.Вставить("count", Количество);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_);
Категории = Ответ[Response]["items"];
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getCategories", Параметры_);
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
Категории = Результат["items"];
Если Не ЗначениеЗаполнено(Категории) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
СоответствиеКатегорий = Новый Соответствие;
Для Каждого Категория Из Категории Цикл
@ -1588,48 +1660,47 @@
КонецФункции
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост")
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
Файлы = Новый Соответствие;
Попытка
Метод = ОпределитьМетодЗагрузкиИзображений(Вид);
Файлы = Новый Соответствие;
Response = "response";
URL = "api.vk.com/method/";
Загрузка = URL + Метод["Загрузка"];
Сохранение = URL + Метод["Сохранение"];
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
КлючКартинка = "image___jpeg";
КонецЕсли;
Файлы.Вставить(КлючКартинка, Картинка);
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
URL = Ответ[Response]["upload_url"];
Параметры.Вставить("upload_url", URL);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
Response = "response";
URL = "api.vk.com/method/";
Загрузка = URL + Метод["Загрузка"];
Сохранение = URL + Метод["Сохранение"];
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
КлючКартинка = СтрЗаменить(Картинка, ".", "___");
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
КлючКартинка = "image___jpeg";
КонецЕсли;
Файлы.Вставить(КлючКартинка, Картинка);
Ответ = OPI_Инструменты.Get(Загрузка, Параметры);
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
URL = Результат["upload_url"];
Если Не ЗначениеЗаполнено(URL) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
Исключение
Параметры.Вставить("upload_url", URL);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
Если ЗначениеЗаполнено(Ответ) Тогда
ПоследнийОтвет = OPI_Инструменты.JSONСтрокой(Ответ);
Иначе
ПоследнийОтвет = "";
КонецЕсли;
ВызватьИсключение ОписаниеОшибки() + Символы.ПС + ПоследнийОтвет;
КонецПопытки;
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
Возврат Ответ;
КонецФункции
@ -1721,10 +1792,19 @@
Метод = "add";
КонецЕсли;
Ответ = OPI_Инструменты.Get("api.vk.com/method/market." + Метод, Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market." + Метод, Параметры_);
Результат = Ответ[Response];
Если Не ЗначениеЗаполнено(ИДТовара) И ЗначениеЗаполнено(Ответ[Response]) Тогда
ИДТовара = Ответ[Response]["market_item_id"];
Если Не ЗначениеЗаполнено(ИДТовара) И ЗначениеЗаполнено(Результат) Тогда
ИДТовара = Результат["market_item_id"];
Если Не ЗначениеЗаполнено(ИДТовара) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
Если ЗначениеЗаполнено(Подборка) И ЗначениеЗаполнено(ИДТовара) Тогда
@ -1755,9 +1835,20 @@
Если ЗначениеЗаполнено(Картинка) Тогда
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры_, "Товар");
ИДФото = Ответ[Response][PhotoID];
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
ИДФото = Результат[PhotoID];
Если Не ЗначениеЗаполнено(ИДФото) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
Параметры_.Вставить(PhotoID, ИДФото);
Иначе
@ -1765,8 +1856,20 @@
Если ЗначениеЗаполнено(ИДПодборки) Тогда
Подборки = ПолучитьПодборкиПоИД(ИДПодборки, Параметры_);
Подборки = Подборки[Response]["items"];
Результат = Подборки[Response];
Если ЗначениеЗаполнено(Результат) Тогда
Подборки = Результат["items"];
Если Не ЗначениеЗаполнено(Подборки) Тогда
Возврат Ответ;
КонецЕсли;
Иначе
Возврат Ответ;
КонецЕсли;
Если Не Подборки.Количество() = 0 Тогда
ИДФото = Подборки[0]["photo"]["id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИДФото);
@ -1846,10 +1949,24 @@
Свойства = ОписаниеТовара["ЗначенияСвойств"];
Если ЗначениеЗаполнено(ОсновноеФото) Тогда
Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры, "Товар");
ИДФото = Ответ[Response]["photo_id"];
Ответ = ЗагрузитьФотоНаСервер(ОсновноеФото, Параметры, "Товар");
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
ИДФото = Результат["photo_id"];
Если Не ЗначениеЗаполнено(ИДФото) Тогда
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
Параметры.Вставить("main_photo_id", ИДФото);
Параметры.Вставить("main_photo_id", ИДФото);
КонецЕсли;
Если ТипЗнч(Свойства) = Тип("Массив") Тогда
@ -1892,8 +2009,20 @@
Для Каждого Фото Из МассивФото Цикл
Ответ = ЗагрузитьФотоНаСервер(Фото, Параметры, "Товар");
ИДФото = Ответ[Response]["photo_id"];
Ответ = ЗагрузитьФотоНаСервер(Фото, Параметры, "Товар");
Результат = Ответ[Response];
Если ЗначениеЗаполнено(Результат) Тогда
ИДФото = Результат["photo_id"];
Если Не ЗначениеЗаполнено(ИДФото) Тогда
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
ИДФото = OPI_Инструменты.ЧислоВСтроку(ИДФото);
СтрокаФотографий = СтрокаФотографий + ИДФото + ",";