Telegram API получение статистики о канале

Всем привет, может кто знает как лучше сделать, что использовать?

Задача такова: добавляться бот (именно бот) в какой-либо телеграм канал. Необходимо получить инфу о канале (посты, просмотры и т.п). Насколько я знаю bot api не поддерживает получение такой информации. Так как можно это реализовать, чтобы работало даже в приватных канал (в которых естественно добавлен наш бот). К примеру, как в сервисе tgstat работает, только мне нужно насколько развернутая инфа, чисто базовая информацию необходима.

Уже создан bot в BotFathere, он нужен для отправки постов в телеграм каналы в которые он добавлен, бот работает на aiogram. А получение информации о постах на aiogram невозможно сделать.


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

Автор решения: ArtTM

Да, через bot api это не получится сделать. Но я думаю это можно сделать с помощью telethon.

Чтобы получить api_id и api_hash перейдите на my.telegram.org. Там создайте новое приложение. После создания приложения вы получите api_id и api_hash. Перенесите их в код. При желании, я думаю, что этот код можно внедрить прямо в бота.

from telethon import TelegramClient

api_id = 'API_ID'
api_hash = 'API_HASH'
channel_username = 'CHANNEL_USERNAME'  # Имя канала или его ID

client = TelegramClient('session_name', api_id, api_hash)

async def main():
    await client.start()
    # Получаем информацию о канале
    channel = await client.get_entity(channel_username)
    print(f'Название канала: {channel.title}')
    print(f'Описание канала: {channel.about}')
    print(f'Количество подписчиков: {channel.participants_count}')

    # Извлекаем сообщения
    async for message in client.iter_messages(channel_username):
        print(f'ID: {message.id}, Текст: {message.text}')

with client:
    client.loop.run_until_complete(main())
→ Ссылка