Получить ботом общее число сообщений в телеграм канале telethon
Используя библиотеку telethon не могу найти способ получить общее количество сообщений в тг канале. Использую последнюю версию. Перерыл документацию, но так и не нашел решения, возможно что то упустил.
Через токен бота удалось получить данные конкретного сообщения в ТГ канале по id через GetMessagesRequest. Но не нашел метода для получения общего числа сообщений в канале именно ботом, не авторизируясь по номеру телефона в telethon.
Есть ли возможность получить число сообщений через telethon? Или возможно в других библиотеках есть какие то способы получения общего числа сообщений в тг канале используя токен бота?
Ответы (1 шт):
Можно использовать Telegram Bot API
import requests
def get_channel_messages_count(channel_username, bot_token):
url = f"https://api.telegram.org/bot{bot_token}/getChat?chat_id=@{channel_username}"
response = requests.get(url)
data = response.json()
if response.status_code == 200 and data["ok"]:
return data["result"]["message_count"]
else:
return None
Заюзать как-то так:
messages_count = get_channel_messages_count(channel_username, bot_token)
if messages_count is not None:
print(f"Общее количество сообщений {channel_username}: {messages_count}")
else:
print("Не удалось получить количество сообщений")
UPDATE: Вы правы. Значит попробуйте Telethon:
with TelegramClient('session_name', api_id, api_hash) as client:
client.start(bot_token=bot_token)
channel_entity = client.get_entity(channel_username)
messages_count = client.get_messages(channel_entity, limit=0).total
print(f"Общее количество сообщений в канале {channel_username}: {messages_count}")```