Урок 21 Web-запросы
Наверх | К предыдущему уроку |
В этом уроке рассказывается про использование компонентов "Web-запрос" и "Парсер".
Введение
Часто при обработке звонка возникает необходимость обращения к внешним сервисам с целью получения дополнительной информации по абоненту. Например, это может быть запросом в Российский план нумерации для того, чтобы узнать из какого региона звонит клиент. Или обращение в CRM-систему для получения имени ответственного менеджера. Описанные задачи решаются с помощью запросов к соответствующим web-системам. Подобным образом решается также интересная задача по распознаванию речи абонента в момент звонка и выполнение, так называемой, голосовой маршрутизации для составления заявок.
Web-запросы могут выполняться не только при звонке абонента. Это может быть каким-либо служебным действием, например один раз в час Oktell может выполнять запрос на получение курса доллара по отношению к рублю или в сервис прогноза погоды для получения информации о температуре на улице в ближайший час.
Внешняя система, получив запрос, выполняет необходимые действия и возвращает обратно сообщение с результатом. Получив такой ответ от внешней системы, возникает потребность в его разборе. Синтаксический анализ полученных сообщений и выделение нужной информации называется парсингом. В Oktell для этого предназначен отдельный компонент "Парсер", который может анализировать XML или JSON структуры, а также использовать язык "Регулярных выражений".
Разберемся подробнее с работой web-запросов на примере.
Использование Web-запросов в сценариях
Задача: При входящем звонке по номеру телефона определить из какого региона звонит абонент и маршрутизировать звонок в соответствиии с полученной информацией.
Сценарий выглядит следующим образом:
Разберем компоненты сценария поподробнее.
- Компонент "CallerID" . Определяет телефонный номер абонента и записывает его в переменную num. В компоненте переменной "num(строковая)" присваивается значение функции "Номер абонента (CallerId)".
- Компонент "Запрос в Россвязь". Отправляет Web-запрос в сервис Россвязи для определения региона по номеру абонента.
- В поле "Подключение" введите адрес сервиса, при необходимости укажите прокси-сервер и базовую авторизацию.
- В поле "Тип контента" вводится заголовок contenttype, которая подставляется в запрос. По умолчанию, используется application/x-www-form-urlencoded.
- В поле "Метод" вы можете выбрать HTTP-метод передачи запроса.
Метод GET передает данные серверу используя URL. Все необходимые параметры перечисляются непосредственно в строке подключения через знак вопроса "?". Для разделения переменных используется символ "&". Пример GET-запроса (передача параметров param1 и param2, имеющих значения value1 и value2 соответственно):
http://www.oktell.ru?param1=value1¶m2=value2
, когда POST передает данные, используя тело HTTP запроса.
Длина URL'а ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать GET'ом.
POST может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB.
Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в отличии от URL, который виден почти всегда).
- Компонент "Парсер региона".
- Компонент "Ошибка".
- Компонент "Ответ".
- Компонент "Москва и Московская область?".
- Компонент "По Москве".
- Компонент "Татарстан?".
- Компонент "По Татарстану".
- Компонент "По остальным регионам".
Наверх | К предыдущему уроку |