Телеграм. Работа с файлами

Введение

Телеграм бот может принимать файлы от пользователя, а также передавать файлы пользователю.

В этой статье разберем как это сделаь в рамках платформы Falcon Space.

Отправка файла пользователю в телеграм

Для этого мы используем команду sendDocument вместо sendMessage. 

Параметры будут те же, что и у sendmessage + добавляются поля fileUrl, fileName (необязательный параметр).

В fileUrl находится путь к файлу на сайте. Если файла не будет, то бот просто не отправит сообщение. 

Пример вызова команды: 

        select  'sendDocument' [Type], 
			'Некоторый текст'   [Text], 
			@chatID ChatId, 
			@messageID ReplyToMessageId,
			0 DisableNotification, 
            '/uploads/1.txt' FileUrl, 
            'Некий документ' FileName    
        end
		

Прием файла от пользователя через бота телеграм

Пользователь может отправить картинки или документы. 

Если это картинки, то тип сообщения (messageType) будет Photo. Если просто некий неграфический файл - то тип сообщения Document

Переданные файлы сохраняются на диск в папки /uploads/telegram/{fileId}. 

В процедуру telegram_bot_action передается информация и документах и картинках в бот в параметре @parameters

в Key передается doc (если документ), либо image0, image1, image2

В Value передается путь к файлу, сохраненному на сайте в /uploads/telegram подпапке.  Вы можете извлечь эти данные о файлах и сохранить где-то в БД для последующей обработки. 

ВАЖНО! Если передается множество файлов, то они передаются в бот как ОТДЕЛЬНЫЕ команды с типом Photo или Document.

При передаче картинок в бот передается сразу несколько ее копий в разных разрешениях (в целях упрощения обработки возможно имеет смысл брать только image0).  

В appsettings.json есть настройка telegram:fileSizeLimit, которая задает в байтах максимальный размер (по умолчанию 60Мб). Если загружаемый файл превысил этот размер, то он не загружается, а в лог идет запись о факте превышения максимального размера файла. 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK