AndriiZ @ Вчера, 0:25
,
Код для 1С8. Як в 1с7 це зробити -незнаю.
Процедура ОтправитьФайл(ПутьКФайлу,ЧатID)
МойToken = "4545454545:ghfhfdttjdghjhjthjhdgjhjghjdghjghj";
АдресTelegramAPI = "api.telegram.org";
//ЧатID = "111222333";
//ПутьКФайлу = "D:\Договор.pdf";
Boundary = "----"+Строка(Новый УникальныйИдентификатор());
Файл = Новый Файл(ПутьКФайлу);
//Определяем массив для процедуры ОбъединитьФайлы
МассивФайловДляОбъединения = Новый Массив;
ФайлВМассив1=ПолучитьИмяВременногоФайла("txt");
МассивФайловДляОбъединения.Добавить(ФайлВМассив1);
ФайлОтправкиНачало = Новый ЗаписьТекста(МассивФайловДляОбъединения[0], КодировкаТекста.UTF8);
НачальныеДанные = "--%Разделитель%
|Content-Disposition: form-data; name=""chat_id""
|
|%ЧатID%
|--%Разделитель%
|Content-Disposition: form-data; name=""document""; filename=""%ИмяФайла%""
|";
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%Разделитель%",Boundary);
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%ЧатID%",ЧатID);
НачальныеДанные = СтрЗаменить(НачальныеДанные,"%ИмяФайла%",Файл.Имя);
ФайлОтправкиНачало.ЗаписатьСтроку(НачальныеДанные );
ФайлОтправкиНачало.Закрыть();
МассивФайловДляОбъединения.Добавить(ПутьКФайлу);
ФайлВМассив2=ПолучитьИмяВременногоФайла("txt");
МассивФайловДляОбъединения.Добавить(ФайлВМассив2);
ФайлаОтправкиКонец = Новый ЗаписьТекста(МассивФайловДляОбъединения[2], КодировкаТекста.UTF8);
КонечныеДанные = "
|--%Разделитель%--";
КонечныеДанные = СтрЗаменить(КонечныеДанные,"%Разделитель%",Boundary);
ФайлаОтправкиКонец.ЗаписатьСтроку(КонечныеДанные);
ФайлаОтправкиКонец.Закрыть();
ИмяИтоговогоФайла = ПолучитьИмяВременногоФайла("txt");
ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяИтоговогоФайла);
//Прокси = Новый ИнтернетПрокси;
//Прокси.Установить("https", ПроксиАдрес, ПроксиПорт);
//Прокси.Установить("http", ПроксиАдрес, ПроксиПорт);
//СоединениеHTTP = Новый HTTPСоединение(Сервер,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL());
СоединениеHTTP = Новый HTTPСоединение(АдресTelegramAPI,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL());
АдресЗапроса = "bot"
+ МойToken
+ "/sendDocument";
ЗапросHTTP = Новый HTTPЗапрос(АдресЗапроса);
ЗапросHTTP.Заголовки.Вставить("Connection", "keep-alive");
ЗапросHTTP.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary);
ЗапросHTTP.УстановитьИмяФайлаТела(ИмяИтоговогоФайла);
Попытка
ОтветHTTP = СоединениеHTTP.ОтправитьДляОбработки(ЗапросHTTP);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
УдалитьФайлы(ФайлВМассив1);
УдалитьФайлы(ФайлВМассив2);
//УдалитьФайлы(ИмяИтоговогоФайла); // інколи вилітає помилка при видаленні
УдалитьФайлы(ПутьКФайлу);
КонецПроцедуры
Сообщение отредактировал volodya1122 - 19.06.24, 8:17