Подключение бота

Добавление бота и получение токена

Войдите на сайт через Телеграм и в разделе Мои боты добавьте Телеграм-токен (полученный от @BotFather) вашего бота.

Сразу после этого вы попадете на страницу настроек этого бота. Вверху нее вы найдете TGVIZ API Token. Скопируйте его - он необходим для передачи данных в наш сервис.

Токен уникален для каждого бота - так система сможет верно залогировать переданные вами данные именно для этого бота. В каждом боте используйте его персональный токен.

Передача данных от бота

Подключение по API

API TGViz принимает объекты Update. Для получения полной картины в статистике, желательно передавать все Update-ы от Телеграм в момент их получения.

Для этого отправьте Post-запрос к https://api.tgviz.com/v1/post-update (Swagger UI -https://api.tgviz.com/docs)

curl  -X POST \
'https://api.tgviz.com/v1/post-update' \
    --header 'X-TGViz-Bot-Token: <TGVIZ-API-TOKEN>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "update_id": 12345678,
        "message": {
          ... объект message
        },
    ... другие объекты входящие в Update
    }'

Где вместо TGVIZ-API-TOKEN подставьте токен, сгенерированный TGViz-ом для бота (можно найти вверху страницы настроек каждого бота).

В payload передайте объект Update. Не вносите изменений в структуру Update, иначе данные не пройдут валидацию на нашей стороне (API ответит ошибкой 422)

Python

Используйте нашу библиотеку, осуществляющую процессинг передачи Update-ов:

pip install tgviz

В описании библиотеки на Github вы найдете примеры подключения, в том числе для библиотек aiogram и python-telegram-bot. Процессор удобнее всего использовать в middleware, передавая в него Update и handler: он сам залогирует данные, наш сервис сам отправит рекламный пост, если он настроен в системе, а процессор пропустит обработку в случае, если сработает механика "обязательной подписки".

Подключение бота на конструкторе

Во многих Low-code / No-code конструкторах есть возможность передачи сырых данных (Update от Телеграм). В таком случае вам необходимо передавать эти данные нам так же, как описано в разделе "Подключение по API".

Еще варианты

Если вы не нашли подходящего способа подключения, у вас возникли проблемы или есть идея как сделать еще удобнее - пожалуйста, напишите нам! Мы обязательно найдем лучший способ.