|
Отправка файла в Telegram | ☑ | ||
---|---|---|---|---|
0
Родионовна
07.03.17
✎
10:04
|
Добрый день.
По образцу, выложенному на многочисленных сайтах, пытаюсь отправить примитивный файл. Код состояния ОтветаHTTP 504 - Истек таймаут ожидания ответа шлюза. Что делаю не так? SendMessage, например, отрабатывает. ИмяФайла =ПолучитьИмяВременногоФайла("txt"); Файл = Новый ЗаписьТекста(ИмяФайла); Файл.ЗаписатьСтроку("Хэлло!"); Файл.Закрыть(); СтрокаСоединения = "/bot" + Объект.Токен + "/sendDocument"; Boundary = "----"+Строка(Новый УникальныйИдентификатор()); //Определяем массив для процедуры ОбъединитьФайлы МассивФайловДляОбъединения = Новый Массив; //Формируем начальный фрагмент файла POST-запроса ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt"); ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.UTF8); //Формируем конечный фрагмент файла POST-запроса ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); ФайлаОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.UTF8); ТекстДляОтправки = ""; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""chat_id""" + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + chat_id + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""document""; filename=""report.txt""" + Символы.ПС; ФайлОтправкиНачало.ЗаписатьСтроку(ТекстДляОтправки); ФайлОтправкиНачало.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); МассивФайловДляОбъединения.Добавить(СокрЛП(ИмяФайла)); ТекстДляОтправки = "" + Символы.ПС; ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary+"--"; ФайлаОтправкиКонец.ЗаписатьСтроку(ТекстДляОтправки); ФайлаОтправкиКонец.Закрыть(); МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("txt"); ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки); HTTPЗапрос = Новый HTTPЗапрос(); Заголовки = Новый Соответствие; HTTPЗапрос.Заголовки.Вставить("Connection", "keep-alive"); HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+Boundary); HTTPЗапрос.УстановитьТелоИзСтроки(ИмяФайлаОтправки); HTTPЗапрос.АдресРесурса = СтрокаСоединения; HTTPСоединение = Новый HTTPСоединение(Объект.Сервер,443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); ОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); |
|||
1
Crucian
21.03.17
✎
14:48
|
http://t.me/disp1c группа для разработчиков 1С в телеграмм.
|
|||
2
Fragster
гуру
21.03.17
✎
14:51
|
я сделал прослойку на nodejs, все прекрасно работает с библиотекой telegraf (передаю по http json с двоичными данными в бота, бот отправляет Buffer через sendDocument).
|
|||
3
Кирпич
21.03.17
✎
14:54
|
с Boundary разберись
чота непонятно какой он у тебя должен быть толи "--"+Boundary+"--" толи "--"+Boundary + Символы.ПС толи просто Boundary, как здесь: "multipart/form-data; boundary="+Boundary |
|||
4
Кирпич
21.03.17
✎
14:58
|
+(3) одна страна, одна жена, одна Boundary
|
|||
5
Кирпич
21.03.17
✎
15:00
|
хотя у себя глянул. тоже самое. чота я тупанул :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |