Получаем статистику Telegram-канала при помощи api и python или свой tgstat с регистрацией и смс
Last updated
Last updated
https://habr.com/ru/articles/702148/
В некоторых группах в Telegram доступна интересная и познавательная статистика, которую можно посмотреть не только со смартфона, но и нехитрых действий с api. А если каналов много, то вообще очень полезная вещь.
Пройти небольшой и увлекательный путь с TDLib.
Залогиниться на https://my.telegram.org. Перейти в "API development tools" и заполнить форму (три поля: название приложение, платформа и описание)
Получить api_id and api_hash, они нужны для авторизации.
Почитать страшные предупреждения, что за использование api для флуда и прочих накруток ваш номер забанят навсегда.
Итак, TDLib, кроссплатформенная, работает со всеми языками (питон тоже), написана на Си. С установкой библиотеки любезно помогает сам Телеграм по ссылке, можно выбрать язык, систему, и все команды вам напишут.
Тут же предлагают рассмотреть решения от третьих лиц и стоит ссылка на конкретно alexander-akhmetov/python-telegram. Он, так он.
Импортируем всё нужное и логинемся по инструкции
После выполнения 11 строчки, Tелеграм пришлёт код, который надо ввести. Потом нужно получить все чаты (14-15), а то чуда не произойдёт.
Дальше всё очень просто, библиотека располагает прекрасной функцией call_method, которая вызывает всё что нужно из TDLib, а нужно нам удостовериться, что группе доступна статистика.
В библиотеке есть собственная функция по получению информации о группе, tg.get_supergroup_full_info(-100231243245), но если что-то идёт не так, возвращается None и сложно понять в чём дело, при вызове tg.call_method('getSupergroupFullInfo', params, block=True), можно указать block=True, и ошибка будет показываться.
В этом случае пишет, что нет такой группы.
В общем, если есть заветный флажок can_get_statistics==True, можем наконец, переходить к главному, вызову метода getChatStatistics. Всего два параметра, айди чата, и темная или светлая тема.
В ответ получаем json со всей статистикой и наслаждаемся результатом.
Количество подписчиков в динамике
Подписалось/отписалось
Включены уведомления
Просмотры по часам
Источники просмотров
Активность
Новые посты
Например, можно результат визуализировать при помощи plotly
Всем спасибо, надеюсь, будет полезно. В производство пока это всё не запускалось, поэтому насколько стабильно и уверенно всё работает, сказать не могу.