Подключение бота telegram — Урок 6. Собираем аналитику при помощи Botan

Урок 6. Собираем аналитику при помощи Botan.

ВАЖНО

Сервис Botan в середине 2017 года был отключен и больше не работает. Урок оставлен исключительно для истории.

Вы наверняка уже видели новость о такой чудесной системе аналитики для ботов Telegram, как Botan. Сам я ей, по правде говоря, пользуюсь уже несколько месяцев, поэтому могу с уверенностью сказать, что штука эта очень полезная и качественная. Сегодня мы научимся пользоваться Ботаном в наших Telegram-ботах. В данном уроке будет рассмотрено только подключение бота к Botan через веб-интерфейс, всё, что касается их бота, вы можете рассмотреть самостоятельно.

Регистрируемся в Yandex AppMetrica

Первое, что необходимо сделать, это перейти по адресу https://appmetrica.yandex.com и войти при помощи своей Яндекс-почты. После того, как вы попадете в панель управления, нажимайте на «+ Добавить приложение». В появившемся окне нужно ввести ник бота (вместе с «собакой»), прочитать условия пользовательского соглашения и согласиться с ними, поставив галку напротив соответствующего пункта.

Добавление приложения

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

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, подождем пару минут и заглянем в статистику, выбрав бота в Метрике, пункт «Приложение» — «События»:

Поделиться:
Нет комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.