Недавно начал писать код на пайтон с библиотекой PyTelegramBotAPI . Хочу получать любую фотографию, которую получает бот от других пользователей. Но в ответ я получаю только описание фотографии в таком виде:
Я бы хотел получить полноценную фотографию что бы получить с него информацию.
Вот и собственно сам код:
Ответы (3 шт):
Вы можете пересылать сообщение отправленное пользователем боту себе. в пересланном сообщении будет как само фото так и указание от кого оно получено ботом
Можно получить фотографию следующим образом
# Получаем id фотографии в Telegram photo_id = message.photo[-1].file_id # Достаём картинку photo_file = bot.get_file(photo_id) # photo_bytes = bot.download_file(photo_file.file_path) # # Отправить в дальнейшем можно таким образом bot.send_photo(message.chat.id, photo=photo_bytes)
В дальнейшем байты фотографии можно превратить в PIL.Image объект для удобства обработки ( если таковая требуется ):
from io import BytesIO from PIL import Image . def get_image_from_bytes(b): »’ Gets the PIL.Image object from the bytes of photo :param b: Bytes of the photo :type b: bytes »’ stream = BytesIO(b) image = Image.open(stream).convert(«RGBA») stream.close() return image
Закачивает фотографию на Ваш пк, отправленную пользователем боту
Учимся отправлять картинки
Если хотите сразу потом ее переслать тому же пользователю, то добавьте еще 3 строчки
tb.send_photo(message.chat.id, open(src, ‘rb’)) file = pathlib.Path(f») file.unlink()
Источник: husl.ru
Отправка картинок в Telegram бот по запросу пользователя (видеоурок)
Как через Telegram бота отправлять картинки пользователю по запросу в программе Telegram — смотрите в видеоуроке Владилена Минина.
Ваши ссылки: скачать видео
Информация о видео
Читайте интересные каналы в Telegram:
Постоянная ссылка на страницу:
Вам также может понравиться
Получение текущего курса валют в Telegram бот (видеоурок)
Создание клавиатуры для бота в Telegram (видеоурок)
Игры на ReactJS (видеокурс)
Создание и регистрация бота в Telegram (видеоурок)
Оставить комментарий X
You must be logged in to post a comment.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Навигация по архиву
Как отправить несколько фото в чат-боте телеграм / Настройка InputMediaPhoto
Ещё интересное видео
Создание и регистрация бота в Telegram (видеоурок)
Как создать и зарегистрировать вашего первого бота для работы в программе Telegram — смотрите в видеоуроке Владилена Минина. «Вы узнаете какие инструменты вам понадобятся для написания бота, как зарегистрировать бота и получить токен, для того, чтобы Telegram отвечал на запросы. В результате урока мы напишем простой скрипт бота, который на команду /start будет приветствовать пользователя […]
Создание бота в BotFather (урок Telegram)
Получение текущего курса валют в Telegram бот (видеоурок)
Как создать меню, в котором пользователю может получить текущий курс рубля относительно доллара или евро в программе Telegram — смотрите в видеоуроке Владилена Минина. «В результате урока вы узнаете, как сформировать инлайн клавиатуру, как обработать клики по данным кнопкам, понять по какой именно был сделан клик. Далее вы узнаете, как на NodeJS сделать асинхронный запрос […]
Источник: prodaga.com
Telegram BOT Api: как отправить фото с помощью PHP?
Для команды sendPhoto требуется аргумент photo , определенный как InputFile or String . В документе API говорится:
Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data.
InputFile This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.
Итак, я пробовал этот метод
Выполняются кудри, но Telegram ответит мне:
Error: Bad Request: Wrong persistent file_id specified: contains wrong characters or have wrong length
realtebo 30 авг.
2015, в 14:41
Поделиться
Поделиться:
telegram-bot
5 ответов
Лучший ответ
Это мое рабочее решение, но для него требуется PHP 5.5:
$bot_url = «https://api.telegram.org/bot/»; $url = $bot_url . «sendPhoto?chat_id=» . $chat_id ; $post_fields = array(‘chat_id’ => $chat_id, ‘photo’ => new CURLFile(realpath(«/path/to/image.png»)) ); $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, array( «Content-Type:multipart/form-data» )); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); $output = curl_exec($ch);
realtebo 30 авг. 2015, в 12:40
Поделиться
Работал для меня отлично!
Легко и элегантно! Спасибо
azerafati 22 нояб. 2015, в 08:23
realtebo 24 нояб. 2015, в 10:34
Cesare 24 нояб. 2015, в 12:43
Привет!
Работает отлично. Быстрый вопрос: есть ли способ отправить изображение с URL-адреса помимо вашего собственного сервера?
Aliv 17 фев. 2016, в 13:18
это работает для php 5.6?
IIM NUR DIANSYAH 08 июль 2016, в 13:22
Hamid 14 сен. 2016, в 06:29
Кто-нибудь пытался добавить заголовок и reply_markup на этом? Я не могу заставить это работать.
martti d 26 март 2017, в 12:47
Показать ещё 5 комментариев
Этот код помогает мне многого, что я получаю с сайта php.net здесь
Я просто изменяю заголовки в этом коде для бота телеграммы, чтобы отправить изображение, просто скопировав эту функцию
Основной пример: теперь просто используйте этот код, отправив имя фотографии с идентификатором пути и чата вот как: —
$array1=array(‘chat_id’=>); $array2=array(‘photo’=>’index.jpg’) //path $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,»https://api.telegram.org//sendPhoto»); curl_custom_postfields($ch,$array1,$array2);//above custom function $output=curl_exec($ch); close($ch);
Для отправки png или других методов измените функцию curl_custom в соответствии с вашими потребностями.
Источник: overcoder.net