- Рефакторинг процедур общих модулей
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция ВыполнитьGetЗапрос(АдресРесурса, Параметры = Неопределено, ДвоичныеДанные = Ложь) Экспорт
|
||||
Функция ВыполнитьGetЗапрос(Соединение, АдресРесурса, Параметры = Неопределено, ДвоичныеДанные = Ложь) Экспорт
|
||||
|
||||
РезультатЗапроса = Новый Структура();
|
||||
РезультатЗапроса.Вставить("Успех", Ложь);
|
||||
@@ -9,8 +9,6 @@
|
||||
РезультатЗапроса.Вставить("ДвоичныеДанные", ДвоичныеДанные);
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
|
||||
Если Параметры <> Неопределено Тогда
|
||||
АдресРесурса = АдресРесурсаСПараметрами(АдресРесурса, Параметры);
|
||||
КонецЕсли;
|
||||
@@ -49,7 +47,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьPostЗапрос(АдресРесурса, Параметры = Неопределено, Данные = Неопределено) Экспорт
|
||||
Функция ВыполнитьPostЗапрос(Соединение, АдресРесурса, Параметры = Неопределено, Данные = Неопределено) Экспорт
|
||||
|
||||
РезультатЗапроса = Новый Структура();
|
||||
РезультатЗапроса.Вставить("Успех", Ложь);
|
||||
@@ -57,8 +55,6 @@
|
||||
РезультатЗапроса.Вставить("Описание", "");
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
|
||||
Если Параметры <> Неопределено Тогда
|
||||
АдресРесурса = АдресРесурсаСПараметрами(АдресРесурса, Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция SendMessage(ИдЧата, СообщениеДляОтправки, Клавиатура = Неопределено) Экспорт
|
||||
Функция SendMessage(ИдЧата, СообщениеДляОтправки, РежимРазметки = Неопределено, Клавиатура = Неопределено) Экспорт
|
||||
|
||||
ТелоЗапроса = Новый Структура("chat_id, text", ИдЧата, СообщениеДляОтправки);
|
||||
|
||||
@@ -8,8 +8,15 @@
|
||||
ТелоЗапроса.Вставить("reply_markup", Клавиатура);
|
||||
КонецЕсли;
|
||||
|
||||
Если РежимРазметки <> Неопределено Тогда
|
||||
Если РежимРазметки = Перечисления.ТелеграмРежимРазметки.HTML ИЛИ РежимРазметки = Перечисления.ТелеграмРежимРазметки.Markdown Тогда
|
||||
ТелоЗапроса.Вставить("parse_mode", Строка(РежимРазметки));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса,, ТелоЗапроса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ТелоЗапроса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -17,21 +24,24 @@
|
||||
|
||||
ПараметрыЗапроса = Новый Структура("url", АдресВебхук);
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("setWebhook");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса, ПараметрыЗапроса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция DeleteWebhook() Экспорт
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("deleteWebhook");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция GetWebhookInfo() Экспорт
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("getWebhookInfo");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -41,7 +51,8 @@
|
||||
Формат(ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() + 1, "ЧГ=0"));
|
||||
ПараметрыЗапроса = Новый Структура("offset", Смещение);
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса, ПараметрыЗапроса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -49,14 +60,16 @@
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("getFile");
|
||||
ПараметрыЗапроса = Новый Структура("file_id", ИдФайла);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса, ПараметрыЗапроса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция GetMe() Экспорт
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("getMe");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -66,7 +79,8 @@
|
||||
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
|
||||
ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Надпись, БезУведомления, Разделитель);
|
||||
ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса,, ДанныеДокумента);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -84,7 +98,8 @@
|
||||
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
|
||||
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель);
|
||||
ДанныеФото = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеФото);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса, ПараметрыЗапроса, ДанныеФото);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса, ДанныеФото);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -107,7 +107,8 @@
|
||||
Функция ПолучитьФайлССервераТелеграм(ПутьКФайлуНаСервере) Экспорт
|
||||
|
||||
АдресРесурса = СтрШаблон("file/bot%1/%2", ТелеграмПовторноеИспользование.ТелеграмТокен(), ПутьКФайлуНаСервере);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(АдресРесурса,, Истина);
|
||||
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса,, Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -12,18 +12,40 @@
|
||||
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
||||
|
||||
Если Ответ.Успех Тогда
|
||||
МассивРядов = Новый Массив;
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три");
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
|
||||
//МассивРядов = Новый Массив;
|
||||
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три");
|
||||
//МассивРядов.Добавить(МассивКнопок);
|
||||
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
|
||||
//МассивРядов.Добавить(МассивКнопок);
|
||||
//Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
|
||||
//
|
||||
//МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
|
||||
//Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
|
||||
// ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
|
||||
// ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура);
|
||||
//КонецЦикла;
|
||||
|
||||
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
|
||||
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
|
||||
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
|
||||
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура);
|
||||
Если СообщениеТелеграм.Сообщение.text = "Конфигурации" Тогда
|
||||
ТекстОтвета = "Комплексная автоматизация" + Символы.ПС +
|
||||
"Бухгалтерия предприятия" + Символы.ПС +
|
||||
"Зарплата и управление персоналом" + Символы.ПС +
|
||||
"Управление торговлей";
|
||||
|
||||
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета);
|
||||
ИначеЕсли СообщениеТелеграм.Сообщение.text = "Подписки" Тогда
|
||||
МассивПодписок = РаботаСОбновлениямиВызовСервера.КонфигурацииИзПодписки(СообщениеТелеграм.ИдЧата);
|
||||
ТекстОтвета = "";
|
||||
Для каждого Конфигурация Из МассивПодписок Цикл
|
||||
ТекстОтвета = ТекстОтвета + СтрШаблон("%1(%2)%3",Конфигурация.Наименование, Конфигурация.ТекущаяВерсия, Символы.ПС);
|
||||
КонецЦикла;
|
||||
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, ТекстОтвета);
|
||||
КонецЕсли;
|
||||
//ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text);
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
@@ -53,7 +75,24 @@
|
||||
&НаКлиенте
|
||||
Процедура PostЗапрос(Команда)
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.SendMessage(248415372, СообщениеДляОтправки);
|
||||
МассивРядов = Новый Массив;
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Конфигурации;Подписки");
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
//МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
|
||||
//ВторойРядКнопок = Новый Массив;
|
||||
//Эмоджи = Символ(55357) + Символ(57005);
|
||||
|
||||
//Эмоджи = СтрЗаменить("\xF0\x9F\x94\x94", "\x", "%");
|
||||
//Эмоджи = "😁";
|
||||
//эмодзиДа = "%f0%9f%91%8d";
|
||||
//эмодзиНет = "%f0%9f%91%8e";
|
||||
//ВторойРядКнопок.Добавить(ТелеграмРаботаСКлавиатурой.КнопкаКлавиатуры(Эмоджи));
|
||||
//МассивРядов.Добавить(ВторойРядКнопок);
|
||||
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
|
||||
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, СообщениеДляОтправки,
|
||||
ПредопределенноеЗначение("Перечисление.ТелеграмРежимРазметки.HTML"), Клавиатура);
|
||||
Если НЕ Ответ = Неопределено Тогда
|
||||
ВывестиОтвет(Ответ);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Document.ЛогHttpЗапроса</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Catalog.ТелеграмДокумент</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Enum.ТелеграмРежимРазметки</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VERSION>5</VERSION>
|
||||
<VERSION>6</VERSION>
|
||||
|
||||
Reference in New Issue
Block a user