grupo crear comandos botfather bot agregar api telegram-bot

crear - telegram api



¿Cómo descargo un archivo o una foto que se envió a mi bot de Telegram? (5)

Estoy usando la API bot del telegrama, pero no puedo ver de todos modos para descargar un filé que se envió a mi bot. Obtengo un hash del archivo pero no sé qué hacer con él. ¿Hay alguna manera? Gracias.


¡Esto ahora está disponible!

https://core.telegram.org/bots/api#getfile

¡Hurra! Fue agregado el 18 de septiembre:

https://core.telegram.org/bots/api

Uso:

En el JSON del mensaje, recibirá un file_id como antes. Un ejemplo de un objeto de mensaje con un archivo de voz:

{ message_id: 2675, from: { id: 10000001, first_name: ''john'', username: ''john'' }, chat: { id: 10000001, first_name: ''john'', username: ''john'' }, date: 1442848171, voice: { duration: 2, mime_type: ''audio/ogg'', file_id: ''AwADBAADYwADO1wlBuF1ogMa7HnMAg'', // <------- file_id file_size: 17746 } }

A través de getFile de la API ahora puede obtener la información de ruta requerida para el archivo:

https://api.telegram.org/bot<bot_token>/getFile?file_id=the_file_id

Esto devolverá un objeto con file_id , file_size y file_path . Luego puede usar file_path para descargar el archivo:

https://api.telegram.org/file/bot<token>/<file_path>

Tenga en cuenta que este enlace solo estará disponible durante una hora. Después de una hora, puede solicitar otro enlace. Esto significa que si desea alojar el archivo de alguna manera y prefiere evitar verificar y volver a verificar los enlaces nuevos cada vez que lo preste, es mejor que descargue el archivo a su propio servicio de alojamiento.

El tamaño máximo de un archivo obtenido a través de este método es de 20 MB. Error: se obtiene cuando se utiliza un archivo de más de 20 MB (se muestra a continuación)

{"ok":false,"error_code":400,"description":"Bad Request: file is too big[size:1556925644]"}

De los documentos del telegrama:

En caso de éxito, se devuelve un objeto File. El archivo se puede descargar a través del enlace https://api.telegram.org/file/bot /, donde se toma de la respuesta. Se garantiza que el enlace será válido durante al menos 1 hora. Cuando el enlace caduca, se puede solicitar uno nuevo llamando de nuevo a getFile. Por el momento, los bots pueden descargar archivos de hasta 20 MB de tamaño.



Si está utilizando pyTelegramBotAPI , puede descargar su foto con este código:

raw = message.photo[2].file_id path = raw+".jpg" file_info = bot.get_file(raw) downloaded_file = bot.download_file(file_info.file_path) with open(path,''wb'') as new_file: new_file.write(downloaded_file)


Si tienes el archivo_id entonces necesitas usar los métodos sendDocument o sendPhoto , si quieres enviarte a ti mismo, necesitas decirle a tu bot tu ID de usuario o tu ID de chat (lo mismo en chat uno a uno).


¡Hurra! Se acaba de agregar al 18 de septiembre de 2015

Puede usar getFile(file_id) . Esta función devuelve un objeto File que contiene file_path . Puede descargar el archivo a través de esta dirección:

https://api.telegram.org/file/bot<token>/<file_path>

Como se menciona en la https://core.telegram.org/bots/api#getfile , el objeto File será válido durante aproximadamente una hora. Debería llamar a getFile nuevamente para obtener un nuevo objeto File si el anterior expira.