В первой части руководства по HTTP-запросам мы разобрали метод POST для отправки данных на сервер. Теперь пришло время изучить второй ключевой метод — GET, который используется для получения информации от внешних источников.
В этом руководстве мы создадим практичного чат-бота для проверки операторов мобильной связи по номеру телефона. Сначала соберем простую версию, а затем усложним её, добавив валидацию ввода, обработку пользовательских данных и зацикливание сценария. Всё это без единой строчки программирования!
Метод GET открывает безграничные возможности: проверка данных, получение актуальных курсов валют, прогноз погоды, генерация случайного контента и многое другое. Давайте разберемся, как это работает на практике.
Если вы еще не читали первую часть этого руководства, настоятельно рекомендую начать с неё. Там мы подробно разбираем:
- Что такое HTTP-запросы и зачем они нужны
- Как работает метод POST
- Создание чат-бота с отправкой данных на сервер
- Основы работы с API
Там заложен фундамент, который поможет лучше понять материал этой части.
Повторение основ платформы
Прежде чем приступить к созданию бота, давайте быстро освежим базовые навыки работы с конструктором Watbot.ru.
1. Работа со связями
Связи между блоками отображаются синими стрелками и показывают логику движения по сценарию. Чтобы удалить связь, наведите курсор — она станет красной — и нажмите на значок корзины посередине.
Чтобы создать новую связь, наведите курсор на черную точку блока, зажмите левую кнопку мыши и протяните стрелку к целевому блоку. Связь установлена!
2. Удаление и добавление блоков
Удаление блоков — наведите курсор на блок, нажмите на корзину и подтвердите действие. Блок исчезнет вместе со всеми связями.
Добавление блоков возможно двумя способами:
Первый способ — через кнопку «Добавить блок» в верхнем правом углу. Откроется панель с блоками, разделенными по категориям от «Часто используемых» до специализированных. Есть поисковая строка для быстрого поиска.
Второй способ быстрее: наведите курсор на черную точку любого блока, нажмите правую кнопку мыши — появится контекстное меню с блоками и поиском. При таком способе новый блок добавится сразу с проведенной связью, что очень удобно. Если добавляете через кнопку, связь придется проводить вручную.
Разница между методами GET и POST
Перед тем как начать сборку, важно понять принципиальную разницу между двумя основными HTTP-методами.
Метод POST используется для отправки данных на сервер. Вы передаете информацию (например, форму заявки, данные пользователя, файл), и сервер её обрабатывает. Это как отправить письмо — вы вкладываете содержимое и отправляете адресату.
Метод GET используется для получения данных от сервера. Вы запрашиваете информацию по определенным параметрам, и сервер возвращает результат. Это как задать вопрос — вы спрашиваете, сервер отвечает.
В первой части мы научились отправлять данные (POST). Сегодня научимся получать информацию (GET). Эти два метода дополняют друг друга и покрывают абсолютное большинство задач при работе с API.
Создание простой версии бота
Начнем с базовой версии — бота, который проверяет оператора по заранее заданному номеру телефона.
1. Поиск подходящего API-сервиса
Для работы нам нужен сервис, который предоставляет информацию об операторах связи через API. Мы нашли бесплатный сервис для проверки телефонных номеров:
Главные преимущества этого сервиса:
- Полностью бесплатный
- Не требует регистрации
- Не нужен API-ключ
- Простой в использовании
Откройте сайт сервиса. Прокрутите страницу вниз — там вы найдете примеры использования API с различными методами запросов.
2. Настройка HTTP-запроса
Добавьте блок «HTTP запрос» после стартового блока. Проведите между ними связь.
Откройте настройки блока. На сайте API-сервиса найдите пример запроса с методом GET. Обычно это выглядит примерно так:
https://api.example.com/phone?number=+79991234567
Скопируйте этот URL и вставьте в поле «URL» блока HTTP-запрос. В этом URL уже содержится конкретный номер телефона, который будет проверен.
Метод — обязательно выберите GET. Это критически важно! Если оставите POST или другой метод, запрос не сработает.
Заголовки — для этого простого сервиса заголовки не нужны. Оставьте поле пустым.
Тайм-аут — установите время ожидания ответа от сервера. Можно поставить 10-15 секунд. Это максимальное время, которое бот будет ждать ответ. Если сервер не ответит за это время, запрос завершится ошибкой.
Выводить тело ответа в чат — активируйте эту опцию временно для первого тестирования. Нам нужно увидеть, в каком формате приходят данные.
Сохраните настройки блока.
3. Подключение Telegram и первое тестирование
Если вы еще не подключили Telegram к платформе, сделайте это сейчас. Как получить токен от BotFather и подключить мессенджер? На канале Watbot есть отдельная подробная видеоинструкция:
После подключения перейдите в Telegram к вашему боту. Отправьте команду
/start.
Через пару секунд придет длинное сообщение с непонятным текстом — это JSON-ответ от API. Не пугайтесь, сейчас мы его расшифруем!
4. Расшифровка JSON-ответа
Скопируйте всё сообщение полностью. Откройте любой JSON-форматор — просто введите в поисковике «JSON форматор» и выберите первый попавшийся сайт.
Вставьте скопированный текст в форматор. Данные отобразятся в читаемом виде, и вы увидите структуру ответа:
- number (номер) — проверенный номер телефона
- operator (оператор) — название оператора связи (МТС, Билайн, Мегафон и т.д.)
- region (регион) — регион регистрации номера
Вот эти данные нам и нужно извлечь!
5. Сохранение данных в переменную
Вернитесь на платформу Watbot.ru. Откройте настройки блока HTTP-запрос.
Отключите опцию «Выводить тело ответа в чат» — она больше не нужна.
Активируйте опцию «Записать ответ JSON в переменную». Нажмите «Добавить переменную».
Путь — укажите путь к полю с оператором. Обычно это просто слово
operator.
Имя переменной — назовите её «оператор» для удобства.
Сохраните настройки.
6. Вывод результата пользователю
От кнопки «Продолжить» блока HTTP-запрос добавьте блок «Цепочка сообщений». Проведите связь.
В текстовом поле напишите: «Ответ по вашему номеру телефона. Оператор:
Теперь нужно вставить переменную с названием оператора. Не пишите вручную со скобками — есть более удобный способ!
Внизу редактора текста найдите кнопку «Переменная». Нажмите на неё, выберите из списка переменную «оператор». Она автоматически вставится в правильном формате:
{{оператор}}.
Сохраните блок.
7. Проверка базовой версии
Вернитесь в Telegram и снова отправьте команду
/start.
Теперь вместо JSON-кода должно прийти читаемое сообщение вроде: «Ответ по вашему номеру телефона. Оператор: МТС».
Отлично! Базовая версия работает. Но есть проблема: бот проверяет только один конкретный номер, жестко прописанный в URL. Чтобы проверить другой номер, придется каждый раз менять его в сценарии. Это неудобно. Давайте исправим!
Усложнение бота: ввод номера пользователем
Сделаем бота по-настоящему полезным — пользователи смогут вводить любые номера для проверки.
1. Добавление блока запроса номера
Добавьте новый блок «Цепочка сообщений» между стартовым блоком и HTTP-запросом. Переместите связь от старта к этому новому блоку.
Напишите текст: «Введите номер телефона. Номер должен начинаться с +7. Пример: +79991234567».
Важно сразу объяснить пользователю правильный формат! Это снизит количество ошибок.
2. Настройка валидации
Теперь настроим валидацию — проверку введенных данных на соответствие формату. Это защитит бота от некорректного ввода.
В настройках блока найдите раздел «Валидация». Это проверка данных пользователя по указанному формату.
Выберите нужный формат из списка. Для номера телефона обычно подходит формат «Телефон» или «Пользовательский» с регулярным выражением, если нужна точная проверка.
Сообщение об ошибке валидации — напишите текст, который увидит пользователь при неправильном вводе: «Пожалуйста, введите номер телефона по указанному формату. Пример: +79991234567».
Если пользователь попытается ввести текст вместо цифр или формат будет неправильным, бот не пустит его дальше и покажет это сообщение.
3. Сохранение номера в переменную
Активируйте опцию «Записать ответ в пользовательскую переменную». Назовите переменную «number» (или «номер» — как вам удобнее).
Скопируйте название этой переменной — оно понадобится в следующем шаге!
4. Подстановка переменной в URL
Теперь самое важное — научим бота использовать введенный пользователем номер в запросе к API.
Сначала подготовим переменную в правильном формате. Откройте блок «Цепочка сообщений» (где пользователь вводит номер). Внизу нажмите кнопку «Переменная» и выберите
number. Переменная появится в формате {{number}}. Скопируйте её вместе со скобками.
Теперь откройте настройки блока HTTP-запрос. Найдите в URL ту часть, где указан конкретный номер телефона.
Было:
https://api.example.com/phone?number=+79991234567
Замените жестко заданный номер на переменную:
Стало:
https://api.example.com/phone?number={{number}}
Что это дает? Теперь любой номер, который введет пользователь, автоматически подставится в этот URL, и API проверит именно его!
5. Проверка валидации
Давайте протестируем валидацию. Перезапустите бота в Telegram командой
/start.
Появится сообщение с просьбой ввести номер. Попробуйте написать что-то неправильное, например: «мой номер» или «123».
Бот не пропустит вас дальше! Появится сообщение об ошибке: «Пожалуйста, введите номер телефона по указанному формату».
Теперь введите номер правильно:
+79991234567.
Бот примет данные и выдаст информацию об операторе. Валидация работает!
6. Добавление информации о регионе
Давайте расширим функционал и добавим еще одно поле — регион регистрации номера.
Вернитесь к настройкам блока HTTP-запрос. В разделе «Записать ответ JSON в переменную» добавьте еще одну переменную:
Путь — укажите
region (или как называется это поле в JSON-ответе).
Имя переменной — назовите «регион».
Теперь откройте блок вывода результата (последняя цепочка сообщений). Добавьте в текст:
«Ответ по вашему номеру телефона.
Оператор: {{оператор}}
Регион: {{регион}}»
Не забудьте вставить переменную через кнопку «Переменная», чтобы не ошибиться с форматом!
7. Зацикливание сценария
Сейчас после проверки одного номера бот останавливается. Чтобы проверить другой номер, нужно перезапускать бота. Давайте это исправим!
В блоке с выводом результата добавьте кнопку с текстом «Вернуться в начало».
Зайдите в настройки клавиатуры и перетащите кнопку снизу наверх, чтобы она стала inline (отображалась под сообщением). Обязательно сохраните настройки.
Теперь проведите связь от кнопки «Вернуться в начало» к блоку запроса номера телефона (не к стартовому блоку, а к тому, где пользователь вводит номер!).
Получается замкнутый цикл: проверили один номер → нажали «Вернуться в начало» → ввели другой номер → проверили → и так бесконечно.
8. Финальное тестирование
Не забудьте отключить «Выводить тело ответа в чат» в блоке HTTP-запрос, если вы включали её для отладки!
Перейдите в Telegram и перезапустите бота. Введите номер телефона.
Должно прийти сообщение вроде:
«Ответ по вашему номеру телефона.
Оператор: МТС
Регион: Московская область»
Нажмите «Вернуться в начало». Введите другой номер — бот снова проверит его и выдаст результат.
Отлично! Бот полностью функционален и может проверять бесконечное количество номеров.
Дополнительные возможности API
Обратите внимание на интересную деталь: в JSON-ответе иногда появляется поле «old_operator» (старый оператор).
Это поле появляется, если номер переносили от одного оператора к другому. Например, номер был зарегистрирован в МТС, потом владелец перенес его в Билайн, сохранив номер.
В таком случае:
- operator — текущий оператор (Билайн)
- old_operator — предыдущий оператор (МТС)
Можете добавить еще одну переменную для отображения старого оператора, если это важно для вашей задачи!
Другие идеи использования метода GET
Проверка номеров телефонов — это только один пример. Метод GET открывает огромные возможности для интеграций!
Конвертер валют
Подключитесь к API обмена валют и создайте бота, который показывает актуальный курс. Пользователь вводит сумму, выбирает валюты — бот моментально конвертирует по текущему курсу.
Можно проверять:
- Сколько стоит 1000 рублей в долларах
- Текущий курс евро
- Динамику изменения курса за день
Прогноз погоды
Интегрируйте API погоды (Yandex Weather). Пользователь вводит город — бот показывает:
- Текущую температуру
- Прогноз на неделю
- Влажность, давление, ветер
- Вероятность осадков
Генератор случайного контента
Есть множество бесплатных API, которые генерируют:
- Случайные шутки
- Мотивационные цитаты
- Факты о животных
- Рецепты блюд
- Советы дня
Пользователь нажимает кнопку — получает случайный контент. Идеально для развлекательных ботов!
Проверка доменов
API проверки доменов покажет:
- Свободен ли домен для регистрации
- Кому принадлежит домен (WHOIS)
- Когда истекает регистрация
Курсы криптовалют
Подключитесь к API криптобирж и показывайте:
- Актуальную цену Bitcoin, Ethereum
- Изменение за 24 часа
- Графики и тренды
Информация о фильмах
API вроде OMDB или TMDB предоставляют данные о фильмах:
- Рейтинги
- Описание сюжета
- Актерский состав
- Даты выхода
Типы API-сервисов
При работе с методом GET вы столкнетесь с разными типами сервисов.
Полностью бесплатные без регистрации
Как сервис проверки номеров из нашего примера. Это самый простой вариант:
- Не нужна регистрация
- Не требуется API-ключ
- Просто делаете запрос и получаете ответ
Минус: обычно есть ограничения на количество запросов (например, 100 в день).
Бесплатные с регистрацией
Многие сервисы требуют:
- Зарегистрироваться на сайте
- Получить персональный API-ключ
- Добавить этот ключ в URL запроса
Выглядит это так:
https://api.example.com/data?key=YOUR_API_KEY
Преимущество: обычно выше лимиты запросов. Например, 1000 запросов в день вместо 100.
Платные сервисы
Профессиональные API часто требуют оплаты:
- Месячная подписка
- Оплата за каждый запрос
- Комбинированные тарифы
Зато предоставляют:
- Неограниченные запросы
- Расширенные данные
- Техническую поддержку
- Гарантированную стабильность
Выбирайте тип сервиса в зависимости от масштаба проекта и бюджета.
Практические советы по работе с GET
Давайте обсудим важные нюансы, которые помогут избежать типичных ошибок.
Проверяйте документацию
У каждого API есть документация. Всегда изучайте её перед интеграцией:
- Какие параметры нужны в запросе
- В каком формате приходит ответ
- Есть ли ограничения на количество запросов
- Нужна ли авторизация
Пять минут на изучение документации сэкономят часы на отладку!
Тестируйте запросы отдельно
Перед добавлением в бота проверьте API через браузер или инструменты вроде Postman:
- Вставьте URL в адресную строку браузера
- Посмотрите, какой приходит ответ
- Убедитесь, что данные корректны
Только после этого интегрируйте в бота.
Обрабатывайте ошибки
API может быть временно недоступен или вернуть ошибку. Добавьте блок с условием:
- Если запрос успешен → показываем результат
- Если ошибка → сообщаем пользователю: «Сервис временно недоступен, попробуйте позже»
Кешируйте данные
Если данные обновляются редко (например, курс валют раз в час), нет смысла делать запрос при каждом обращении пользователя. Сохраняйте результат в переменную и обновляйте раз в час.
Это экономит лимиты запросов и ускоряет работу бота.
Уважайте лимиты
У бесплатных API обычно есть ограничения:
- 100 запросов в день
- 10 запросов в минуту
- 1000 запросов в месяц
Следите за статистикой использования. Если приближаетесь к лимиту, либо оптимизируйте запросы, либо переходите на платный тариф.
Защищайте API-ключи
Если сервис выдал вам персональный API-ключ:
- Не публикуйте его в открытом доступе
- Не показывайте в скриншотах и видео
- Периодически обновляйте для безопасности
При компрометации ключа злоумышленники могут использовать ваш лимит запросов.
Сравнение GET и POST
Теперь, когда вы изучили оба метода, давайте сравним их применение.
GET используйте когда:
- Нужно получить данные (курсы, погода, информация)
- Запрос не изменяет состояние сервера
- Параметры простые и помещаются в URL
- Результат можно кешировать
POST используйте когда:
- Нужно отправить данные (форма, файл, заявка)
- Запрос изменяет данные на сервере (создание, обновление)
- Данные большие или конфиденциальные
- Передаете сложные структуры (JSON, XML)
В большинстве ботов вы будете использовать оба метода в разных частях сценария!
Что мы создали
Давайте подведем итог. Вы создали функционального чат-бота, который:
- Запрашивает номер телефона у пользователя
- Проверяет корректность ввода через валидацию
- Отправляет GET-запрос к внешнему API
- Получает данные об операторе и регионе
- Извлекает нужную информацию из JSON-ответа
- Выводит результат в читаемом виде
- Позволяет проверять неограниченное количество номеров
Всё это без единой строчки кода! Вы использовали только визуальный конструктор и базовые принципы работы с API.
Самое важное — вы освоили метод GET, который открывает доступ к тысячам бесплатных API-сервисов. Теперь вы можете интегрировать в своих ботов данные о погоде, валюте, новостях, статистике и многом другом.
Комбинируя GET (получение данных) и POST (отправка данных) из первой части, вы можете создавать по-настоящему мощные решения с глубокими интеграциями!
Экспериментируйте с разными API, изучайте их документацию и создавайте полезных ботов для себя и своих клиентов. Удачи в разработке! 🚀
Полезные ссылки
Бесплатная регистрация на платформе Watbot для создания чат-ботов:
Видео-инструкция HTTP-ЗАПРОСЫ: МЕТОД GET: