Максим
Полезные статьи

ПОШАГОВОЕ РУКОВОДСТВО: ЧАТ-БОТ ДЛЯ ОБМЕНА ВАЛЮТЫ В TELEGRAM

Согласитесь, гораздо удобнее узнавать актуальный курс валют прямо в Telegram, чем искать информацию на сторонних сайтах или в приложениях банков. А что если бот не только покажет текущий курс, но и моментально конвертирует любую сумму?
В этом руководстве мы создадим полноценный чат-бот для обмена валюты, который будет работать с актуальными данными в режиме реального времени. Пользователи смогут мгновенно узнавать, сколько долларов составляют их рубли и наоборот. Причем весь процесс займет меньше часа, даже если вы впервые работаете с API и HTTP-запросами.
Главное преимущество такого решения — автоматизация. Вам не нужно вручную обновлять курсы, всё происходит автоматически через подключение к специальному сервису. Давайте разберемся, как это работает!

Что мы будем создавать

Наш чат-бот будет выполнять несколько ключевых функций. Пользователь выбирает направление конвертации — из рублей в доллары или наоборот. Затем указывает сумму, которую хочет конвертировать. Бот делает запрос к API обменника валют, получает актуальный курс, производит расчет и выдает результат.
Мы будем работать преимущественно с блоком HTTP-запроса — это мощный инструмент, который позволяет чат-ботам взаимодействовать с внешними сервисами и получать данные из интернета.

Создание сценария и основы работы

Начнем с самого начала. Перейдите на платформу Watbot.ru и авторизуйтесь в своем аккаунте. Если вы еще не зарегистрированы, сделайте это — регистрация бесплатная и занимает пару минут.
Watbot — визуальный конструктор чат-ботов Визуальный конструктор чат-ботов для Вашего бизнеса. Подойдёт для любой ниши. Соберите готовое решение чат-бота за 10 минут! 300 видеоуроков внутри платформы. Больше 100 шаблонов чат-ботов. Легко научиться собирать. Усиливает продажи и автоматизацию. watbot.ru

1. Создание нового сценария

Нажмите кнопку «Создать» и придумайте название для чат-бота. Хороший вариант — «Курс валют» или «Обмен валюты», чтобы сразу было понятно, для чего предназначен бот. Выберите язык интерфейса (оставьте русский) и нажмите «Создать».
После создания вы попадете в рабочую область конструктора сценариев. Именно здесь мы будем собирать логику работы нашего бота.

2. Повторение основ интерфейса

Прежде чем начать сборку, давайте быстро освежим основные приемы работы с конструктором.
Связи между блоками отображаются синими стрелками. Они показывают путь, по которому движется диалог. Чтобы удалить связь, наведите на неё курсор — она станет красной — и нажмите на значок корзины. Чтобы создать новую связь, наведите курсор на черную точку блока, зажмите левую кнопку мыши и протяните стрелку к целевому блоку.
Удаление блоков — наведите курсор на блок, нажмите на корзину и подтвердите действие.
Добавление блоков возможно двумя способами. Первый — через кнопку «Добавить блок» в верхнем правом углу. Откроется панель со всеми доступными блоками, разделенными по категориям. Есть раздел «Часто используемые» и поисковая строка для быстрого поиска.
Второй способ быстрее: наведите курсор на черную точку блока, нажмите правую кнопку мыши — появится контекстное меню с возможностью добавления блока. При таком способе новый блок сразу добавится с проведенной связью, что очень удобно.
Настройки отображения: внизу слева находятся кнопки масштабирования — можете увеличивать или уменьшать рабочую область по своему усмотрению. А вверху есть переключатель тем — одним кликом меняйте светлую тему на темную и обратно, без захода в настройки.
Для этого проекта давайте работать с темной темой — так интереснее, да и многим удобнее.

Сборка интерфейса для пользователя

Теперь начнем создавать пользовательскую часть — то, что увидят люди при общении с ботом.

3. Приветствие и выбор валюты

Добавьте блок «Цепочка сообщений» сразу после стартового блока. Здесь мы создадим приветствие и предложим выбор направления конвертации.
Напишите текст сообщения, например: «Здравствуйте! Приветствуем в нашем чат-боте по обмену валюты. Какую валюту хотели бы обменять?»
Теперь добавим кнопки для выбора. Нажмите «Добавить ответ» и создайте две кнопки:
  • Первая кнопка: USD → RUB (доллары в рубли)
  • Вторая кнопка: RUB → USD (рубли в доллары)
Использование общепринятых аббревиатур — хорошая практика. Все понимают, что USD — это доллары США, а RUB — российские рубли. Это короче и выглядит профессиональнее, чем длинные названия.
Важный момент: сделайте кнопки inline (инлайн), чтобы они отображались прямо под сообщением, а не в виде обычной клавиатуры. Зайдите в «Настройку клавиатуры» и перетащите кнопки снизу наверх. Обязательно нажмите «Сохранить».
На будущее можете добавить больше направлений: евро, юани, фунты — всё зависит от того, какие валюты поддерживает выбранный вами API-сервис. Но для начала давайте ограничимся двумя парами.

4. Запрос суммы для конвертации (доллары в рубли)

От кнопки «USD → RUB» добавьте новый блок «Цепочка сообщений». Здесь мы спросим у пользователя, какую сумму нужно конвертировать.
Напишите вопрос: «Сколько долларов необходимо конвертировать в рубли? Напишите только цифру (например: 1, 5, 10000)».
Обратите внимание на подсказку про формат ввода — это важно! Сейчас объясню почему.
Настройка валидации данных
Здесь начинается магия. Мы настроим проверку введенных данных, чтобы пользователи не могли написать что-то вроде «100 долларов» или «сто рублей». Боту нужны только цифры для расчетов.
В настройках блока найдите раздел «Валидация» — это проверка введенных данных по указанному формату. Выберите формат «Цифры».
Что это даст? Если пользователь напишет «1000 руб» или «100 долларов», чат-бот не пропустит его дальше и не будет выполнять расчеты. Система просто попросит ввести данные правильно.
Теперь добавьте сообщение об ошибке валидации. Напишите что-то вроде: «Пожалуйста, напишите только цифру. Например: 1, 5 или 10000».
Это сообщение увидят пользователи, если попытаются ввести данные в неправильном формате. Валидация — отличный способ избежать ошибок и сделать бота более user-friendly.
Сохранение суммы в переменную
Активируйте опцию сохранения ответа пользователя в переменную. Назовите её «сумма» — в ней будет храниться число, которое ввел пользователь. Эта переменная понадобится для HTTP-запроса к API конвертера.

Подключение API для конвертации валют

Теперь переходим к самой технической и интересной части — подключению внешнего сервиса для получения актуальных курсов и конвертации.

5. Выбор и регистрация в сервисе обмена валют

Для работы нам нужен API-сервис, который предоставляет данные о курсах валют. Существует множество таких платформ — платных и бесплатных. Для этого туториала мы будем использовать бесплатный сервис:
ExchangeRate-API - Free & Pro Currency Converter API Accurate & reliable Exchange Rates API trusted by tens of thousands of developers since 2010. Free access, all world currencies, helpful support & easy to integrate JSON API. www.exchangerate-api.com
Перейдите на сайт сервиса и изучите его возможности. Нам подходит, потому что он позволяет:
  • Конвертировать конкретные пары валют (не нужны все существующие валюты)
  • Получать актуальный курс
  • Сразу конвертировать указанную сумму
  • Работает бесплатно с разумными лимитами запросов
В документации обычно есть раздел «Getting Started» или «Documentation». Там указано, что сервис использует трехбуквенные коды валют по международному стандарту ISO 4217:
  • USD — доллары США
  • RUB — российские рубли
  • EUR — евро
  • И так далее
Получение API-ключа
Пройдите регистрацию на сервисе — обычно это быстрый процесс с подтверждением email. После регистрации в личном кабинете вы получите API-ключ (API Key) — это уникальная строка символов, которая идентифицирует ваши запросы.
Скопируйте этот ключ и сохраните где-нибудь — он понадобится при настройке HTTP-запроса. Относитесь к API-ключу как к паролю — не публикуйте его в открытом доступе.

6. Изучение документации API

Прежде чем настраивать блок HTTP-запроса, нужно понять, как работает API. В документации сервиса найдите раздел про конвертацию валют (обычно называется «Convert» или «Currency Conversion»).
Там будет пример URL для запроса. Он выглядит примерно так:
https://api.example.com/convert?api_key=YOUR_KEY&from=USD&to=RUB&amount=100
Обратите внимание на параметры:
  • api_key — ваш уникальный ключ
  • from — базовая валюта (которую конвертируем)
  • to — целевая валюта (в которую конвертируем)
  • amount — сумма для конвертации
Также проверьте метод запроса — обычно это GET (самый простой тип HTTP-запроса).
В документации должен быть пример ответа в формате JSON — изучите его структуру, нам это понадобится позже.

7. Настройка HTTP-запроса для конвертации

От перехода «Любая другая фраза» блока с запросом суммы добавьте блок «HTTP запрос». Это сердце нашего чат-бота — именно здесь происходит магия получения данных.
Откройте настройки блока. Пока он пустой, но сейчас мы его заполним.
URL запроса
Скопируйте базовый URL из документации API и вставьте в поле «URL». Теперь нужно заполнить все параметры:
Замените YOUR_KEY на ваш реальный API-ключ, который вы получили при регистрации.
Параметр from (базовая валюта) — укажите USD, потому что сейчас мы настраиваем конвертацию из долларов в рубли. Базовая валюта — это та, которую мы конвертируем.
Параметр to (целевая валюта) — укажите RUB, потому что конвертируем в рубли.
Параметр amount — здесь самое интересное! Вместо конкретного числа вставьте пользовательскую переменную {{сумма}}.
Как правильно вставить переменную? Есть удобный способ: вернитесь в предыдущий блок «Цепочка сообщений», где мы сохраняли сумму. Внизу есть строка «Переменная» — нажмите на неё и выберите переменную «сумма». Она автоматически вставится в правильном формате: {{сумма}}. Скопируйте её и вернитесь в HTTP-запрос, вставьте в параметр amount.
Почему это круто? Теперь у нас шаблонный запрос! Пользователи смогут конвертировать любые суммы — 10, 100, 50000 долларов — и всё будет работать автоматически, подставляя нужное значение в запрос.
Метод запроса
Выберите метод GET — именно его использует большинство API для получения данных.
Тайм-аут
Оставьте стандартное значение или укажите 10-15 секунд — обычно API отвечают быстро.

8. Первое тестирование

Перед тем как двигаться дальше, давайте проверим, работает ли запрос. Включите опцию «Выводить тело ответа в чат» — это временная мера для отладки.
Теперь нужно подключить Telegram к платформе, если вы еще этого не сделали. Перейдите в настройки подключения мессенджеров, выберите Telegram, вставьте токен вашего бота (получить его можно через BotFather) и сохраните.
Если у вас возникают вопросы про создание бота в Telegram и получение токена, на нашем канале есть отдельное подробное видео с пошаговой инструкцией работы с BotFather.
- YouTube Смотрите любимые видео, слушайте любимые песни, загружайте собственные ролики и делитесь ими с друзьями, близкими и целым миром. www.youtube.com
Откройте Telegram, найдите вашего бота и отправьте команду /start. Должно прийти приветственное сообщение. Нажмите кнопку «USD → RUB», введите сумму, например, 100.
Через пару секунд бот должен прислать длинное сообщение с кучей непонятных данных — это JSON-ответ от API. Не пугайтесь, это нормально! Сейчас мы научимся извлекать из него нужную информацию.

Обработка и отображение результатов

Получить данные — это только половина дела. Теперь нужно извлечь из JSON-ответа конкретные значения и красиво показать их пользователю.

9. Парсинг JSON-ответа

Скопируйте всё сообщение, которое прислал бот (это JSON-ответ от API). Откройте сайт JSON-форматора:
Best JSON Formatter and JSON Validator: Online JSON Formatter Online JSON Formatter / Beautifier and JSON Validator will format JSON data, and helps to validate, convert JSON to XML, JSON to CSV. Save and Share JSON jsonformatter.org
Вставьте скопированный текст в поле форматора слева и посмотрите на структуру данных. Здесь вы увидите два важных значения:
  • Актуальный курс — показывает, сколько стоит 1 доллар к рублю
  • Результат конвертации — показывает итоговую сумму (например, сколько составляет 100 долларов в рублях)
Именно эти два значения нам нужно извлечь и показать пользователям.

10. Создание переменных для сохранения данных

Вернитесь на платформу Watbot.ru. От кнопки «Продолжить» блока HTTP-запрос создайте новый блок «Цепочка сообщений» — в нём мы будем выводить результат пользователю.
Теперь откройте настройки блока HTTP-запрос. Отключите опцию «Выводить тело ответа в чат» — она больше не нужна, мы уже проверили, что запрос работает.
Активируйте опцию «Записать ответ JSON в переменную». У нас будет сразу две переменные, как я уже упомянула: курс одного доллара к рублю и результат конвертации (в нашем примере — сколько 100 долларов составляет в рублях).
Теперь вернитесь на сайт API, где вы получали ключ. В документации обычно есть пример, как выглядит структура ответа.
Первая переменная — курс валюты
Скопируйте путь к полю с курсом (обычно это что-то вроде rate или exchange_rate) и вставьте его в поле «Путь» слева. Напротив в поле «Переменная» напишите «курс» — так вам будет удобно ориентироваться.
Вторая переменная — результат конвертации
Вернитесь обратно на сайт документации API, скопируйте путь к полю с результатом конвертации (обычно result или converted_amount) и вставьте на платформе во вторую переменную. Эту переменную назовите «конвертация» для удобства.
Готово! Сохраните настройки блока.

11. Форматирование вывода результата

Теперь перейдите в блок «Цепочка сообщений», который вы создали для вывода результата. Добавьте текст и структурируйте его так, чтобы пользователю было понятно.
Напишите первую строку: «Актуальный курс: 1 USD = {{курс}} RUB»
Следующий абзац составьте из переменных: «{{сумма}} долларов по актуальному курсу составляет {{конвертация}} рублей»
Чтобы правильно вставить переменные, используйте кнопку «Переменная» внизу редактора — выберите нужные переменные, и они автоматически добавятся в правильном формате с двойными фигурными скобками.

12. Тестирование первого направления конвертации

Давайте проверим, как работает наш чат-бот на данном этапе. Перейдите в Telegram и снова отправьте команду /start — это перезапустит бота с обновленными настройками.
Нажмите кнопку «USD → RUB» для конвертации долларов в рубли. Введите сумму — давайте теперь попробуем 1000 долларов.
Через пару секунд должен прийти красиво отформатированный ответ. Первая строка покажет актуальный курс доллара (например, 84 рубля), а вторая строка — результат конвертации: 1000 долларов составляет 84656 рублей.
Отлично! Первое направление конвертации работает корректно.

Добавление обратной конвертации (рубли в доллары)

Теперь нужно настроить второе направление — из рублей в доллары. Хорошая новость: это делается намного проще, потому что блоки у нас уже готовы. Мы просто их скопируем и слегка изменим.

13. Копирование и адаптация блоков

Блок запроса суммы
Скопируйте первый блок «Цепочка сообщений», где мы спрашивали про количество долларов. В скопированном блоке измените только текст вопроса на: «Сколько рублей необходимо конвертировать в доллары? Напишите только цифру (например: 100, 1000, 50000)»
Все остальные настройки (валидация, сообщение об ошибке, сохранение в переменную «сумма») оставьте без изменений — они универсальные и подходят для любого направления.
Блок HTTP-запроса
Теперь скопируйте блок HTTP-запрос. В настройках нужно поменять местами валюты. Вспомните логику: первая валюта идёт базовая — это та валюта, которую необходимо поменять.
Для конвертации рублей в доллары:
  • Первая валюта (from): RUB — рубли (которые конвертируем)
  • Вторая валюта (to): USD — доллары (в которые конвертируем)
Всё остальное остаётся неизменным: API-ключ, переменная суммы, метод GET, настройки сохранения результата в переменные.
Блок вывода результата
Скопируйте также блок с выводом результата и слегка адаптируйте текст под новое направление. Вместо долларов упоминайте рубли, и наоборот.
Проведите все связи правильно: от кнопки «RUB → USD» → к запросу суммы → к HTTP-запросу → к выводу результата.

14. Финальное тестирование обоих направлений

Время для полноценной проверки! Вернитесь в Telegram и снова перезапустите чат-бота командой /start.
Тест конвертации рублей в доллары
Нажмите кнопку «RUB → USD». Введите сумму, например, 1000 рублей. Должен прийти ответ: 1000 рублей составляет примерно 11 долларов (в зависимости от текущего курса).
Попробуйте другую сумму — 500000 рублей. Результат: 5905 долларов. Всё работает!
Тест конвертации долларов в рубли
Вернитесь в начало и нажмите «USD → RUB». Введите, например, 5 долларов. Получаете ответ: 5 долларов составляет 423 рубля.
Проверка валидации
Теперь давайте проверим, работает ли защита от неправильного ввода. Попробуйте написать «100 руб» вместо просто «100».
Чат-бот не пропускает дальше! Появляется сообщение об ошибке валидации: «Пожалуйста, напишите только цифру. Например: 1, 5 или 10000».
Введите правильный формат — только цифру — и всё заработает. Отлично, валидация работает корректно и защищает бота от ошибок пользователей.

Итоги и возможности расширения

Вот такой чат-бот мы с вами собрали! Он оказался несложным в реализации, но при этом очень функциональным.
Здесь, конечно, можно добавлять и другие валюты на выбор: евро, юани, фунты и так далее. Для этого просто копируйте существующие блоки и меняйте коды валют в HTTP-запросах. Всё остальное остаётся неизменным — проводите связи от новых кнопок к скопированным блокам, и функционал расширяется.
Вы освоили работу с HTTP-запросами, научились парсить JSON-ответы, настраивать валидацию данных и создавать удобный пользовательский интерфейс. Эти навыки пригодятся для создания множества других полезных интеграций!
Успехов в разработке ваших чат-ботов! 💰🚀

Полезные ссылки

Бесплатная регистрация на платформе Watbot для создания чат-ботов:
Watbot — визуальный конструктор чат-ботов Визуальный конструктор чат-ботов для Вашего бизнеса. Подойдёт для любой ниши. Соберите готовое решение чат-бота за 10 минут! 300 видеоуроков внутри платформы. Больше 100 шаблонов чат-ботов. Легко научиться собирать. Усиливает продажи и автоматизацию. watbot.ru
Видео-инструкция  ЧАТ-БОТ ДЛЯ ОБМЕНА ВАЛЮТЫ В TELEGRAM:
- YouTube Смотрите любимые видео, слушайте любимые песни, загружайте собственные ролики и делитесь ими с друзьями, близкими и целым миром. www.youtube.com