Отправить документ в чат телеграм

andrey5565 286 5 7 10

Token, ChatID - параметры (Token- бота, ChatID - либо группы, либо аккаунта); ПутьКФайлу = путь к выбранному файлу для отправки

	Token 	 = "6235344929:AAENWBK3pMX4hLMMtx6LNtFg9roqC0v7Scw";
	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;
			КонецЕсли; 
		Иначе
			Сообщить("КодСостояния " + КодСостояния);
			Сообщить(СтрокаОтвета);
		КонецЕсли;
		
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Ошибка: " + ОписаниеОшибки();
		Сообщение.Сообщить();
	КонецПопытки;
0
{52} Переменной Заголовки присвоено значение, но оно нигде не используется
{82} Переменной СтруктураMessage присвоено значение, но оно нигде не используется

См. также

Отправить сообщение или табличный документ в телеграм

Отправка сообщения в чат-бот телеграм

Отправить двоичные данные в телеграм (zip/pdf/gif)

Отправить (БСП)

КомандаОтправить (БСП)

ОтправитьЗаявление (БСП)

ОтправитьСообщение (БСП)

НачатьБеседуВSkype (БСП)

СоздатьИОтправитьСообщениеSMS (БСП)

Модератору