1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-14 11:23:46 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca 2024-03-31 14:15:36 +00:00 committed by Vitaly the Alpaca (bot)
parent 59c785377b
commit 40848f8c0e
5 changed files with 189 additions and 157 deletions

View File

@ -123,7 +123,7 @@
// Токен - Строка - Токен бота - token
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -132,7 +132,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_Инструменты.ЗаменитьСпецСимволы(Текст);
@ -158,7 +158,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Картинка - ДвоичныеДанные,Строка - Файл картинки - picture
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -176,7 +176,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Видео - ДвоичныеДанные,Строка - Файл видео - video
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -194,7 +194,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Аудио - ДвоичныеДанные,Строка - Файл аудио - audio
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -212,7 +212,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Документ - ДвоичныеДанные,Строка - Файл документа - doc
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -230,7 +230,7 @@
// IDЧата - Строка,Число - ID целевого чата или IDЧата*IDТемы - chat
// Текст - Строка - Текст сообщения - text
// Гифка - ДвоичныеДанные,Строка - Файл гифки - gif
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -270,7 +270,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеФайлов);
OPI_Инструменты.ЗаменитьСпецсимволы(Текст);
@ -313,7 +313,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/sendLocation";
@ -341,7 +341,7 @@
// Имя - Строка - Имя контакта - name
// Фамилия - Строка - Фамилия контакта - surname
// Телефон - Строка - Телефон контакта - phone
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard - Текст
// Клавиатура - Строка - См. СформироватьКлавиатуруПоМассивуКнопок - keyboard
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
@ -352,7 +352,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Фамилия);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Телефон);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
URL = "api.telegram.org/bot" + Токен + "/sendContact";
@ -396,14 +396,11 @@
URL = "api.telegram.org/bot" + Токен + "/sendPoll";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("question" , Вопрос);
Параметры_.Вставить("options" , МассивОтветов);
Если Не Анонимный Тогда
Параметры_.Вставить("is_anonymous", Ложь);
КонецЕсли;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("question" , Вопрос);
Параметры_.Вставить("options" , МассивОтветов);
Параметры_.Вставить("is_anonymous", Анонимный);
ДобавитьИдентификаторЧата(IDЧата, Параметры_);
Ответ = OPI_Инструменты.Get(URL, Параметры_);
@ -431,6 +428,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(КудаID);
URL = "api.telegram.org/bot" + Токен + "/forwardMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("from_chat_id", ОткудаID);
Параметры_.Вставить("message_id" , IDОригинала);
@ -531,6 +529,7 @@
OPI_ПреобразованиеТипов.ПолучитьДату(ДатаИстечения);
URL = "api.telegram.org/bot" + Токен + "/createChatInviteLink";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -566,6 +565,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/pinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode" , "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -595,6 +595,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDСообщения);
URL = "api.telegram.org/bot" + Токен + "/unpinChatMessage";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -621,6 +622,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
URL = "api.telegram.org/bot" + Токен + "/getChatMemberCount";
Параметры_ = Новый Структура;
Параметры_.Вставить("parse_mode", "Markdown");
Параметры_.Вставить("chat_id" , IDЧата);
@ -720,6 +722,7 @@
Result = "result";
URL = "api.telegram.org/bot" + Токен + "/getForumTopicIconStickers";
Ответ = OPI_Инструменты.Get(URL);
Иконки = Ответ[Result];
Коллекция = Новый Соответствие;
@ -851,11 +854,12 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Заголовок);
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
Параметры_ = Новый Структура;
Параметры_.Вставить("chat_id", IDЧата);
Параметры_.Вставить("name" , Заголовок);
URL = "api.telegram.org/bot" + Токен + "/editGeneralForumTopic";
Ответ = OPI_Инструменты.Get(URL, Параметры_);
Возврат Ответ;
@ -931,13 +935,9 @@
СтруктураПараметра = Новый Структура("keyboard,resize_keyboard", Строки, Истина);
КонецЕсли;
ЗаписьJSON = Новый ЗаписьJSON;
ПЗJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , , ЭкранированиеСимволовJSON.СимволыВнеASCII);
ЗаписьJSON.УстановитьСтроку(ПЗJSON);
Клавиатура = OPI_Инструменты.JSONСтрокой(СтруктураПараметра);
ЗаписатьJSON(ЗаписьJSON, СтруктураПараметра);
Возврат ЗаписьJSON.Закрыть();
Возврат Клавиатура;
КонецФункции
@ -953,7 +953,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDЧата);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Вид);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Клавиатура, Истина);
Расширение = "";
Метод = "";

View File

@ -91,14 +91,6 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
СтрокаВложений = "";
Если Не ТипЗнч(МассивКартинок) = Тип("Массив") Тогда
ОднаКартинка = МассивКартинок;
МассивКартинок = Новый Массив;
МассивКартинок.Добавить(ОднаКартинка);
КонецЕсли;
Для Каждого КартинкаПоста Из МассивКартинок Цикл
@ -168,33 +160,11 @@
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивОтветов);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.getPhotoUploadServer", Параметры_);
Response = "response";
Hash = "hash";
Photo = "photo";
URL = Ответ[Response]["upload_url"];
IDФото = "";
Параметры_.Вставить("upload_url", URL);
Если ЗначениеЗаполнено(Картинка) Тогда
Если ТипЗнч(Картинка) = Тип("Строка") Тогда
Путь = Картинка;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
Иначе
Путь = ("image.jpeg");
КонецЕсли;
Файлы = Новый Соответствие;
Файлы.Вставить(Путь, Картинка);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры_, Файлы);
Параметры_.Вставить(Hash , Ответ[Hash]);
Параметры_.Вставить(Photo, Ответ[Photo]);
Ответ = OPI_Инструменты.Get("api.vk.com/method/polls.savePhoto", Параметры_);
Ответ = ЗагрузитьФотоНаСервер(Картинка, Параметры, "Опрос");
IDФото = Ответ.Получить(Response)["id"];
КонецЕсли;
@ -202,23 +172,9 @@
Параметры_.Вставить("is_anonymous", 1);
Параметры_.Вставить("is_multiple" , 0);
Ответы = "[";
Первый = Истина;
Для Каждого Ответ Из МассивОтветов Цикл
Ответы = СтрСоединить(МассивОтветов, """,""");
Ответы = "[""" + Ответы + """]";
Если Первый Тогда
Первый = Ложь;
Иначе
Ответы = Ответы + ", ";
КонецЕсли;
Ответы = Ответы + """" + Ответ + """";
КонецЦикла;
Ответы = Ответы + "]";
Параметры_.Вставить("add_answers", Ответы);
Параметры_.Вставить("photo_id" , OPI_Инструменты.ЧислоВСтроку(IDФото));
Параметры_.Вставить("question" , Вопрос);
@ -657,8 +613,8 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
ДатаНачала = Формат(ДатаНачала - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
ДатаОкончания = Формат(ДатаОкончания - дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
ДатаНачала = OPI_Инструменты.UNIXTime(ДатаНачала);
ДатаОкончания = OPI_Инструменты.UNIXTime(ДатаОкончания);;
Параметры_.Вставить("timestamp_from", ДатаНачала);
Параметры_.Вставить("timestamp_to" , ДатаОкончания);
@ -746,13 +702,15 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDКабинета);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Наименование);
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
КонечнаяДата = ДобавитьМесяц(ТекущаяДата, 24);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("account_id", IDКабинета);
МассивСтруктур = Новый Массив;
ДатаСтарт = Формат(ТекущаяДата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
ДатаСтоп = Формат(ДобавитьМесяц(ТекущаяДата, 24) - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0");
ДатаСтарт = OPI_Инструменты.UNIXTime(ТекущаяДата);
ДатаСтоп = OPI_Инструменты.UNIXTime(КонечнаяДата);
СтруктураКампании = Новый Структура;
СтруктураКампании.Вставить("type" , "promoted_posts");
@ -795,9 +753,8 @@
, Знач IDКабинета
, Знач Параметры = "") Экспорт
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
GroupId = Параметры_["group_id"];
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
GroupId = Параметры_["group_id"];
OPI_ПреобразованиеТипов.ПолучитьСтроку(GroupId);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерКампании);
@ -975,12 +932,6 @@
СтрокаТоваров = "";
Owner = "owner_id";
Если ТипЗнч(Товары) <> Тип("Массив") Тогда
Товар = Товары;
Товары = Новый Массив;
Товары.Добавить(Товар);
КонецЕсли;
Для Каждого Товар Из Товары Цикл
ТекущийТовар = Параметры_[Owner] + "_" + Товар;
ТекущийТовар = OPI_Инструменты.ЧислоВСтроку(ТекущийТовар);
@ -1206,25 +1157,16 @@
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Подборки);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборки_ = Новый Массив;
СтрокаПодборок = "";
Для Каждого Подборка Из Подборки Цикл
Подборки_.Добавить(OPI_Инструменты.ЧислоВСтроку(Подборка));
КонецЦикла;
Если ТипЗнч(Подборки) <> Тип("Массив") Тогда
Подборка = Подборки;
Подборки = Новый Массив;
Подборки.Добавить(Подборка);
КонецЕсли;
Для Каждого Подборка Из Подборки Цикл
ТекущаяПодборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
СтрокаПодборок = СтрокаПодборок + ТекущаяПодборка + ",";
СтрокаПодборок = СтрСоединить(Подборки_, ",");
КонецЦикла;
СтрокаПодборок = Лев(СтрокаПодборок, СтрДлина(СтрокаПодборок) - 1);
Параметры_.Вставить("album_ids", СтрокаПодборок);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.getAlbumById", Параметры_);
@ -1330,7 +1272,6 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Подборка);
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Подборка = OPI_Инструменты.ЧислоВСтроку(Подборка);
Параметры_.Вставить("item_id" , Товар);
Параметры_.Вставить("album_ids", Подборка);
@ -1403,7 +1344,7 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("title", Название);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addProperty", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addProperty", Параметры_);
Возврат Ответ;
@ -1429,7 +1370,7 @@
Параметры_.Вставить("property_id", Свойство);
Параметры_.Вставить("type" , "text");
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editProperty", Параметры_);
Возврат Ответ;
@ -1451,7 +1392,7 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("property_id", Свойство);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deleteProperty", Параметры_);
Возврат Ответ;
@ -1476,7 +1417,7 @@
Параметры_.Вставить("property_id", Свойство);
Параметры_.Вставить("title" , Значение);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.addPropertyVariant", Параметры_);
Возврат Ответ;
@ -1503,7 +1444,7 @@
Параметры_.Вставить("variant_id" , Вариант);
Параметры_.Вставить("title" , Значение);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.editPropertyVariant", Параметры_);
Возврат Ответ;
@ -1525,7 +1466,7 @@
Параметры_ = ПолучитьСтандартныеПараметры(Параметры);
Параметры_.Вставить("variant_id", Вариант);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_);
Ответ = OPI_Инструменты.Get("api.vk.com/method/market.deletePropertyVariant", Параметры_);
Возврат Ответ;
@ -1640,35 +1581,41 @@
Функция ЗагрузитьФотоНаСервер(Знач Картинка, Знач Параметры, Знач Вид = "Пост")
Попытка
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(Загрузка, Параметры);
URL = Ответ[Response]["upload_url"];
Параметры.Вставить("upload_url", URL);
Ответ = OPI_Инструменты.PostMultipart(URL, Параметры, Файлы);
ЗаполнитьПараметрыЗагрузкиФото(Метод, Ответ, Параметры);
Ответ = OPI_Инструменты.Get(Сохранение, Параметры);
Возврат Ответ;
Исключение
ВызватьИсключение ?(ЗначениеЗаполнено(Ответ), OPI_Инструменты.JSONСтрокой(Ответ), ОписаниеОшибки());
Если ЗначениеЗаполнено(Ответ) Тогда
Возврат Ответ;
Иначе
ВызватьИсключение ОписаниеОшибки();
КонецЕсли;
КонецПопытки;
КонецФункции
@ -1699,6 +1646,12 @@
СоответствиеМетодов.Вставить(Загрузка , "stories.getPhotoUploadServer");
СоответствиеМетодов.Вставить(Сохранение, "stories.save");
СоответствиеМетодов.Вставить(Способ , 3);
ИначеЕсли Вид = "Опрос" Тогда
СоответствиеМетодов.Вставить(Загрузка , "polls.getPhotoUploadServer");
СоответствиеМетодов.Вставить(Сохранение, "polls.savePhoto");
СоответствиеМетодов.Вставить(Способ , 1);
Иначе
@ -1713,7 +1666,7 @@
КонецФункции
Функция ПолучитьСоответствиеПараметровТовара()
Функция ПолучитьСоответствиеПараметровТовара()
Поля = Новый Соответствие();
Поля.Вставить("Имя" , "name");
@ -1840,17 +1793,21 @@
Serv = "server";
Aid = "aid";
Фото = Метод["Фото"];
СерверФото = OPI_Инструменты.ЧислоВСтроку(Ответ[Serv]);
Параметры.Вставить(Hash, Ответ[Hash]);
Параметры.Вставить(Фото, Ответ[Фото]);
Параметры.Вставить(Serv, СерверФото);
СерверФото = Ответ.Получить(Serv);
Если ЗначениеЗаполнено(СерверФото) Тогда
СерверФото = OPI_Инструменты.ЧислоВСтроку(СерверФото);
Параметры.Вставить(Serv, СерверФото);
КонецЕсли;
Идентификатор = Ответ.Получить(Aid);
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
Если ЗначениеЗаполнено(Идентификатор) Тогда
Идентификатор = OPI_Инструменты.ЧислоВСтроку(Идентификатор);
Параметры.Вставить(Aid , Идентификатор);
КонецЕсли;

View File

@ -45,6 +45,9 @@
// Произвольный - Ответ сервера Viber
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("url" , URL);
СтруктураПараметров.Вставить("auth_token", Токен);
@ -64,6 +67,8 @@
// ДвоичныеДанные, Неопределено, Произвольный - Получить информацию о канале
Функция ПолучитьИнформациюОКанале(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "https://chatapi.viber.com/pa/get_account_info";
Возврат OPI_Инструменты.Get(URL, , ТокенВЗаголовки(Токен));
@ -79,6 +84,9 @@
// Произвольный, HTTPОтвет - Ответ сервера Viber
Функция ПолучитьДанныеПользователя(Знач Токен, Знач IDПользователя) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "https://chatapi.viber.com/pa/get_user_details";
СтруктураПараметров = Новый Структура;
@ -104,6 +112,9 @@
// Произвольный, HTTPОтвет - Ответ сервера Viber
Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователей);
URL = "https://chatapi.viber.com/pa/get_online";
Если Не ТипЗнч(IDПользователей) = Тип("Массив") Тогда
@ -188,6 +199,10 @@
, Знач Расширение
, Знач Размер = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Расширение);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
Если Не ЗначениеЗаполнено(Размер) Тогда
Ответ = OPI_Инструменты.Get(URL);
@ -228,9 +243,12 @@
, Знач IDПользователя
, Знач ОтправкаВКанал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяКонтакта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона);
СтруктураКонтакта = Новый Структура;
СтруктураКонтакта.Вставить("name", ИмяКонтакта);
СтруктураКонтакта.Вставить("phone_number", Строка(НомерТелефона));
СтруктураКонтакта.Вставить("phone_number", НомерТелефона);
Возврат ОтправитьСообщение(Токен, "contact", IDПользователя, ОтправкаВКанал, СтруктураКонтакта);
@ -249,9 +267,12 @@
// Произвольный, HTTPОтвет - Отправить локацию
Функция ОтправитьЛокацию(Знач Токен, Знач Широта, Знач Долгота, Знач IDПользователя, Знач ОтправкаВКанал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
СтруктураЛокации = Новый Структура;
СтруктураЛокации.Вставить("lat", OPI_Инструменты.ЧислоВСтроку(Широта));
СтруктураЛокации.Вставить("lon", OPI_Инструменты.ЧислоВСтроку(Долгота));
СтруктураЛокации.Вставить("lat", Широта);
СтруктураЛокации.Вставить("lon", Долгота);
Возврат ОтправитьСообщение(Токен, "location", IDПользователя, ОтправкаВКанал, СтруктураЛокации);
@ -285,6 +306,9 @@
// * Type - Строка - Тип клавиатуры
Функция СформироватьКлавиатуруИзМассиваКнопок(Знач МассивКнопок, Знач ЦветКнопок = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ЦветКнопок);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКнопок);
МассивСтруктурКнопок = Новый Массив;
СтруктураКлавиатуры = Новый Структура;
ЦветКнопок = ?(ЗначениеЗаполнено(ЦветКнопок), ЦветКнопок, "#2db9b9");
@ -339,6 +363,13 @@
, Знач Текст = ""
, Знач Клавиатура = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Тип);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
OPI_ПреобразованиеТипов.ПолучитьБулево(ЭтоКанал);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Клавиатура);
СтруктураПараметров = ВернутьСтандартныеПараметры();
СтруктураПараметров.Вставить("type", Тип);

View File

@ -1,4 +1,34 @@
#Область СлужебныйПрограммныйИнтерфейс
// MIT License
// Copyright (c) 2023 Anton Tsitavets
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
// https://github.com/Bayselonarrend/OpenIntegrations
// BSLLS:LatinAndCyrillicSymbolInWord-off
// BSLLS:IncorrectLineBreak-off
// BSLLS:UnusedLocalVariable-off
#Использовать "./internal"
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПолучитьДвоичныеДанные(Значение) Экспорт
@ -46,6 +76,12 @@
Возврат;
Иначе
Если ТипЗнч(Значение) = Тип("ДвоичныеДанные") Тогда
Значение = ПолучитьСтрокуИзДвоичныхДанных(Значение);
Иначе
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
КонецЕсли;
Файл = Новый Файл(Значение);
ЧтениеJSON = Новый ЧтениеJSON;
@ -54,7 +90,7 @@
ЧтениеJSON.ОткрытьФайл(Значение);
ЧтениеJSON.Прочитать();
ИначеЕсли СтрНайти(Значение, "://") Тогда
ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда
ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ);
@ -76,7 +112,9 @@
Исключение
Если ТипЗнч(Значение) = Тип("Строка") И СтрНайти(Значение, "[") > 0 Тогда
Если ТипЗнч(Значение) = Тип("Строка")
И СтрНачинаетсяС(Значение, "[")
И СтрЗаканчиваетсяНа(Значение, "]") Тогда
Значение = СтрЗаменить(Значение, "['" , "");
Значение = СтрЗаменить(Значение, "']" , "");
@ -118,16 +156,16 @@
Процедура ПолучитьСтроку(Значение, Знач ИзИсточника = Ложь) Экспорт
Если Не ИзИсточника Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Возврат;
КонецЕсли;
Попытка
Если ТипЗнч(Значение) = Тип("Строка")
Или ТипЗнч(Значение) = Тип("Число")
Или ТипЗнч(Значение) = Тип("Дата") Тогда
Если Не ИзИсточника Тогда
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Возврат;
КонецЕсли;
Значение = OPI_Инструменты.ЧислоВСтроку(Значение);
Файл = Новый Файл(Значение);
@ -138,7 +176,7 @@
Значение = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ИначеЕсли СтрНайти(Значение, "://") Тогда
ИначеЕсли СтрНачинаетсяС(нРег(Значение), "http") Тогда
ИВФ = ПолучитьИмяВременногоФайла();
КопироватьФайл(Значение, ИВФ);

View File

@ -245,8 +245,14 @@
Функция JSONСтрокой(Знач Данные) Экспорт
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows, " ", Истина, ЭкранированиеСимволовJSON.Нет,
Ложь, Ложь, Ложь, Ложь);
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Windows
, " "
, Истина
, ЭкранированиеСимволовJSON.СимволыВнеASCII
, Ложь
, Ложь
, Ложь
, Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);