Telegram API: как получать сообщения с общедоступного канала, участником которого я не являюсь?
Я могу успешно получать сообщения с канала через каналы.метода getmessages просьба, как только я узнаю их message IDs
. Я нахожу идентификатор канала контакты.поиск, кстати.
на данный момент идентификаторы mesage являются последовательными целыми числами, поэтому получение max_id решит проблему.
Я уверен, что это возможно, так как официальные клиенты делают это (просмотр канала без присоединения к нему). Я попытаюсь узнать, как официальное настольное приложение делает это чтение источники, но любая помощь будет высоко ценится.
мне это нужно, потому что я пишу простой общественный канал телеграммы - > rss / Веб-интерфейс.
пожалуйста, не путайте telegram API с telegram bot API. Bot API позволяет получать "push" сообщения о новых сообщениях, но не "чтение исторических журналов".
2 ответов
вот шаги, которые вы должны сделать, чтобы получить сообщения от канала, к которому вы не присоединились:
- разрешите имя пользователя в ID и access_hash с
contacts.resolveUsername
- Invoke
messages.getHistory
чтобы получить нужные сообщения.
вот краткое описание на messages.getHistory
параметры:
:param peer: The channel from whom to retrieve the message history
:param limit: Number of messages to be retrieved
:param offset_date: Offset date (messages *previous* to this date will be retrieved)
:param offset_id: Offset message ID (only messages *previous* to the given ID will be retrieved)
:param max_id: All the messages with a higher (newer) ID or equal to this will be excluded
:param min_id: All the messages with a lower (older) ID or equal to this will be excluded
:param add_offset: Additional message offset (all of the specified offsets + this offset = older messages)