Добрый день!
“Из полученного ответа вы можете узнать относительный путь к файлу, он передается в параметре “file_path”. Соответственно, используя следующее регулярное выражение (“file_path”:”[^“]+), вы можете извлечь нужное значение и подключиться с помощью “https://api.telegram.org/file/bot {Токен API бота}/”, чтобы получить полную ссылку на файл.” How to create bot for ChatGPT | AppMaster
Вопрос: т.е. мы извлекли значение из “file_path”, используя replace string, далее мне необходимо concat strings “https://api.telegram.org/file/bot {Токен API бота}/” с полученным значением из replace string? Дошел до момента, когда сохранил относительную ссылку на фото в бд и теперь надо отправить фото из бд в тг бота, подскажите пожалуйста как дальше действовать?
Уверены, что ссылку получили правильную? В статье речь идет про регулярные выражения, а не использование replace string.
Но если получили, то нужно сохранить сам фото в БД (не ссылку на нее), а для отправки в тг бота использовать блок Telegram: Send Photo, где передается указатель на фото в базе (file id).
Спасибо за ответ! Подскажите пожалуйста, что делаю не так, попробовал создать модель и получить id файла, но все же не могу получить отправить файл в тг бота. Прикрепляю скрин полного бизнес процесса-эхо.
Добрый день, спасибо за замечания. Response у меня случайно слетел(ранее передавал его), а вот id проглядел. Если я правильно понял, то file id мы передаем из regex блока. Ссылку запрос получает вроде как корректную. Пример: https://api.telegram.org/file/bot7646587812:AAFStzJ8PPkU3LxTIwgsEZw7TKEE6DQ1Xwo/photos/file_14.jpg
Запрос работает, но почему-то все же бот не возвращает фото. Подскажите пожалуйста что делаю не так?
File ID - это идентификатор файла в БД. Соответственно при начальной записи файла в базу (Create File) его указывать не нужно. А вот после создания, файл как раз должен этот ID получить.
И тут нужно проверить, действительно ли файл в базе корректно сохранился. Как минимум, по логам посмотреть какой ID уходит боту, есть ли он реально в базе, можно ли его открыть и просмотреть, например, в браузере.
Спасибо, с получением файла разобрались. Но файл получаем в плохом качестве, если перейти через браузер по ссылке там тоже самое. (ссылку выше оставлял)
Подскажите пожалуйста, с чем это связано и как это решить?
Видимо изначально достаете неправильную ссылку на фото. Скорее всего извлекаете ее из сообщения, где есть массив ссылок в различных разрешениях. Нужно взять самую большую, а не микропревью
не совсем понимаю как это можно сделать, следовал мануалке и ссылка у меня сохраняется одна, а не массивом и таким же образом как тут How to create bot for ChatGPT | AppMaster
Можете пожалуйста подробнее описать процесс?
В мануале описано получение ссылки на аудиофайл, а не изображение, поэтому процесс немного отличается.
В любом случае все упирается в то, что Телеграм присылает сообщение и это сообщение можно перевести в нормальный вид и рассмотреть подробнее. Собственно в процессе это уже сделано, но потом сразу используется регулярка, чтобы достать идентификатор файла для составления урла на скачивание.
В случае с изображением нужно либо:
Самостоятельно доработать регулярку, чтобы она забирала нужный идентификатор
Рассмотрев ответ, сделать виртуальную модель для него, конвертировать ответ в модель (deserialize json to model) и доставать айдишник уже из модели.
Использовать extract form json и извлекать нужный айдишник через него, прямым указанием на нужные данные.