Tabla de Contenidos

Python: python-telegram-bot

Módulo para interactuar con la API de Telegram a través de Python.

Instalación

Se puede instalar a través del gestor de módulos de Python pip:

pip install python-telegram-bot

Hola, mundo

Ejemplo de código que responde al texto /hola:

from telegram import Update
from telegram.ext import Updater, CommandHandler, CallbackContext
 
BOT_TOKEN = "1234567890:ABCDEF0123456789ABCDEF"
 
 
def hello(update: Update, context: CallbackContext) -> None:
    update.message.reply_text(f'Hola, {update.effective_user.first_name}')
 
updater = Updater(BOT_TOKEN)
 
updater.dispatcher.add_handler(CommandHandler('hello', hello))
 
updater.start_polling()
updater.idle()

HTML

Emojis

Se pueden introducir los emojis directamente. En la web oficial de Unicode tienen un listado emojis. Basta con copiar lo que aparece en la columna Browser y pegarlo en el código Python.

Mensajes

Los mensajes que se reciben mediante Telegram, este módulo los encapsula en un objeto de tipo telegram.Message. Dependiendo del tipo de mensaje que se trate, tendrá una serie de atributos y métodos.

Texto

{
    'message_id': 1001, 
    'date': 1613301503, 
    'chat': {
        'id': 123456, 
        'type': 'private', 
        'username': 'foo', 
        'first_name': 'bar'
    }, 
    'text': 'ping', 
    'entities': [], 
    'caption_entities': [], 
    'photo': [], 
    'new_chat_members': [], 
    'new_chat_photo': [], 
    'delete_chat_photo': False, 
    'group_chat_created': False, 
    'supergroup_chat_created': False, 
    'channel_chat_created': False, 
    'from': {
        'id': 123456, 
        'first_name': 'bar', 
        'is_bot': False, 
        'username': 'foo', 
        'language_code': 'es'
    }
}

Fotos

La estructura de un mensaje:

{
    'message_id': 1000, 
    'date': 1613300902, 
    'chat': {
        'id': 123456, 
        'type': 'private', 
        'username': 'foo', 
        'first_name': 'bar'
    }, 
    'entities': [], 
    'caption_entities': [], 
    'photo': [
        {
            'file_id': 'AgACAgQAAxkDAAID6GApBKZS-8S0nLV5RG6bEw7xp3__AAINrDEbC8BMUVM-v_GTUAW1H7RJJ10AAwEAAwIAA20AA99BBQABHgQ', 
            'file_unique_id': 'AQADH7RJJ10AA99BBQAB', 
            'width': 320, 
            'height': 180, 
            'file_size': 4643
        }, 
        {
            'file_id': 'AgACAgQAAxkDAAID6GApBKZS-8S0nLV5RG6bEw7xp3__AAINrDEbC8BMUVM-v_GTUAW1H7RJJ10AAwEAAwIAA3gAA-BBBQABHgQ', 
            'file_unique_id': 'AQADH7RJJ10AA-BBBQAB', 
            'width': 800, 
            'height': 451, 
            'file_size': 17870
        }, 
        {
            'file_id': 'AgACAgQAAxkDAAID6GApBKZS-8S0nLV5RG6bEw7xp3__AAINrDEbC8BMUVM-v_GTUAW1H7RJJ10AAwEAAwIAA3kAA-FBBQABHgQ', 
            'file_unique_id': 'AQADH7RJJ10AA-FBBQAB', 
            'width': 1280, 
            'height': 721, 
            'file_size': 35816
        }, 
        {
            'file_id': 'AgACAgQAAxkDAAID6GApBKZS-8S0nLV5RG6bEw7xp3__AAINrDEbC8BMUVM-v_GTUAW1H7RJJ10AAwEAAwIAA3cAA-JBBQABHgQ', 
            'file_unique_id': 'AQADH7RJJ10AA-JBBQAB', 
            'width': 1984, 
            'height': 1117, 
            'file_size': 61820
        }
    ], 
    'new_chat_members': [], 
    'new_chat_photo': [], 
    'delete_chat_photo': False, 
    'group_chat_created': False, 
    'supergroup_chat_created': False, 
    'channel_chat_created': False, 
    'from': {
        'id': 654321, 
        'first_name': 'unbot', 
        'is_bot': True, 
        'username': 'unbot'
    }
}

Vídeos

{
    'message_id': 53, 
    'date': 1613676565, 
    'chat': {
        'id': 3904192, 
        'type': 'private', 
        'username': 'tempwin', 
        'first_name': 'TW'
    }, 
    'entities': [], 
    'caption_entities': [], 
    'photo': [], 
    'video': {
        'file_id':        'BAACAgQAAxkDAAM1YC7AFTGFmOESXIpZJef6JiVp6sMAAk0CAAJJ1SxT1FjK5SacHn8eBA',
        'file_unique_id': 'AgADTQIAAknVLFM', 
        'width': 320, 
        'height': 240, 
        'duration': 126, 
        'thumb': {
            'file_id':
'AAMCBAADGQMAAzVgLsAVMYWY4RJcilkl5_omJWnqwwACTQIAAknVLFPUWMrlJpwef9DAViVdAAMBAAdtAAMhVQACHgQ',
            'file_unique_id': 'AQAD0MBWJV0AAyFVAAI', 
            'width': 320, 
            'height': 240, 
            'file_size': 17512
        }, 
        'file_name': 'sample-mp4-file.mp4', 
        'mime_type': 'video/mp4', 
        'file_size': 10546620
    }, 
    'new_chat_members': [], 
    'new_chat_photo': [], 
    'delete_chat_photo': False, 
    'group_chat_created': False, 
    'supergroup_chat_created': False, 
    'channel_chat_created': False, 
    'from': {
        'id': 1471129400, 
        'first_name': 'Un bot', 
        'is_bot': True, 
        'username': 'Unbot'
    }
}