Как передавать данные через бота в группу Telegram
В статье рассмотрим как сделать так, чтобы Ваш бот на платформе Aimylogic параллельно ведя диалог с клиентом присылал еще уведомления или какие-то сообщения в группу для менеджеров.
Вот небольшой кейс. Есть чат-бот который принимает и обрабатывает заявки от клиентов. На фронтдесксе у компании есть менеджеры, которые работают с заказами клиентов.
Чтобы менеджеры сразу видели что заявка пришла, помимо передачи данных учетной системе я создал группу куда публикуются уведомления о новых заявках. Туда же бот может присылать изменения о статусе заявки и какие-то сводки или отчеты в определенное время.
Создаем группу
На стороне Телеграм Вам нужно создать группу или канал. Наш кейс мы разбираем на группе. В администраторы этой группы добавьте бота которого вы создали на платформе 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 пропишите какие переменные вы хотите передавать. Вы можете оформить это сообщением, например, как показано у меня.
Как узнать id группы в Телеграм
Есть несколько способов. Вы можете узнать id средствами Aimylogic или использовать другие.
Aimylogic сохраняет все данные о пользователе в системной переменной $rawRequest. Подробнее о ней в этой ссылке. Нам из этой переменной нужен chat_id.
Чтобы его получить перед началом диалога создайте экран с переменной $rawRequest.message.from.id. Опубликуйте бота. Отправьте боту команду /start в группу куда Вы его добавили. В ответ бот пришлет Вам chat_id группы. Важно, чтобы он начинался со значения -100.
Можете использовать и другие методы. Например добавить в группу специального бота. Который выгрузит вам нужные данные с id группы или использовать API вызов в браузере. Подробнее в этом материале.
В конце соедините ваш сценарий и опубликуйте бота.
Обязательно выведете сообщение об ошибке при не успешном запросе. Создайте экран с текстом и переменной $httpStatus. Раздел «Завершен с ошибкой» соедините с экраном вывода сообщения об ошибке. Так вы будете знать код ошибки и сможете оперативно ее устранить. Скорее всего могут быть ошибки 404 и 400.