Страницы

Поиск по вопросам

суббота, 27 октября 2018 г.

Достать все сообщения с публичного чата Telegram

Как спарсить заданное пользователем количество сообщений с публичного чата Telegram?
На входе пользователь вводит url чата и количество сообщений которое нужно спарсить. Раньше никогда не работал ни с ботами Телеграм, ни с его АПИ. Как лучше это реализовать? Возможно есть готовые библиотеки для данной задачи?


Ответ

Если нужно парсить с любого рандомного публичного чата, то через Telegram-Bot-API этого не сделать. Потому что бот читает только из чата, куда он добавлен сам.
Для ботов есть только один способ получать сообщения - метод getUpdates получает все сообщения за определенный период, но надо понимать, что в ответ приходит данные по всем чатам и определять нужный придется самостоятельно.
Для понимания как писать именно ботов для Telegram можно почитать вот эту статью - https://netology.ru/blog/bot-php ну или любую другую по запросу telegram бот на php их достаточно много=)
Для того что бы парсить из любого чата, нужно писать свой клиент для Telegram, тогда можно будет использовать метод messages.getHistory()
Нашел реализацию клиента Telegram на PHP - MadelineProto, можно попробовать использовать ее.
Дополнительно можно почитать: https://stackoverflow.com/questions/34687435/telegram-api-with-php-not-bot - в ответах есть краткое описание шагов по созданию клиента для Telegram https://core.telegram.org/#getting-started - дока по TelegramAPI

Комментариев нет:

Отправить комментарий