Подключение бота telegram — Урок 6. Собираем аналитику при помощи Botan
Урок 6. Собираем аналитику при помощи Botan.
ВАЖНО
Сервис Botan в середине 2017 года был отключен и больше не работает. Урок оставлен исключительно для истории.
Вы наверняка уже видели новость о такой чудесной системе аналитики для ботов Telegram, как Botan. Сам я ей, по правде говоря, пользуюсь уже несколько месяцев, поэтому могу с уверенностью сказать, что штука эта очень полезная и качественная. Сегодня мы научимся пользоваться Ботаном в наших Telegram-ботах. В данном уроке будет рассмотрено только подключение бота к Botan через веб-интерфейс, всё, что касается их бота, вы можете рассмотреть самостоятельно.
Регистрируемся в Yandex AppMetrica
Первое, что необходимо сделать, это перейти по адресу https://appmetrica.yandex.com и войти при помощи своей Яндекс-почты. После того, как вы попадете в панель управления, нажимайте на «+ Добавить приложение». В появившемся окне нужно ввести ник бота (вместе с «собакой»), прочитать условия пользовательского соглашения и согласиться с ними, поставив галку напротив соответствующего пункта.

После нажатия на «Добавить приложение», появится окошко, в котором нас интересует поле API Key. Скопируйте его куда-нибудь в надёжное место, скоро этот ключ нам понадобится.

Интегрируем аналитику в нашего бота
Теперь осталось начать сбор статистики по нашему боту! В качестве примера создадим ещё одного, в котором будет 2 команды: /random и /yesorno. Первая будет выводить случайное число от 1 до 10, а вторая — «да» или «нет».
Итак, для начала займемся файлом config.py
. Помимо токена самого бота, создадим переменную botan_key
, в которую запишем полученный ранее API Key.Хорошо, с конфигом закончим. Создадим файл botan.py
. Кто-то скажет, мол, можно же взять готовый из соответствующего репозитория. Так-то да, но при работе с pyTelegramBotAPI, мне пришлось внести в него некоторые дополнения. Сам файл довольно большой, чтобы приводить его полностью здесь, поэтому отсылаю вас к своему репозиторию, где его можно просмотреть.Функция make_json
получает на вход объект Message
и выбирает из него необходимые поля. В принципе, можно собирать статистику по чему угодно, т.е. можно смотреть, пользователь с каким ID или ником сколько раз вызвал ту или иную команду, в каком чате чаще используют бота и т.д.В данном примере я оставлю сбор различных параметров, но в коде будут указания, что делать, если нужно просто количество использований той или иной команды.
Создадим две функции:
Не забудьте импортировать стандартный модуль random
и написать после него random.seed()
для инициализации генератора!Также обратите внимание на строчку botan.track(...)
. Именно эта строка и отвечает за отправку статистики. Первый аргумент — ключ, полученный при регистрации бота в Ботане, второй аргумент — chat.id, получаемый в сообщении. Третий аргумент — объект сообщения, из которого вытягивается необходимая информация, а последний — что-то типа метки, описывающая команду.В первой строке функции cmd_yesorno
есть вызов random.choise(strings)
, это выбор случайного элемента из массива, в нашем случае содержащего всего 2 элемента: строку «да» и строку «нет».
Собственно, всё. Дописываем нужные строки кода, как и раньше и запускаем бота! Несколько раз используем команды /random и /yesorno, подождем пару минут и заглянем в статистику, выбрав бота в Метрике, пункт «Приложение» — «События»: