mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-04 03:48:40 +02:00
Правка отправки текста и MA Telegram
This commit is contained in:
parent
c320635f4c
commit
0d7123263c
File diff suppressed because it is too large
Load Diff
@ -179,11 +179,25 @@ Function ProcessTMAData(Val DataString, Val Token) Export
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
OPI_TypeConversion.GetLine(DataString);
|
||||
|
||||
DataString = DecodeString(DataString, StringEncodingMethod.URLencoding);
|
||||
DataStructure = OPI_Tools.RequestParametersToMap(DataString);
|
||||
KeyString = "WebAppData";
|
||||
Hash = "";
|
||||
BinaryKey = GetBinaryDataFromString(KeyString);
|
||||
If StrStartsWith(DataString, "?") Then
|
||||
DataString = Right(DataString, StrLen(DataString) - 1);
|
||||
EndIf;
|
||||
|
||||
EncodingString = OPI_Tools.RequestParametersToMap(DataString);
|
||||
DataStructure = New Map;
|
||||
|
||||
For Each DataElement In EncodingString Do
|
||||
|
||||
CurrentKey = DecodeString(DataElement.Key, StringEncodingMethod.URLencoding);
|
||||
CurrentValue = DecodeString(DataElement.Value, StringEncodingMethod.URLencoding);
|
||||
|
||||
DataStructure.Insert(CurrentKey, CurrentValue);
|
||||
|
||||
EndDo;
|
||||
|
||||
KeyString = "WebAppData";
|
||||
Hash = "";
|
||||
BinaryKey = GetBinaryDataFromString(KeyString);
|
||||
|
||||
Result = OPI_Cryptography.HMACSHA256(BinaryKey, GetBinaryDataFromString(Token));
|
||||
|
||||
@ -206,7 +220,7 @@ Function ProcessTMAData(Val DataString, Val Token) Export
|
||||
|
||||
For Each DataString In TValue Do
|
||||
|
||||
If DataString.Key <> "hash" Then
|
||||
If DataString.Key <> "hash" And DataString.Key <> "cookie" Then
|
||||
DCS = DCS + DataString.Key + "=" + DataString.Value + Chars.LF;
|
||||
ReturnMapping.Insert(DataString.Key, DataString.Value);
|
||||
Else
|
||||
@ -257,10 +271,13 @@ Function SendTextMessage(Val Token
|
||||
, Val RepliedID = 0) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
OPI_TypeConversion.GetLine(Text);
|
||||
OPI_Tools.ReplaceSpecialCharacters(Text, Markup);
|
||||
|
||||
String_ = "String";
|
||||
|
||||
Text = DecodeString(Text, StringEncodingMethod.URLInURLEncoding);
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("parse_mode" , Markup , String_ , Parameters);
|
||||
OPI_Tools.AddField("text" , Text , String_ , Parameters);
|
||||
@ -270,7 +287,7 @@ Function SendTextMessage(Val Token
|
||||
AddChatIdentifier(ChatID, Parameters);
|
||||
|
||||
URL = "api.telegram.org/bot" + Token + "/sendMessage";
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
|
@ -3423,6 +3423,13 @@ Procedure Check_TelegramNumber(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_TelegramOk(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result).ИмеетТип("Map").Заполнено();
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["ok"]).Равно(True);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_TelegramCreateTopic(Val Result, Val Name, Icon)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result).ИмеетТип("Map").Заполнено();
|
||||
@ -4225,6 +4232,30 @@ Procedure Telegram_SendTextMessage(FunctionParameters)
|
||||
MessageID = OPI_Tools.NumberToString(Result["result"]["message_id"]);
|
||||
OPI_TestDataRetrieval.WriteParameter("Telegram_ChannelMessageID", MessageID);
|
||||
|
||||
Text = "<b>Text html %F0%9F%93%9E 10%</b>";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChannelID, Text, , "HTML");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (HTML)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
Text = "%F0%9F%A4%BC";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChatID, Text);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (emoji)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
Text = "Text %F0%9F%A5%9D and emoji \(10%\)";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChannelID, Text, , "MarkdownV2");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (text and emoji)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
@ -179,11 +179,25 @@ Function ProcessTMAData(Val DataString, Val Token) Export
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
OPI_TypeConversion.GetLine(DataString);
|
||||
|
||||
DataString = DecodeString(DataString, StringEncodingMethod.URLencoding);
|
||||
DataStructure = OPI_Tools.RequestParametersToMap(DataString);
|
||||
KeyString = "WebAppData";
|
||||
Hash = "";
|
||||
BinaryKey = GetBinaryDataFromString(KeyString);
|
||||
If StrStartsWith(DataString, "?") Then
|
||||
DataString = Right(DataString, StrLen(DataString) - 1);
|
||||
EndIf;
|
||||
|
||||
EncodingString = OPI_Tools.RequestParametersToMap(DataString);
|
||||
DataStructure = New Map;
|
||||
|
||||
For Each DataElement In EncodingString Do
|
||||
|
||||
CurrentKey = DecodeString(DataElement.Key, StringEncodingMethod.URLencoding);
|
||||
CurrentValue = DecodeString(DataElement.Value, StringEncodingMethod.URLencoding);
|
||||
|
||||
DataStructure.Insert(CurrentKey, CurrentValue);
|
||||
|
||||
EndDo;
|
||||
|
||||
KeyString = "WebAppData";
|
||||
Hash = "";
|
||||
BinaryKey = GetBinaryDataFromString(KeyString);
|
||||
|
||||
Result = OPI_Cryptography.HMACSHA256(BinaryKey, GetBinaryDataFromString(Token));
|
||||
|
||||
@ -206,7 +220,7 @@ Function ProcessTMAData(Val DataString, Val Token) Export
|
||||
|
||||
For Each DataString In TValue Do
|
||||
|
||||
If DataString.Key <> "hash" Then
|
||||
If DataString.Key <> "hash" And DataString.Key <> "cookie" Then
|
||||
DCS = DCS + DataString.Key + "=" + DataString.Value + Chars.LF;
|
||||
ReturnMapping.Insert(DataString.Key, DataString.Value);
|
||||
Else
|
||||
@ -257,10 +271,13 @@ Function SendTextMessage(Val Token
|
||||
, Val RepliedID = 0) Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Token);
|
||||
OPI_TypeConversion.GetLine(Text);
|
||||
OPI_Tools.ReplaceSpecialCharacters(Text, Markup);
|
||||
|
||||
String_ = "String";
|
||||
|
||||
Text = DecodeString(Text, StringEncodingMethod.URLInURLEncoding);
|
||||
|
||||
Parameters = New Structure;
|
||||
OPI_Tools.AddField("parse_mode" , Markup , String_ , Parameters);
|
||||
OPI_Tools.AddField("text" , Text , String_ , Parameters);
|
||||
@ -270,7 +287,7 @@ Function SendTextMessage(Val Token
|
||||
AddChatIdentifier(ChatID, Parameters);
|
||||
|
||||
URL = "api.telegram.org/bot" + Token + "/sendMessage";
|
||||
Response = OPI_Tools.Get(URL, Parameters);
|
||||
Response = OPI_Tools.Post(URL, Parameters);
|
||||
|
||||
Return Response;
|
||||
|
||||
|
@ -3423,6 +3423,13 @@ Procedure Check_TelegramNumber(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_TelegramOk(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result).ИмеетТип("Map").Заполнено();
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["ok"]).Равно(True);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_TelegramCreateTopic(Val Result, Val Name, Icon)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result).ИмеетТип("Map").Заполнено();
|
||||
@ -4225,6 +4232,30 @@ Procedure Telegram_SendTextMessage(FunctionParameters)
|
||||
MessageID = OPI_Tools.NumberToString(Result["result"]["message_id"]);
|
||||
OPI_TestDataRetrieval.WriteParameter("Telegram_ChannelMessageID", MessageID);
|
||||
|
||||
Text = "<b>Text html %F0%9F%93%9E 10%</b>";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChannelID, Text, , "HTML");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (HTML)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
Text = "%F0%9F%A4%BC";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChatID, Text);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (emoji)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
Text = "Text %F0%9F%A5%9D and emoji \(10%\)";
|
||||
|
||||
Result = OPI_Telegram.SendTextMessage(Token, ChannelID, Text, , "MarkdownV2");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "SendTextMessage (text and emoji)");
|
||||
|
||||
Check_TelegramOk(Result);
|
||||
|
||||
OPI_Tools.Pause(5);
|
||||
|
||||
EndProcedure
|
||||
|
@ -179,8 +179,22 @@
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаДанных);
|
||||
|
||||
СтрокаДанных = РаскодироватьСтроку(СтрокаДанных, СпособКодированияСтроки.КодировкаURL);
|
||||
СтруктураДанных = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
||||
Если СтрНачинаетсяС(СтрокаДанных, "?") Тогда
|
||||
СтрокаДанных = Прав(СтрокаДанных, СтрДлина(СтрокаДанных) - 1);
|
||||
КонецЕсли;
|
||||
|
||||
КодированныеДанные = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
||||
СтруктураДанных = Новый Соответствие;
|
||||
|
||||
Для Каждого ЭлементДанных Из КодированныеДанные Цикл
|
||||
|
||||
ТекущийКлюч = РаскодироватьСтроку(ЭлементДанных.Ключ, СпособКодированияСтроки.КодировкаURL);
|
||||
ТекущееЗначение = РаскодироватьСтроку(ЭлементДанных.Значение, СпособКодированияСтроки.КодировкаURL);
|
||||
|
||||
СтруктураДанных.Вставить(ТекущийКлюч, ТекущееЗначение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КлючСтрокой = "WebAppData";
|
||||
Хэш = "";
|
||||
КлючДвоичные = ПолучитьДвоичныеДанныеИзСтроки(КлючСтрокой);
|
||||
@ -206,7 +220,7 @@
|
||||
|
||||
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
||||
|
||||
Если СтрокаТЗ.Ключ <> "hash" Тогда
|
||||
Если СтрокаТЗ.Ключ <> "hash" И СтрокаТЗ.Ключ <> "cookie" Тогда
|
||||
DCS = DCS + СтрокаТЗ.Ключ + "=" + СтрокаТЗ.Значение + Символы.ПС;
|
||||
СоответствиеВозврата.Вставить(СтрокаТЗ.Ключ, СтрокаТЗ.Значение);
|
||||
Иначе
|
||||
@ -257,10 +271,13 @@
|
||||
, Знач IDВходящего = 0) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
||||
OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка);
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
Текст = РаскодироватьСтроку(Текст, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , Строка_ , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
|
||||
@ -270,7 +287,7 @@
|
||||
ДобавитьИдентификаторЧата(IDЧата, Параметры);
|
||||
|
||||
URL = "api.telegram.org/bot" + Токен + "/sendMessage";
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
@ -3423,6 +3423,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ТелеграмОк(Знач Результат)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ТелеграмСозданиеТемы(Знач Результат, Знач Имя, Иконка)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
@ -4225,6 +4232,30 @@
|
||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(Результат["result"]["message_id"]);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_ChannelMessageID", IDСообщения);
|
||||
|
||||
Текст = "<b>Текст html %F0%9F%93%9E 10%</b>";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "HTML");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (HTML)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
Текст = "%F0%9F%A4%BC";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (emoji)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
Текст = "Текст %F0%9F%A5%9D и emoji \(10%\)";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "MarkdownV2");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (текст и emoji)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
@ -179,8 +179,22 @@
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СтрокаДанных);
|
||||
|
||||
СтрокаДанных = РаскодироватьСтроку(СтрокаДанных, СпособКодированияСтроки.КодировкаURL);
|
||||
СтруктураДанных = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
||||
Если СтрНачинаетсяС(СтрокаДанных, "?") Тогда
|
||||
СтрокаДанных = Прав(СтрокаДанных, СтрДлина(СтрокаДанных) - 1);
|
||||
КонецЕсли;
|
||||
|
||||
КодированныеДанные = OPI_Инструменты.ПараметрыЗапросаВСоответствие(СтрокаДанных);
|
||||
СтруктураДанных = Новый Соответствие;
|
||||
|
||||
Для Каждого ЭлементДанных Из КодированныеДанные Цикл
|
||||
|
||||
ТекущийКлюч = РаскодироватьСтроку(ЭлементДанных.Ключ, СпособКодированияСтроки.КодировкаURL);
|
||||
ТекущееЗначение = РаскодироватьСтроку(ЭлементДанных.Значение, СпособКодированияСтроки.КодировкаURL);
|
||||
|
||||
СтруктураДанных.Вставить(ТекущийКлюч, ТекущееЗначение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КлючСтрокой = "WebAppData";
|
||||
Хэш = "";
|
||||
КлючДвоичные = ПолучитьДвоичныеДанныеИзСтроки(КлючСтрокой);
|
||||
@ -206,7 +220,7 @@
|
||||
|
||||
Для Каждого СтрокаТЗ Из ТЗнач Цикл
|
||||
|
||||
Если СтрокаТЗ.Ключ <> "hash" Тогда
|
||||
Если СтрокаТЗ.Ключ <> "hash" И СтрокаТЗ.Ключ <> "cookie" Тогда
|
||||
DCS = DCS + СтрокаТЗ.Ключ + "=" + СтрокаТЗ.Значение + Символы.ПС;
|
||||
СоответствиеВозврата.Вставить(СтрокаТЗ.Ключ, СтрокаТЗ.Значение);
|
||||
Иначе
|
||||
@ -257,10 +271,13 @@
|
||||
, Знач IDВходящего = 0) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Текст);
|
||||
OPI_Инструменты.ЗаменитьСпецСимволы(Текст, Разметка);
|
||||
|
||||
Строка_ = "Строка";
|
||||
|
||||
Текст = РаскодироватьСтроку(Текст, СпособКодированияСтроки.URLВКодировкеURL);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("parse_mode" , Разметка , Строка_ , Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("text" , Текст , Строка_ , Параметры);
|
||||
@ -270,7 +287,7 @@
|
||||
ДобавитьИдентификаторЧата(IDЧата, Параметры);
|
||||
|
||||
URL = "api.telegram.org/bot" + Токен + "/sendMessage";
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
Ответ = OPI_Инструменты.Post(URL, Параметры);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
@ -3423,6 +3423,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ТелеграмОк(Знач Результат)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Проверка_ТелеграмСозданиеТемы(Знач Результат, Знач Имя, Иконка)
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
|
||||
@ -4225,6 +4232,30 @@
|
||||
IDСообщения = OPI_Инструменты.ЧислоВСтроку(Результат["result"]["message_id"]);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Telegram_ChannelMessageID", IDСообщения);
|
||||
|
||||
Текст = "<b>Текст html %F0%9F%93%9E 10%</b>";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "HTML");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (HTML)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
Текст = "%F0%9F%A4%BC";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDЧата, Текст);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (emoji)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
Текст = "Текст %F0%9F%A5%9D и emoji \(10%\)";
|
||||
|
||||
Результат = OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDКанала, Текст, , "MarkdownV2");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьТекстовоеСообщение (текст и emoji)");
|
||||
|
||||
Проверка_ТелеграмОк(Результат);
|
||||
|
||||
OPI_Инструменты.Пауза(5);
|
||||
|
||||
КонецПроцедуры
|
||||
|
Loading…
Reference in New Issue
Block a user