mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-26 05:37:27 +02:00
YAX: тесты для Telegram API
This commit is contained in:
parent
9e27f8eafa
commit
e5971481c7
@ -21,7 +21,6 @@
|
||||
// SOFTWARE.
|
||||
|
||||
// https://github.com/Bayselonarrend/OpenIntegrations
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ДанныеИНастройка
|
||||
@ -123,16 +122,15 @@
|
||||
СтруктураПользователя = СтруктураСообщения[From];
|
||||
СтруктураЧата = СтруктураСообщения[Chat];
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("Вид" , "Сообщение");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения[MessageId]);
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["text"]);
|
||||
СтруктураПараметровВыходная.Вставить("Дата"
|
||||
, Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
||||
СтруктураПараметровВыходная.Вставить("Вид", "Сообщение");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения", СтруктураСообщения[MessageId]);
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураЧата[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["text"]);
|
||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен" , Ложь);
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
||||
|
||||
ИначеЕсли СтруктураПараметровВходная.Свойство("my_chat_member") Тогда
|
||||
|
||||
@ -140,43 +138,41 @@
|
||||
СтруктураПользователя = СтруктураСообщения[From];
|
||||
СтруктураЧата = СтруктураСообщения[Chat];
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("Вид" , "Запуск/Остановка");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения" , "");
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураЧата[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["new_chat_member"]["status"]);
|
||||
СтруктураПараметровВыходная.Вставить("Дата"
|
||||
, Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
||||
СтруктураПараметровВыходная.Вставить("Вид", "Запуск/Остановка");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения", "");
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураЧата[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["new_chat_member"]["status"]);
|
||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения["date"]);
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен"
|
||||
, ?(СтруктураСообщения["new_chat_member"]["status"] = "kicked", Истина, Ложь));
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен", ?(СтруктураСообщения["new_chat_member"]["status"]
|
||||
= "kicked", Истина, Ложь));
|
||||
|
||||
ИначеЕсли СтруктураПараметровВходная.Свойство("callback_query") Тогда
|
||||
|
||||
СтруктураСообщения = СтруктураПараметровВходная["callback_query"];
|
||||
СтруктураПользователя = СтруктураСообщения[From];
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("Вид" , "Кнопка под сообщением");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм" , СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя" , СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения" , СтруктураСообщения[Message][MessageId]);
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата" , СтруктураСообщения[Message][Chat][Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение" , СтруктураСообщения["data"]);
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен" , Ложь);
|
||||
СтруктураПараметровВыходная.Вставить("Дата"
|
||||
, Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения[Message]["date"]);
|
||||
СтруктураПараметровВыходная.Вставить("Вид", "Кнопка под сообщением");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм", СтруктураПользователя[Username]);
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя", СтруктураПользователя[Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения", СтруктураСообщения[Message][MessageId]);
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата", СтруктураСообщения[Message][Chat][Id_]);
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение", СтруктураСообщения["data"]);
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
||||
СтруктураПараметровВыходная.Вставить("Дата", Дата(1970, 1, 1, 1, 0, 0) + СтруктураСообщения[Message]["date"]);
|
||||
|
||||
Иначе
|
||||
|
||||
СтруктураПараметровВыходная.Вставить("Вид" , "");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм" , "");
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя" , "");
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения" , "");
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата" , "");
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение" , "");
|
||||
СтруктураПараметровВыходная.Вставить("Дата" , ТекущаяДатаСеанса());
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен" , Ложь);
|
||||
СтруктураПараметровВыходная.Вставить("Вид", "");
|
||||
СтруктураПараметровВыходная.Вставить("Никнейм", "");
|
||||
СтруктураПараметровВыходная.Вставить("IDПользователя", "");
|
||||
СтруктураПараметровВыходная.Вставить("IDСообщения", "");
|
||||
СтруктураПараметровВыходная.Вставить("IDЧата", "");
|
||||
СтруктураПараметровВыходная.Вставить("Сообщение", "");
|
||||
СтруктураПараметровВыходная.Вставить("Дата", ТекущаяДатаСеанса());
|
||||
СтруктураПараметровВыходная.Вставить("БотОтключен", Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@ -205,10 +201,10 @@
|
||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("text" , Текст);
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("reply_markup" , Клавиатура);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("text", Текст);
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/sendMessage", Параметры_);
|
||||
|
||||
@ -314,11 +310,7 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Произвольный, HTTPОтвет - Ответ сервера Telegram
|
||||
Функция ОтправитьМедиагруппу(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Текст
|
||||
, Знач СоответствиеФайлов
|
||||
, Знач Клавиатура = "") Экспорт
|
||||
Функция ОтправитьМедиагруппу(Знач Токен, Знач IDЧата, Знач Текст, Знач СоответствиеФайлов, Знач Клавиатура = "") Экспорт
|
||||
|
||||
// СоответствиеФайлов
|
||||
// Ключ - Файл, Значение - Тип
|
||||
@ -333,19 +325,18 @@
|
||||
Счетчик = 0;
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("caption" , Текст);
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("reply_markup" , Клавиатура);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("caption", Текст);
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||
|
||||
Для Каждого ТекущийФайл Из СоответствиеФайлов Цикл
|
||||
|
||||
Если Не ТипЗнч(ТекущийФайл.Ключ) = Тип("ДвоичныеДанные") Тогда
|
||||
ДД = Новый ДвоичныеДанные(ТекущийФайл.Ключ);
|
||||
ЭтотФайл = Новый Файл(ТекущийФайл.Ключ);
|
||||
ИмяМедиа = ТекущийФайл.Значение
|
||||
+ Строка(Счетчик)
|
||||
+ ?(ТекущийФайл.Значение = "document", ЭтотФайл.Расширение, "");
|
||||
ИмяМедиа = ТекущийФайл.Значение + Строка(Счетчик) + ?(ТекущийФайл.Значение = "document",
|
||||
ЭтотФайл.Расширение, "");
|
||||
ПолноеИмяМедиа = СтрЗаменить(ИмяМедиа, ".", "___");
|
||||
Иначе
|
||||
ДД = ТекущийФайл.Ключ;
|
||||
@ -353,10 +344,10 @@
|
||||
ПолноеИмяМедиа = ИмяМедиа;
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураФайлов.Вставить(ПолноеИмяМедиа , ДД);
|
||||
СтруктураФайлов.Вставить(ПолноеИмяМедиа, ДД);
|
||||
|
||||
СтруктураМедиа = Новый Структура;
|
||||
СтруктураМедиа.Вставить("type" , ТекущийФайл.Значение);
|
||||
СтруктураМедиа.Вставить("type", ТекущийФайл.Значение);
|
||||
СтруктураМедиа.Вставить("media", "attach://" + ИмяМедиа);
|
||||
|
||||
Если Счетчик = 0 Тогда
|
||||
@ -371,9 +362,8 @@
|
||||
|
||||
Параметры_.Вставить("media", OPI_Инструменты.JSONСтрокой(Медиа));
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart("api.telegram.org/bot"
|
||||
+ Токен
|
||||
+ "/sendMediaGroup", Параметры_, СтруктураФайлов, "mixed");
|
||||
Ответ = OPI_Инструменты.PostMultipart("api.telegram.org/bot" + Токен + "/sendMediaGroup", Параметры_,
|
||||
СтруктураФайлов, "mixed");
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
@ -395,11 +385,11 @@
|
||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("latitude" , OPI_Инструменты.ЧислоВСтроку(Широта));
|
||||
Параметры_.Вставить("longitude" , OPI_Инструменты.ЧислоВСтроку(Долгота));
|
||||
Параметры_.Вставить("reply_markup" , Клавиатура);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("latitude", OPI_Инструменты.ЧислоВСтроку(Широта));
|
||||
Параметры_.Вставить("longitude", OPI_Инструменты.ЧислоВСтроку(Долгота));
|
||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/sendLocation", Параметры_);
|
||||
|
||||
@ -424,12 +414,12 @@
|
||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("first_name" , Имя);
|
||||
Параметры_.Вставить("last_name" , Фамилия);
|
||||
Параметры_.Вставить("phone_number" , Строка(Телефон));
|
||||
Параметры_.Вставить("reply_markup" , Клавиатура);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("first_name", Имя);
|
||||
Параметры_.Вставить("last_name", Фамилия);
|
||||
Параметры_.Вставить("phone_number", Строка(Телефон));
|
||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/sendContact", Параметры_);
|
||||
|
||||
@ -454,10 +444,10 @@
|
||||
Ответы = OPI_Инструменты.JSONСтрокой(МассивОтветов);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("question" , Вопрос);
|
||||
Параметры_.Вставить("options" , Ответы);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("question", Вопрос);
|
||||
Параметры_.Вставить("options", Ответы);
|
||||
|
||||
Если Не Анонимный Тогда
|
||||
Параметры_.Вставить("is_anonymous", Ложь);
|
||||
@ -486,9 +476,9 @@
|
||||
КудаID = OPI_Инструменты.ЧислоВСтроку(КудаID);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("chat_id" , КудаID);
|
||||
Параметры_.Вставить("from_chat_id" , ОткудаID);
|
||||
Параметры_.Вставить("message_id" , IDОригинала);
|
||||
Параметры_.Вставить("chat_id", КудаID);
|
||||
Параметры_.Вставить("from_chat_id", ОткудаID);
|
||||
Параметры_.Вставить("message_id", IDОригинала);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/forwardMessage", Параметры_);
|
||||
|
||||
@ -515,9 +505,9 @@
|
||||
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("user_id" , IDПользователя);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("user_id", IDПользователя);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/banChatMember", Параметры_);
|
||||
|
||||
@ -540,10 +530,10 @@
|
||||
IDПользователя = OPI_Инструменты.ЧислоВСтроку(IDПользователя);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("user_id" , IDПользователя);
|
||||
Параметры_.Вставить("only_if_banned" , Истина);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("user_id", IDПользователя);
|
||||
Параметры_.Вставить("only_if_banned", Истина);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/unbanChatMember", Параметры_);
|
||||
|
||||
@ -562,18 +552,15 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные, Неопределено, Произвольный - Ответ сервера Telegram
|
||||
Функция СоздатьСсылкуПриглашение(Знач Токен
|
||||
, Знач IDЧата
|
||||
, Знач Заголовок = ""
|
||||
, Знач ДатаИстечения = ""
|
||||
, Знач ЛимитПользователей = 0) Экспорт
|
||||
Функция СоздатьСсылкуПриглашение(Знач Токен, Знач IDЧата, Знач Заголовок = "", Знач ДатаИстечения = "",
|
||||
Знач ЛимитПользователей = 0) Экспорт
|
||||
|
||||
IDЧата = OPI_Инструменты.ЧислоВСтроку(IDЧата);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("name" , Заголовок);
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("name", Заголовок);
|
||||
|
||||
Если ЗначениеЗаполнено(ДатаИстечения) Тогда
|
||||
Параметры_.Вставить("expire_date", Формат(ДатаИстечения - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0"));
|
||||
@ -602,10 +589,10 @@
|
||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("message_id" , IDСообщения);
|
||||
Параметры_.Вставить("disable_notification" , Истина);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("message_id", IDСообщения);
|
||||
Параметры_.Вставить("disable_notification", Истина);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/pinChatMessage", Параметры_);
|
||||
|
||||
@ -628,9 +615,9 @@
|
||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(IDСообщения);
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("message_id" , IDСообщения);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("message_id", IDСообщения);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/unpinChatMessage", Параметры_);
|
||||
|
||||
@ -652,7 +639,7 @@
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
|
||||
Ответ = OPI_Инструменты.Get("api.telegram.org/bot" + Токен + "/getChatMemberCount", Параметры_);
|
||||
|
||||
@ -679,8 +666,7 @@
|
||||
Ключ = "WebAppData";
|
||||
Хэш = "";
|
||||
|
||||
Результат = OPI_Криптография.HMACSHA256(ПолучитьДвоичныеДанныеИзСтроки(Ключ)
|
||||
, ПолучитьДвоичныеДанныеИзСтроки(Токен));
|
||||
Результат = OPI_Криптография.HMACSHA256(ПолучитьДвоичныеДанныеИзСтроки(Ключ), ПолучитьДвоичныеДанныеИзСтроки(Токен));
|
||||
|
||||
ТЗнач = Новый ТаблицаЗначений;
|
||||
ТЗнач.Колонки.Добавить("Ключ");
|
||||
@ -740,9 +726,7 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - JSON клавиатуры
|
||||
Функция СформироватьКлавиатуруПоМассивуКнопок(Знач МассивКнопок
|
||||
, Знач ПодСообщением = Ложь
|
||||
, Знач ОднаПодОдной = Истина) Экспорт
|
||||
Функция СформироватьКлавиатуруПоМассивуКнопок(Знач МассивКнопок, Знач ПодСообщением = Ложь, Знач ОднаПодОдной = Истина) Экспорт
|
||||
|
||||
Если ОднаПодОдной Тогда
|
||||
|
||||
@ -821,17 +805,15 @@
|
||||
Расширение = СтрЗаменить(Расширение, ".", "___");
|
||||
|
||||
Параметры_ = Новый Структура;
|
||||
Параметры_.Вставить("parse_mode" , "Markdown");
|
||||
Параметры_.Вставить("caption" , Текст);
|
||||
Параметры_.Вставить("chat_id" , IDЧата);
|
||||
Параметры_.Вставить("reply_markup" , Клавиатура);
|
||||
Параметры_.Вставить("parse_mode", "Markdown");
|
||||
Параметры_.Вставить("caption", Текст);
|
||||
Параметры_.Вставить("chat_id", IDЧата);
|
||||
Параметры_.Вставить("reply_markup", Клавиатура);
|
||||
|
||||
СтруктураФайлов = Новый Структура;
|
||||
СтруктураФайлов.Вставить(Вид + Расширение, Файл);
|
||||
|
||||
Ответ = OPI_Инструменты.PostMultipart("api.telegram.org/bot"
|
||||
+ Токен
|
||||
+ Метод, Параметры_, СтруктураФайлов, "mixed");
|
||||
Ответ = OPI_Инструменты.PostMultipart("api.telegram.org/bot" + Токен + Метод, Параметры_, СтруктураФайлов, "mixed");
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
@ -16,7 +16,12 @@
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьВидео" , "Отправить видео")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьАудио" , "Отправить аудио")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьДокумент" , "Отправить документ")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьГифку" , "Отправить гифку");
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьГифку" , "Отправить гифку")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьМестоположение" , "Отправить местоположение")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьКонтакт" , "Отправить контакт")
|
||||
.ДобавитьСерверныйТест("Телеграм_ОтправитьОпрос" , "Отправить опрос")
|
||||
.ДобавитьСерверныйТест("Телеграм_ПереслатьСообщение" , "Переслать сообщение");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -94,6 +99,9 @@
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст));
|
||||
|
||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(МассивРезультатов[1]["result"]["message_id"]);
|
||||
ЗаписатьПараметр("Телеграм_IDСообщенияКанала", IDСообщения);
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
@ -143,19 +151,18 @@
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
Текст = "Сообщение из автоматического теста";
|
||||
Картинка = ПолучитьДвоичные("Видео");
|
||||
Видео = ПолучитьДвоичные("Видео");
|
||||
ИВФ = ПолучитьИмяВременногоФайла("mp4");
|
||||
Картинка.Записать(ИВФ);
|
||||
Видео.Записать(ИВФ);
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDЧата , Текст, Картинка));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, Картинка));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDЧата , Текст, Видео));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, Видео));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDЧата , Текст, ИВФ));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьВидео(Токен, IDКанала, Текст, ИВФ));
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
//@skip-warning
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
@ -263,6 +270,143 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Телеграм_ОтправитьМедиагруппу() Экспорт
|
||||
|
||||
Токен = ПолучитьПараметр("Телеграм_Токен");
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
Текст = "Сообщение из автоматического теста";
|
||||
|
||||
Картинка = ПолучитьДвоичные("Картинка");
|
||||
ИВФ_Картинка = ПолучитьИмяВременногоФайла("png");
|
||||
Картинка.Записать(ИВФ_Картинка);
|
||||
|
||||
Видео = ПолучитьДвоичные("Видео");
|
||||
ИВФ_Видео = ПолучитьИмяВременногоФайла("mp4");
|
||||
Видео.Записать(ИВФ_Видео);
|
||||
|
||||
МедиагруппаЧат = Новый Соответствие;
|
||||
МедиагруппаЧат.Вставить(Картинка , "photo");
|
||||
МедиагруппаЧат.Вставить(ИВФ_Видео, "video");
|
||||
|
||||
МедиагруппаКанал = Новый Соответствие;
|
||||
МедиагруппаКанал.Вставить(ИВФ_Картинка, "photo");
|
||||
МедиагруппаКанал.Вставить(Видео , "video");
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьМедиагруппу(Токен, IDЧата, Текст, МедиагруппаЧат));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьМедиагруппу(Токен, IDКанала, Текст, МедиагруппаКанал));
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
.Свойство("ok").Равно(Истина)
|
||||
.Свойство("result").ИмеетТип("Массив").ИмеетДлину(2)
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
УдалитьФайлы(ИВФ_Картинка);
|
||||
УдалитьФайлы(ИВФ_Видео);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Телеграм_ОтправитьМестоположение() Экспорт
|
||||
|
||||
Токен = ПолучитьПараметр("Телеграм_Токен");
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
Ширина = "48.87373649724122";
|
||||
Долгота = "48.87373649724122";
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьМестоположение(Токен, IDЧата , Ширина, Долгота));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьМестоположение(Токен, IDКанала, Ширина, Долгота));
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
.Свойство("ok").Равно(Истина)
|
||||
.Свойство("result.location").ИмеетТип("Соответствие").Заполнено();
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Телеграм_ОтправитьКонтакт() Экспорт
|
||||
|
||||
Токен = ПолучитьПараметр("Телеграм_Токен");
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
Имя = "Петр";
|
||||
Фамилия = "Петров";
|
||||
Телефон = "88005553535";
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКонтакт(Токен, IDЧата , Имя, Фамилия, Телефон));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьКонтакт(Токен, IDКанала, Имя, Фамилия, Телефон));
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
.Свойство("ok").Равно(Истина)
|
||||
.Свойство("result.contact").ИмеетТип("Соответствие").Заполнено()
|
||||
.Свойство("result.contact.first_name").Равно(Имя);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Телеграм_ОтправитьОпрос() Экспорт
|
||||
|
||||
Токен = ПолучитьПараметр("Телеграм_Токен");
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
|
||||
Вопрос = "Какой ваш любимый цвет?";
|
||||
|
||||
МассивОтветов = Новый Массив;
|
||||
МассивОтветов.Добавить("Красный");
|
||||
МассивОтветов.Добавить("Желтый");
|
||||
МассивОтветов.Добавить("Зеленый");
|
||||
|
||||
МассивРезультатов = Новый Массив;
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьОпрос(Токен, IDЧата , Вопрос, МассивОтветов, Ложь));
|
||||
МассивРезультатов.Добавить(OPI_Telegram.ОтправитьОпрос(Токен, IDКанала, Вопрос, МассивОтветов, Истина));
|
||||
|
||||
Для Каждого Результат Из МассивРезультатов Цикл
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат)
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
.Свойство("ok").Равно(Истина)
|
||||
.Свойство("result.poll").ИмеетТип("Соответствие").Заполнено()
|
||||
.Свойство("result.poll.question").Равно(Вопрос);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Телеграм_ПереслатьСообщение() Экспорт
|
||||
|
||||
Токен = ПолучитьПараметр("Телеграм_Токен");
|
||||
IDЧата = ПолучитьПараметр("Телеграм_Чат");
|
||||
IDКанала = ПолучитьПараметр("Телеграм_Канал");
|
||||
IDСообщения = ПолучитьПараметр("Телеграм_IDСообщенияКанала");
|
||||
|
||||
ЮТест.ОжидаетЧто(OPI_Telegram.ПереслатьСообщение(Токен, IDСообщения, IDКанала, IDЧата))
|
||||
.ИмеетТип("Соответствие")
|
||||
.Заполнено()
|
||||
.Свойство("ok").Равно(Истина)
|
||||
.Свойство("result.forward_origin.message_id").Равно(Число(IDСообщения));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@ -308,7 +452,13 @@
|
||||
ИмяРеквизита = "Значение";
|
||||
|
||||
ЭлементСпр = Справочники[ИмяСправочника].НайтиПоНаименованию(Параметр);
|
||||
|
||||
Если ЗначениеЗаполнено(ЭлементСпр) Тогда
|
||||
ОбъектСпр = ЭлементСпр.ПолучитьОбъект();
|
||||
Иначе
|
||||
ОбъектСпр = Справочники[ИмяСправочника].СоздатьЭлемент();
|
||||
ОбъектСпр.Наименование = Параметр;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектСпр[ИмяРеквизита] = Значение;
|
||||
ОбъектСпр.Записать();
|
||||
|
Loading…
x
Reference in New Issue
Block a user