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

Введение

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

В этой статье разберем как это сделаь в рамках платформы 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

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK