Как сделать бота на Python для чтения закрепленных сообщений в Telegram

Пришел сюда потому что не смог найти информацию о том, как "спарсить" закрепленное сообщение в Telegram. Пробовал библиотеки telebot и telegram, telegram.ext, но не нашел информацию о них.

Вопрос: Как это сделать?


Ответы (1 шт):

Автор решения: zrx
  1. Установка библиотеки python-telegram-bot
    pip install python-telegram-bot --upgrade
  2. Создание стандартного бота:
from telegram import Update, ForceReply
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

updater = Updater(token='TOKEN', use_context=True)
dispatcher = updater.dispatcher

def start(update, context):
    context.bot.send_message(chat_id=update.effective_chat.id, text="Hello, World!")

start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)

updater.start_polling()
  1. Добавляем echo-функцию, для того, чтобы протестировать получение объекта чата:
def echo(update: Update, context: CallbackContext) -> None:
    print(context.bot.get_chat(ID).pinned_message)

dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
  1. Вставляем ID чата, в котором есть бот и из которого нам нужно получить закреплённое сообщение.
  2. Запускаем бота и пишем ему любое сообщение.
  3. Готово. В консоли бот запринтит объект закреплённого сообщения.

Библиотека: https://github.com/python-telegram-bot/python-telegram-bot
Документация к библиотеке: https://python-telegram-bot.readthedocs.io/en/latest/
Документация Telegram API: https://core.telegram.org/bots/

→ Ссылка