Token, ChatID — параметры (Token- бота, ChatID — либо группы, либо аккаунта);
ПутьКФайлу = путь к выбранному файлу для отправки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
Token = "++++++++++++++++++++++++++++++++++++"; ServerTg = "api.telegram.org"; ChatID = "815505225"; ФайлОтправки = Новый Файл(ПутьКФайлу); СтрокаСоединения = "bot" + Token + "/sendDocument"; // Разделитель; Boundary = "----"+Строка(Новый УникальныйИдентификатор()); // Определяем массив для процедуры ОбъединитьФайлы; МассивФайловДляОбъединения = Новый Массив; // Формируем начальный фрагмент файла POST-запроса; ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt"); ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.UTF8); // Формируем конечный фрагмент файла POST-запроса; ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); ФайлаОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.UTF8); ТекстДляОтправки = ""; ТекстДляОтправки = ТекстДляОтправки + "--" + Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""chat_id""" + Символы.ПС + Символы.ПС + СтрЗаменить(Формат(ChatID, "ЧДЦ=0; ЧС=; ЧРГ=.; ЧГ=0"), ".", "") + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--" + Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""document""; filename=""/" + ФайлОтправки.Имя + """" + Символы.ПС; // Записываем ФайлОтправкиНачало; ФайлОтправкиНачало.ЗаписатьСтроку(ТекстДляОтправки); ФайлОтправкиНачало.Закрыть(); ТекстДляОтправки = "" + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--" + Boundary+"--"; // Записываем ФайлаОтправкиКонец; ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки); ФайлаОтправкиКонец.Закрыть(); // Заполняем массив; МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); МассивФайловДляОбъединения.Добавить(СокрЛП(ПутьКФайлу)); // Формируем ИмяФайлаОтправки; ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("txt"); ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки); HTTPЗапрос = Новый HTTPЗапрос; Заголовки = Новый Соответствие; // Формируем Заголовки HTTP Запроса; HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary); HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаОтправки); // Установим АдресРесурса; HTTPЗапрос.АдресРесурса = СтрокаСоединения; SSL = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(ServerTg, 443,,,,, SSL); Попытка // POST запрос; Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); КодСостояния = Ответ.КодСостояния; СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку(); Если КодСостояния = 200 тогда // Читаем JSON; ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(СтрокаОтвета); РезультатСтруктура = ПрочитатьJSON(ЧтениеJSON); Если РезультатСтруктура.ok = Истина Тогда СтруктураMessage = РезультатСтруктура.result; КонецЕсли; Иначе Сообщить("КодСостояния " + КодСостояния); Сообщить(СтрокаОтвета); КонецЕсли; Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Ошибка: " + ОписаниеОшибки(); Сообщение.Сообщить(); КонецПопытки; |