Compare commits
2 Commits
a7e569e141
...
03a0be54d5
| Author | SHA1 | Date | |
|---|---|---|---|
| 03a0be54d5 | |||
| c36dbb347b |
@@ -36,7 +36,7 @@
|
||||
РезультатЗапроса.Описание));
|
||||
КонецЕсли;
|
||||
|
||||
Если Константы.ЛогироватьHttpЗапросы.Получить() Тогда
|
||||
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
|
||||
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.GET, ТелоОтветаКакСтрока, КодСостояния);
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
@@ -69,6 +69,9 @@
|
||||
Запрос.УстановитьТелоИзДвоичныхДанных(Данные.ДвоичныеДанные);
|
||||
Запрос.Заголовки.Вставить("Content-Length", Формат(Данные.ДвоичныеДанные.Размер(), "ЧН=0; ЧГ="));
|
||||
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
|
||||
Иначе
|
||||
Запрос.Заголовки.Вставить("Content-Type","application/json");
|
||||
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначения.ОбъектВСтрокуJson(Данные));
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Запрос.Заголовки.Вставить("Content-Type","application/json");
|
||||
@@ -92,7 +95,7 @@
|
||||
РезультатЗапроса.Описание));
|
||||
КонецЕсли;
|
||||
|
||||
Если Константы.ЛогироватьHttpЗапросы.Получить() Тогда
|
||||
Если ТелеграмПовторноеИспользование.ЛогироватьHttpЗапросы() Тогда
|
||||
ЗалогироватьЗапрос(АдресРесурса, Перечисления.МетодHTTPЗапроса.POST, ТелоОтветаКакСтрока, КодСостояния);
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция SendMessage(ИдЧата, СообщениеДляОтправки) Экспорт
|
||||
Функция SendMessage(ИдЧата, СообщениеДляОтправки, Клавиатура = Неопределено) Экспорт
|
||||
|
||||
ТелоЗапроса = Новый Структура("chat_id, text", ИдЧата, СообщениеДляОтправки);
|
||||
|
||||
Если Клавиатура <> Неопределено Тогда
|
||||
ТелоЗапроса.Вставить("reply_markup", Клавиатура);
|
||||
КонецЕсли;
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса,, ТелоЗапроса);
|
||||
|
||||
@@ -65,6 +70,24 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция SendPhoto(ИдЧата, ФайлДляОтправки, ИмяФайла, Надпись = Неопределено, БезУведомления = Ложь) Экспорт
|
||||
|
||||
АдресРесурса = АдресРесурсаПоИмениМетода("sendPhoto");
|
||||
ПараметрыЗапроса = Новый Структура("chat_id", Формат(ИдЧата, "ЧН=0; ЧГ="));
|
||||
Если Надпись <> Неопределено Тогда
|
||||
ПараметрыЗапроса.Вставить("caption", Надпись);
|
||||
КонецЕсли;
|
||||
Если БезУведомления Тогда
|
||||
ПараметрыЗапроса.Вставить("disable_notification", "true");
|
||||
КонецЕсли;
|
||||
|
||||
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
|
||||
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель);
|
||||
ДанныеФото = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеФото);
|
||||
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(АдресРесурса, ПараметрыЗапроса, ДанныеФото);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -83,6 +106,9 @@
|
||||
|
||||
Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Надпись = Неопределено, БезУведомления = Ложь, Разделитель)
|
||||
|
||||
//Параметры ИдЧата, Надпись, БезУведомления можно передавать также в параметрах запроса, а не в теле как здесь
|
||||
// Отправка фото сделана именно так. Все значения, кроме непосредственно фото задаются в параметрах запроса.
|
||||
|
||||
Если Документ = Неопределено ИЛИ Не (Документ.Свойство("ДанныеФайла") И ТипЗнч(Документ.ДанныеФайла) = Тип("ДвоичныеДанные")) Тогда
|
||||
ВызватьИсключение "Неверный параметр Документ: ожидается непустой объект, содержащий двоичные данные";
|
||||
КонецЕсли;
|
||||
@@ -105,7 +131,23 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПоля, Значение, ИмяФайла = Неопределено, ТипСодержимого = Неопределено)
|
||||
Функция ДвоичныеДанныеФайла(Файл, ИмяФайла, ТипСодержимого, ИмяПараметра, Разделитель)
|
||||
|
||||
Если Файл = Неопределено ИЛИ ТипЗнч(Файл) <> Тип("ДвоичныеДанные") Тогда
|
||||
ВызватьИсключение "Неверный параметр Файл: ожидается непустой объект, содержащий двоичные данные";
|
||||
КонецЕсли;
|
||||
|
||||
ТелоЗапроса = Новый ПотокВПамяти();
|
||||
ЗаписьДанных = Новый ЗаписьДанных(ТелоЗапроса, , , Символы.ВК + Символы.ПС, "");
|
||||
ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Файл, ИмяФайла, ТипСодержимого);
|
||||
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--");
|
||||
ЗаписьДанных.Закрыть();
|
||||
|
||||
Возврат ТелоЗапроса.ЗакрытьИПолучитьДвоичныеДанные();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаписатьЭлементаЗапроса(ЗаписьДанных, Разделитель, ИмяПараметра, Значение, ИмяФайла = Неопределено, ТипСодержимого = Неопределено)
|
||||
|
||||
Если Значение = Неопределено Тогда
|
||||
Возврат;
|
||||
@@ -113,9 +155,9 @@
|
||||
|
||||
ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
|
||||
Если ИмяФайла <> Неопределено Тогда
|
||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПоля, ИмяФайла));
|
||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1; filename=%2", ИмяПараметра, ИмяФайла));
|
||||
Иначе
|
||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПоля));
|
||||
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=%1", ИмяПараметра));
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипСодержимого <> Неопределено Тогда
|
||||
|
||||
@@ -45,7 +45,13 @@
|
||||
|
||||
Функция ОбновленияТелеграм(ТелоЗапроса) Экспорт
|
||||
|
||||
Если ТипЗнч(ТелоЗапроса) = Тип("Соответствие") Тогда
|
||||
ДанныеОбновления = ТелоЗапроса;
|
||||
ИначеЕсли ТипЗнч(ТелоЗапроса) = Тип("Строка") Тогда
|
||||
ДанныеОбновления = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоЗапроса);
|
||||
Иначе
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
МассивСообщенийТелеграм = Новый Массив;
|
||||
|
||||
|
||||
@@ -3,3 +3,10 @@
|
||||
Возврат Константы.ТелеграмТокен.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Функция ЛогироватьHttpЗапросы() Экспорт
|
||||
|
||||
Возврат Константы.ЛогироватьHttpЗапросы.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
23
src/cf/CommonModules/ТелеграмРаботаСКлавиатурой.xml
Normal file
23
src/cf/CommonModules/ТелеграмРаботаСКлавиатурой.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||
<CommonModule uuid="b5c4da46-161d-4c6d-adbf-375e3fbc5f45">
|
||||
<Properties>
|
||||
<Name>ТелеграмРаботаСКлавиатурой</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Телеграм работа с клавиатурой</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<Global>false</Global>
|
||||
<ClientManagedApplication>false</ClientManagedApplication>
|
||||
<Server>true</Server>
|
||||
<ExternalConnection>true</ExternalConnection>
|
||||
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
|
||||
<ServerCall>true</ServerCall>
|
||||
<Privileged>false</Privileged>
|
||||
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
|
||||
</Properties>
|
||||
</CommonModule>
|
||||
</MetaDataObject>
|
||||
@@ -0,0 +1,45 @@
|
||||
Функция КлавиатураОтвета(Клавиатура, Компактная = Ложь, Одноразовая = Ложь) Экспорт
|
||||
|
||||
СоответствиеКлавиатуры = Новый Соответствие();
|
||||
|
||||
СоответствиеКлавиатуры.Вставить("keyboard", Клавиатура);
|
||||
|
||||
Если Компактная Тогда
|
||||
СоответствиеКлавиатуры.Вставить("resize_keyboard", Компактная);
|
||||
КонецЕсли;
|
||||
|
||||
Если Одноразовая Тогда
|
||||
СоответствиеКлавиатуры.Вставить("one_time_keyboard", Одноразовая);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СоответствиеКлавиатуры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КнопкаКлавиатуры(Надпись) Экспорт
|
||||
|
||||
СоответствиеКнопка = Новый Соответствие;
|
||||
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
|
||||
Возврат СоответствиеКнопка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РядКнопок(СписокНаименованийКнопокСтрокой) Экспорт
|
||||
|
||||
Результат = Новый Массив;
|
||||
МассивНаименованийКнопок = СтрРазделить(СписокНаименованийКнопокСтрокой, ";");
|
||||
|
||||
Если МассивНаименованийКнопок.Количество() = 0 Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
|
||||
Результат.Добавить(КнопкаКлавиатуры(НадписьКнопки));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
|
||||
17
src/cf/CommonPictures/КартинкаБот.xml
Normal file
17
src/cf/CommonPictures/КартинкаБот.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||
<CommonPicture uuid="4354a6ea-157f-4456-a82a-14909b7c2bd2">
|
||||
<Properties>
|
||||
<Name>КартинкаБот</Name>
|
||||
<Synonym>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Картинка бот</v8:content>
|
||||
</v8:item>
|
||||
</Synonym>
|
||||
<Comment/>
|
||||
<AvailabilityForChoice>false</AvailabilityForChoice>
|
||||
<AvailabilityForAppearance>false</AvailabilityForAppearance>
|
||||
</Properties>
|
||||
</CommonPicture>
|
||||
</MetaDataObject>
|
||||
7
src/cf/CommonPictures/КартинкаБот/Ext/Picture.xml
Normal file
7
src/cf/CommonPictures/КартинкаБот/Ext/Picture.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ExtPicture xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
|
||||
<Picture>
|
||||
<xr:Abs>Picture.png</xr:Abs>
|
||||
<xr:LoadTransparent>false</xr:LoadTransparent>
|
||||
</Picture>
|
||||
</ExtPicture>
|
||||
BIN
src/cf/CommonPictures/КартинкаБот/Ext/Picture/Picture.png
Normal file
BIN
src/cf/CommonPictures/КартинкаБот/Ext/Picture/Picture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 139 KiB |
@@ -246,12 +246,14 @@
|
||||
<ChildObjects>
|
||||
<Language>Русский</Language>
|
||||
<Subsystem>ТелеграмБот</Subsystem>
|
||||
<CommonPicture>КартинкаБот</CommonPicture>
|
||||
<CommonModule>HttpОбщегоНазначения</CommonModule>
|
||||
<CommonModule>ТелеграмМетодыВызовСервера</CommonModule>
|
||||
<CommonModule>ТелеграмОбщегоНазначения</CommonModule>
|
||||
<CommonModule>ТелеграмПовторноеИспользование</CommonModule>
|
||||
<CommonModule>ТелеграмРегламент</CommonModule>
|
||||
<CommonModule>РаботаСФайламиКлиентСервер</CommonModule>
|
||||
<CommonModule>ТелеграмРаботаСКлавиатурой</CommonModule>
|
||||
<HTTPService>HTTPСервис_Telegram</HTTPService>
|
||||
<ScheduledJob>ПроверкаОбновленийТелеграм</ScheduledJob>
|
||||
<Constant>ТелеграмТокен</Constant>
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Group>Vertical</Group>
|
||||
<Representation>StrongSeparation</Representation>
|
||||
<ExtendedTooltip name="ЗагрузкаДокументовРасширеннаяПодсказка" id="31"/>
|
||||
<ChildItems>
|
||||
<InputField name="ИдФайла" id="32">
|
||||
@@ -129,10 +130,39 @@
|
||||
<CommandName>Form.Command.СкачатьФайл</CommandName>
|
||||
<ExtendedTooltip name="СкачатьФайлРасширеннаяПодсказка" id="36"/>
|
||||
</Button>
|
||||
<Button name="ПолучитьФайл" id="37">
|
||||
</ChildItems>
|
||||
</UsualGroup>
|
||||
<UsualGroup name="SendDocument" id="39">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Send document</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Send document</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Representation>StrongSeparation</Representation>
|
||||
<ExtendedTooltip name="SendDocumentРасширеннаяПодсказка" id="40"/>
|
||||
<ChildItems>
|
||||
<InputField name="ИдЧата" id="45">
|
||||
<DataPath>ИдЧата</DataPath>
|
||||
<ExtendedEditMultipleValues>true</ExtendedEditMultipleValues>
|
||||
<ContextMenu name="ИдЧатаКонтекстноеМеню" id="46"/>
|
||||
<ExtendedTooltip name="ИдЧатаРасширеннаяПодсказка" id="47"/>
|
||||
</InputField>
|
||||
<Button name="SendDocument1" id="41">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.ПрочитатьФайл</CommandName>
|
||||
<ExtendedTooltip name="ПолучитьФайлРасширеннаяПодсказка" id="38"/>
|
||||
<CommandName>Form.Command.SendDocument</CommandName>
|
||||
<ExtendedTooltip name="SendDocument1РасширеннаяПодсказка" id="42"/>
|
||||
</Button>
|
||||
<Button name="SendPhoto" id="43">
|
||||
<Type>UsualButton</Type>
|
||||
<CommandName>Form.Command.SendPhoto</CommandName>
|
||||
<ExtendedTooltip name="SendPhotoРасширеннаяПодсказка" id="44"/>
|
||||
</Button>
|
||||
</ChildItems>
|
||||
</UsualGroup>
|
||||
@@ -210,6 +240,25 @@
|
||||
<Field>ИдФайла</Field>
|
||||
</Save>
|
||||
</Attribute>
|
||||
<Attribute name="ИдЧата" id="6">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Ид чата</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<Type>
|
||||
<v8:Type>xs:decimal</v8:Type>
|
||||
<v8:NumberQualifiers>
|
||||
<v8:Digits>15</v8:Digits>
|
||||
<v8:FractionDigits>0</v8:FractionDigits>
|
||||
<v8:AllowedSign>Any</v8:AllowedSign>
|
||||
</v8:NumberQualifiers>
|
||||
</Type>
|
||||
<Save>
|
||||
<Field>ИдЧата</Field>
|
||||
</Save>
|
||||
</Attribute>
|
||||
</Attributes>
|
||||
<Commands>
|
||||
<Command name="ПолучитьСообщения" id="1">
|
||||
@@ -302,20 +351,35 @@
|
||||
</ToolTip>
|
||||
<Action>СкачатьФайл</Action>
|
||||
</Command>
|
||||
<Command name="ПрочитатьФайл" id="7">
|
||||
<Command name="SendDocument" id="8">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Прочитать файл</v8:content>
|
||||
<v8:content>Send document</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Прочитать файл</v8:content>
|
||||
<v8:content>Send document</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>ПрочитатьФайл</Action>
|
||||
<Action>SendDocument</Action>
|
||||
</Command>
|
||||
<Command name="SendPhoto" id="7">
|
||||
<Title>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Send photo</v8:content>
|
||||
</v8:item>
|
||||
</Title>
|
||||
<ToolTip>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Send photo</v8:content>
|
||||
</v8:item>
|
||||
</ToolTip>
|
||||
<Action>SendPhoto</Action>
|
||||
</Command>
|
||||
</Commands>
|
||||
</Form>
|
||||
@@ -1,30 +1,34 @@
|
||||
&НаКлиенте
|
||||
Процедура ПолучитьСообщения(Команда)
|
||||
|
||||
//Сообщения = "";
|
||||
//Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
||||
//Если НЕ Ответ = Неопределено Тогда
|
||||
// Сообщения = HttpОбщегоНазначения.ФорматированныйJson(Ответ);
|
||||
//КонецЕсли;
|
||||
|
||||
ПолучитьСообщенияНаСервере();
|
||||
Ответ = ПолучитьСообщенияНаСервере();
|
||||
ВывестиОтвет(Ответ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ПолучитьСообщенияНаСервере()
|
||||
Функция ПолучитьСообщенияНаСервере()
|
||||
|
||||
Ответ = ТелеграмМетодыВызовСервера.GetUpdates();
|
||||
Если Ответ <> Неопределено Тогда
|
||||
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ);
|
||||
|
||||
Если Ответ.Успех Тогда
|
||||
МассивРядов = Новый Массив;
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("один;два;три");
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
МассивКнопок = ТелеграмРаботаСКлавиатурой.РядКнопок("Выбрать конфигурацию;Актуальная версия;Калькулятор обновлений");
|
||||
МассивРядов.Добавить(МассивКнопок);
|
||||
Клавиатура = ТелеграмРаботаСКлавиатурой.КлавиатураОтвета(МассивРядов, Истина, Истина);
|
||||
|
||||
МассивСообщенийТелеграм = ТелеграмОбщегоНазначения.ОбновленияТелеграм(Ответ.Тело);
|
||||
Для каждого СообщениеТелеграм Из МассивСообщенийТелеграм Цикл
|
||||
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(СообщениеТелеграм);
|
||||
//ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text)
|
||||
ТелеграмМетодыВызовСервера.SendMessage(СообщениеТелеграм.ИдЧата, СообщениеТелеграм.Сообщение.text, Клавиатура);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура getWebhookInfo(Команда)
|
||||
@@ -66,44 +70,21 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВывестиОтвет(Ответ)
|
||||
|
||||
ТекстСообщения = СтрШаблон("Выполнено %1.%2%3", ?(Ответ.Успех, "успешно", "с ошибкой"), Символы.ПС, Ответ.Описание);
|
||||
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = HttpОбщегоНазначения.ФорматированныйJson(Ответ);
|
||||
Сообщение.Текст = ТекстСообщения;
|
||||
Сообщение.Сообщить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
//&НаСервереБезКонтекста
|
||||
//Функция СкачатьФайлНаСервере(ПутьКФайлуНаСервере)
|
||||
//
|
||||
// АдресРесурса = СтрШаблон("file/bot%1/%2",
|
||||
// ТелеграмПовторноеИспользование.ТелеграмТокен(),
|
||||
// ПутьКФайлуНаСервере);
|
||||
// Ответ = HttpОбщегоНазначения.ВыполнитьGetЗапросДвоичныеДанные(АдресРесурса);
|
||||
// МенеджерЗаписи = РегистрыСведений.ТелеграмФайлы.СоздатьМенеджерЗаписи();
|
||||
// //МенеджерЗаписи.ИдСообщения = 336;
|
||||
// //МенеджерЗаписи.Данные = Новый ХранилищеЗначения(Ответ, Новый СжатиеДанных(0));
|
||||
// //МенеджерЗаписи.ИмяФайла = "13_05_2025_09_42_108907060608184446656.json";
|
||||
//
|
||||
// МенеджерЗаписи.ИдСообщения = 339;
|
||||
// МенеджерЗаписи.Данные = Новый ХранилищеЗначения(Ответ, Новый СжатиеДанных(0));
|
||||
// МенеджерЗаписи.ИмяФайла = "test.pdf";
|
||||
//
|
||||
// МенеджерЗаписи.Записать();
|
||||
//
|
||||
// Возврат Ответ;
|
||||
//
|
||||
//КонецФункции
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СкачатьФайл(Команда)
|
||||
|
||||
//ИдФайла = "BQACAgIAAxkBAAIBUmgkRZKtR_4WXvoykjdfXKTFHCvdAAItegACYyUhSQ9mNituwQR1NgQ";
|
||||
|
||||
СкачатьФайлНаСервере(ИдФайла);
|
||||
|
||||
|
||||
@@ -124,7 +105,6 @@
|
||||
&НаСервереБезКонтекста
|
||||
Процедура СкачатьФайлНаСервере(ИдФайла)
|
||||
|
||||
|
||||
НовыйДокумент = Справочники.ТелеграмДокумент.СоздатьЭлемент();
|
||||
НовыйДокумент.Наименование = "Тестовый документ";
|
||||
НовыйДокумент.id = "AgADLXoAAmMlIUk";
|
||||
@@ -133,9 +113,9 @@
|
||||
НовыйДокумент.mime_type = "application/pdf";
|
||||
НовыйДокумент.file_size = 811482;
|
||||
|
||||
ДанныеДокумента = ТелеграмОбщегоНазначения.ДанныеДокументаПоИд(ИдФайла);
|
||||
Если ДанныеДокумента <> Неопределено Тогда
|
||||
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(ДанныеДокумента);
|
||||
Ответ = ТелеграмОбщегоНазначения.ДанныеДокументаПоИд(ИдФайла);
|
||||
Если Ответ.Успех Тогда
|
||||
НовыйДокумент.ДанныеФайла = Новый ХранилищеЗначения(Ответ.Тело);
|
||||
КонецЕсли;
|
||||
|
||||
НовыйДокумент.Записать();
|
||||
@@ -146,60 +126,46 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПрочитатьФайл(Команда)
|
||||
Процедура SendDocument(Команда)
|
||||
|
||||
ДанныеФайла = ПолучитьДанныеФайла();
|
||||
Если ДанныеФайла <> Неопределено Тогда
|
||||
Если ДанныеФайла.Свойство("ДвоичныеДанные") И ДанныеФайла.Свойство("ИмяФайла") Тогда
|
||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ПолучитьРасширениеИмениФайла(ДанныеФайла.ИмяФайла));
|
||||
ДанныеФайла.ДвоичныеДанные.Записать(ИмяВременногоФайла);
|
||||
ЗапуститьПриложениеАсинх(ИмяВременногоФайла);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ДанныеДокумента = ДанныеДокументаСервер();
|
||||
Ответ = ТелеграмМетодыВызовСервера.SendDocument(ИдЧата, ДанныеДокумента, "Отправлен документ");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ПолучитьДанныеФайла()
|
||||
Функция ДанныеДокументаСервер()
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТелеграмФайлы.Данные КАК Данные,
|
||||
| ТелеграмФайлы.ИмяФайла КАК ИмяФайла
|
||||
| ТелеграмДокумент.ДанныеФайла КАК ДанныеФайла,
|
||||
| ТелеграмДокумент.file_name КАК ИмяФайла
|
||||
|ИЗ
|
||||
| РегистрСведений.ТелеграмФайлы КАК ТелеграмФайлы
|
||||
|ГДЕ
|
||||
| ТелеграмФайлы.ИдСообщения = &ИдСообщения";
|
||||
|
||||
//Запрос.УстановитьПараметр("ИдСообщения", 336);
|
||||
Запрос.УстановитьПараметр("ИдСообщения", 338);
|
||||
| Справочник.ТелеграмДокумент КАК ТелеграмДокумент";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||
ДвоичныеДанные = ВыборкаДетальныеЗаписи.Данные.Получить();
|
||||
ИмяФайла = ВыборкаДетальныеЗаписи.ИмяФайла;
|
||||
Возврат Новый Структура("ДвоичныеДанные, ИмяФайла", ДвоичныеДанные, ИмяФайла);
|
||||
Возврат Новый Структура("ИмяФайла, ДанныеФайла", ВыборкаДетальныеЗаписи.ИмяФайла, ВыборкаДетальныеЗаписи.ДанныеФайла.Получить());
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура SendPhoto(Команда)
|
||||
|
||||
ДанныеКартинки = ДанныеКартинки();
|
||||
Ответ = ТелеграмМетодыВызовСервера.SendPhoto(ИдЧата, ДанныеКартинки, "telegram_bot.jpg", "Отправлено фото");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ПолучитьРасширениеИмениФайла(Знач ИмяФайла) Экспорт
|
||||
Функция ДанныеКартинки()
|
||||
|
||||
РасширениеФайла = "";
|
||||
МассивСтрок = СтрРазделить(ИмяФайла, ".", Ложь);
|
||||
Если МассивСтрок.Количество() > 1 Тогда
|
||||
РасширениеФайла = МассивСтрок[МассивСтрок.Количество() - 1];
|
||||
КонецЕсли;
|
||||
Возврат РасширениеФайла;
|
||||
Возврат БиблиотекаКартинок.КартинкаБот.ПолучитьДвоичныеДанные();
|
||||
|
||||
КонецФункции
|
||||
@@ -27,7 +27,7 @@
|
||||
<xr:Item xsi:type="xr:MDObjectRef">Constant.ЛогироватьHttpЗапросы</xr:Item>
|
||||
<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">c3c88554-5bc5-41b7-ae33-7a29b983d784</xr:Item>
|
||||
<xr:Item xsi:type="xr:MDObjectRef">CommonPicture.КартинкаБот</xr:Item>
|
||||
</Content>
|
||||
</Properties>
|
||||
<ChildObjects/>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VERSION>2</VERSION>
|
||||
<VERSION>4</VERSION>
|
||||
|
||||
Reference in New Issue
Block a user