From 2f0087b1338645c94ca58f5d65575dbc14304070 Mon Sep 17 00:00:00 2001 From: Anton Date: Sat, 20 Apr 2024 20:19:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20Viber?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OPI/src/CommonModules/OPI_Slack/Module.bsl | 35 ++++++++- OPI/src/CommonModules/OPI_Viber/Module.bsl | 87 ++++++++-------------- 2 files changed, 62 insertions(+), 60 deletions(-) diff --git a/OPI/src/CommonModules/OPI_Slack/Module.bsl b/OPI/src/CommonModules/OPI_Slack/Module.bsl index e8ffe7ea1..67487db46 100644 --- a/OPI/src/CommonModules/OPI_Slack/Module.bsl +++ b/OPI/src/CommonModules/OPI_Slack/Module.bsl @@ -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_ПреобразованиеТипов.ПолучитьСтроку(Токен); diff --git a/OPI/src/CommonModules/OPI_Viber/Module.bsl b/OPI/src/CommonModules/OPI_Viber/Module.bsl index d9bb3d8d2..0f15a165c 100644 --- a/OPI/src/CommonModules/OPI_Viber/Module.bsl +++ b/OPI/src/CommonModules/OPI_Viber/Module.bsl @@ -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", Токен); Возврат СтруктураЗаголовков;