Урок 21 Web-запросы — различия между версиями

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

Версия 08:48, 22 апреля 2014

Наверх К предыдущему уроку

В этом уроке рассказывается про использование компонентов "Web-запрос" и "Парсер".


Введение

Часто при обработке звонка возникает необходимость обращения к внешним сервисам с целью получения дополнительной информации по абоненту. Например, это может быть запросом в Российский план нумерации для того, чтобы узнать из какого региона звонит клиент. Или обращение в CRM-систему для получения имени ответственного менеджера. Описанные задачи решаются с помощью запросов к соответствующим web-системам. Подобным образом решается также интересная задача по распознаванию речи абонента в момент звонка и выполнение, так называемой, голосовой маршрутизации для составления заявок.

Web-запросы могут выполняться не только при звонке абонента. Это может быть каким-либо служебным действием, например один раз в час Oktell может выполнять запрос на получение курса доллара по отношению к рублю или в сервис прогноза погоды для получения информации о температуре на улице в ближайший час.

Внешняя система, получив запрос, выполняет необходимые действия и возвращает обратно сообщение с результатом. Получив такой ответ от внешней системы, возникает потребность в его разборе. Синтаксический анализ полученных сообщений и выделение нужной информации называется парсингом. В Oktell для этого предназначен отдельный компонент "Парсер", который может анализировать XML или JSON структуры, а также использовать язык "Регулярных выражений".

Разберемся подробнее с работой web-запросов на примере.


Использование Web-запросов в сценариях

Задача: При входящем звонке по номеру телефона определить из какого региона звонит абонент и маршрутизировать звонок в соответствиии с полученной информацией.

Сценарий выглядит следующим образом:


Урок21-001.png


Разберем компоненты сценария поподробнее.

  • Компонент "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&param2=value2


, когда POST передает данные, используя тело HTTP запроса.

Длина URL'а ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать GET'ом.

POST может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB.

Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в отличии от URL, который виден почти всегда).


  • Компонент "Парсер региона".
  • Компонент "Ошибка".
  • Компонент "Ответ".
  • Компонент "Москва и Московская область?".
  • Компонент "По Москве".
  • Компонент "Татарстан?".
  • Компонент "По Татарстану".
  • Компонент "По остальным регионам".


Наверх К предыдущему уроку