Первая программа

Шаблон программа
Простая программа бота, в которой присутствуют обработчики команд и сообщений
Импортирование библиотек и классов

logging - логирование действий бота
Updater -компонент отвечает за коммуникацию с сервером
CommandHandler - обработчик команд
MessageHandler - обработчик сообщений
Filters - фильтр сообщений
import logging
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
Настройка логирования при запуске программы

format - задает формат логирования (время, файл, уровень события и событие)
level=logging.INFO - уровень получаемых сообщений
filename - имя файла для записи логов
logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO, filename = 'bot.log' )

logger = logging.getLogger(__name__)

Создания функций для команд
def start (update: Update, context: CallbackContext) -> None:
____update.message.reply_text('Hi!')

def echo (update: Update, context: CallbackContext) -> None:
____update.message.reply_text(update.message.text)
Функция main

updater = Updater() - создания бота с идентификатором
dispatcher = updater.dispatcher - создание переменной для создания обработчика.
dispatcher.add_handler() - подписаться на сообщение
updater.start_polling() - обращаться к Telegram
updater.idle() - работать до принудительной остановки
def main():
____updater = Updater("1471637464:AAHUKv5tDt-ogLKfrZY4fkI3dM9ONPerQBc", use_context=True)
____dispatcher = updater.dispatcher
____dispatcher.add_handler(CommandHandler("start", start))
____dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
____updater.start_polling()
____updater.idle()
Строка вызова метода main()
if __name__ == '__main__':
____main()