1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-18 05:18:06 +02:00

Рефакторинг Viber

This commit is contained in:
Anton 2024-04-20 20:19:37 +03:00
parent 80b44f96a3
commit 2f0087b133
2 changed files with 62 additions and 60 deletions

View File

@ -94,9 +94,7 @@
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
ЕстьБлоки = ЗначениеЗаполнено(МассивБлоков);
ЕстьДата = ЗначениеЗаполнено(ДатаОтправки);
ЕстьДата = ЗначениеЗаполнено(ДатаОтправки);
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -121,6 +119,18 @@
КонецФункции
// Изменить сообщение
// Изменяет состав существующего сообщения
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Отметка - Строка - Временная отметка сообщения - stamp
// Текст - Строка - Новый текст сообщения - text
// МассивБлоков - Массив Из Структура - Массив описаний блоков - blocks - JSON массива описаний блоков
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ИзменитьСообщение(Знач Токен, Знач Канал, Знач Отметка, Знач Текст = "", Знач МассивБлоков = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
@ -177,6 +187,15 @@
КонецФункции
// Получить список отложенных сообщений
// Получает список отложенных сообщений канала
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ПолучитьСписокОтложенныхСообщений(Знач Токен, Знач Канал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
@ -193,6 +212,16 @@
КонецФункции
// Получить ссылку на сообщение
// Получает постоянный UTL к сообщению канала
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Идентификатор канала - channel
// Отметка - Строка - Временная отметка или ID сообщения - stamp
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ПолучитьСсылкуНаСообщение(Знач Токен, Знач Канал, Знач Отметка) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);

View File

@ -46,14 +46,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
Функция УстановитьWebhook(Знач Токен, Знач URL) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("url" , URL);
СтруктураПараметров.Вставить("auth_token", Токен);
Возврат OPI_Инструменты.Post("https://chatapi.viber.com/pa/set_webhook", СтруктураПараметров);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("url" , URL , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("auth_token" , Токен, "Строка", Параметры);
Возврат OPI_Инструменты.Post("https://chatapi.viber.com/pa/set_webhook", Параметры);
КонецФункции
@ -68,8 +65,6 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
Функция ПолучитьИнформациюОКанале(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
URL = "https://chatapi.viber.com/pa/get_account_info";
Возврат OPI_Инструменты.Get(URL, , ТокенВЗаголовки(Токен));
@ -86,22 +81,15 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
Функция ПолучитьДанныеПользователя(Знач Токен, Знач IDПользователя) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDПользователя);
URL = "https://chatapi.viber.com/pa/get_user_details";
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("id", IDПользователя);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("id", IDПользователя, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
Ответ = OPI_Инструменты.Post(URL, Параметры, ТокенВЗаголовки(Токен));
Возврат Ответ;
Попытка
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
Исключение
Возврат Ответ;
КонецПопытки;
КонецФункции
// Получить онлайн пользователей
@ -115,21 +103,14 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
Функция ПолучитьОнлайнПользователей(Знач Токен, Знач IDПользователей) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(IDПользователей);
URL = "https://chatapi.viber.com/pa/get_online";
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ids", IDПользователей);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("ids", IDПользователей, "Коллекция", Параметры);
Ответ = OPI_Инструменты.Post(URL, СтруктураПараметров, ТокенВЗаголовки(Токен));
Ответ = OPI_Инструменты.Post(URL, Параметры, ТокенВЗаголовки(Токен));
Попытка
Возврат OPI_Инструменты.JsonВСтруктуру(Ответ.ПолучитьТелоКакДвоичныеДанные());
Исключение
Возврат Ответ;
КонецПопытки;
Возврат Ответ;
КонецФункции
@ -196,11 +177,7 @@
, Знач ОтправкаВКанал
, Знач Расширение
, Знач Размер = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Расширение);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Размер);
Если Не ЗначениеЗаполнено(Размер) Тогда
Ответ = OPI_Инструменты.Get(URL);
@ -210,12 +187,12 @@
Расширение = СтрЗаменить(Расширение, ".", "");
СтруктураЗначения = Новый Структура;
СтруктураЗначения.Вставить("URL" , URL);
СтруктураЗначения.Вставить("Размер" , Размер);
СтруктураЗначения.Вставить("Расширение" , Расширение);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("URL" , URL , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("Размер" , Размер , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("Расширение", Расширение, "Строка", Параметры);
Возврат ОтправитьСообщение(Токен, "file", IDПользователя, ОтправкаВКанал, СтруктураЗначения);
Возврат ОтправитьСообщение(Токен, "file", IDПользователя, ОтправкаВКанал, Параметры);
КонецФункции
@ -237,14 +214,11 @@
, Знач IDПользователя
, Знач ОтправкаВКанал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ИмяКонтакта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name" , ИмяКонтакта , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("phone_number", НомерТелефона, "Строка", Параметры);
СтруктураКонтакта = Новый Структура;
СтруктураКонтакта.Вставить("name" , ИмяКонтакта);
СтруктураКонтакта.Вставить("phone_number", НомерТелефона);
Возврат ОтправитьСообщение(Токен, "contact", IDПользователя, ОтправкаВКанал, СтруктураКонтакта);
Возврат ОтправитьСообщение(Токен, "contact", IDПользователя, ОтправкаВКанал, Параметры);
КонецФункции
@ -262,14 +236,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Viber
Функция ОтправитьЛокацию(Знач Токен, Знач Широта, Знач Долгота, Знач IDПользователя, Знач ОтправкаВКанал) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Широта);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Долгота);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("lat", Широта , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("lon", Долгота, "Строка", Параметры);
СтруктураЛокации = Новый Структура;
СтруктураЛокации.Вставить("lat", Широта);
СтруктураЛокации.Вставить("lon", Долгота);
Возврат ОтправитьСообщение(Токен, "location", IDПользователя, ОтправкаВКанал, СтруктураЛокации);
Возврат ОтправитьСообщение(Токен, "location", IDПользователя, ОтправкаВКанал, Параметры);
КонецФункции
@ -427,6 +398,8 @@
Функция ТокенВЗаголовки(Знач Токен)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
СтруктураЗаголовков = Новый Соответствие;
СтруктураЗаголовков.Вставить("X-Viber-Auth-Token", Токен);
Возврат СтруктураЗаголовков;