Как передавать данные через бота в группу Telegram

Nikolay Pavlov
Сделать просто
3 min readMay 21, 2022

В статье рассмотрим как сделать так, чтобы Ваш бот на платформе Aimylogic параллельно ведя диалог с клиентом присылал еще уведомления или какие-то сообщения в группу для менеджеров.

Многоликий бот. C одной стороны беседует с клиентами, с другой стороны оповещает менеджеров, а с третьей обменивается данными с информационной системой в Airtable.

Вот небольшой кейс. Есть чат-бот который принимает и обрабатывает заявки от клиентов. На фронтдесксе у компании есть менеджеры, которые работают с заказами клиентов.

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

Создаем группу

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

Настройки на стороне Aimylogic

Обмениваться сообщениями с клиентами удобнее всего через текст, разбавленный переменными. Эти маленькие контейнеры с информацией помогут успешно сохранить ее и манипулировать ей при дальнейшей работе. В отличие от ванильного JavaScript, в Aimylogic все переменные инициализируются через знак доллара США $. Подробнее о переменных прочитайте в документации Aimylogic.

Выберите на каком этапе данные будут передаваться в группу Телеграм. Обычно это в конце диалога.

Создайте экран с HTTP запросом. В разделе API вызова выберите метод GET. Пропишите сам вызов:

https://api.telegram.org/bot<укажите токен бота без пробелов>/sendMessage?chat_id=<укажите id чата группы оно должно начинаться со значения -100>

Вы можете сделать более изящнее.

Перед HTTP экраном создайте блок Код и в нем пропишите объявите токен и id группы переменными. Создав такой экран в начале, Вам не придется постоянно прописывать длинные токены id. Достаточно в ссылке API вызова указать эти переменные.

Пример объявления переменных в блоке Код.
$token = <ваш токен бота>; 
$group_id = <id группы>;

API вызов тогда будет выглядеть вот так:

https://api.telegram.org/bot${token}/sendMessage?=chat_id=${group_id}

В теле запроса Body пропишите какие переменные вы хотите передавать. Вы можете оформить это сообщением, например, как показано у меня.

Важно. Не забывайте закрывать кавычки и фигурные скобки и иначе API call не сработает.

Как узнать id группы в Телеграм

Есть несколько способов. Вы можете узнать id средствами Aimylogic или использовать другие.
Aimylogic сохраняет все данные о пользователе в системной переменной $rawRequest. Подробнее о ней в этой ссылке. Нам из этой переменной нужен chat_id.
Чтобы его получить перед началом диалога создайте экран с переменной $rawRequest.message.from.id. Опубликуйте бота. Отправьте боту команду /start в группу куда Вы его добавили. В ответ бот пришлет Вам chat_id группы. Важно, чтобы он начинался со значения -100.

Можете использовать и другие методы. Например добавить в группу специального бота. Который выгрузит вам нужные данные с id группы или использовать API вызов в браузере. Подробнее в этом материале.

Вот так можно оформить сообщение об ошибке.

В конце соедините ваш сценарий и опубликуйте бота.

Обязательно выведете сообщение об ошибке при не успешном запросе. Создайте экран с текстом и переменной $httpStatus. Раздел «Завершен с ошибкой» соедините с экраном вывода сообщения об ошибке. Так вы будете знать код ошибки и сможете оперативно ее устранить. Скорее всего могут быть ошибки 404 и 400.

--

--