Telegram API получение статистики о канале
Всем привет, может кто знает как лучше сделать, что использовать?
Задача такова: добавляться бот (именно бот) в какой-либо телеграм канал. Необходимо получить инфу о канале (посты, просмотры и т.п). Насколько я знаю bot api не поддерживает получение такой информации. Так как можно это реализовать, чтобы работало даже в приватных канал (в которых естественно добавлен наш бот). К примеру, как в сервисе tgstat работает, только мне нужно насколько развернутая инфа, чисто базовая информацию необходима.
Уже создан bot в BotFathere, он нужен для отправки постов в телеграм каналы в которые он добавлен, бот работает на aiogram. А получение информации о постах на aiogram невозможно сделать.
Ответы (1 шт):
Да, через 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())