Внешние события

Последние изменения: 28.02.2023

Внешние события – это механизм Sherlock Platform позволяющий информировать бота из внешних систем. Внешние события могут использоваться:

  1. Для получения call-back уведомлений при интеграции с сервисами оплаты или другими внешними системами, когда часть этапов единого процесса выполняются вне бота

  2. Для информирования одного пользователя бота о действиях другого пользователя внутри Sherlock Platform

  3. Для отправки триггерных уведомлений из внешних систем

Основное отличие от прямого использования методов отправки сообщений API Sherlock Platform заключается в том, что логика обработки внешних событий настраивается и меняется на стороне Sherlock Platform, включая все доступные команды. И в том числе может зависеть от текущего состояния диалога пользователя.

Для вызова внешнего события необходимо на API Sherlock Platform отправить один из следующих методов:

https://<Sherlock_API_URL>/ExternalEvent/Notify?RequestID=<RequestID>&text=<Event_text>¶meters=<ExtraParameters>

https://<Sherlock_API_URL>/ExternalEvent/NotifyByProfile?channel=<Channel_Profile>&profile=<ClientProfile>&text=<Event_text>¶meters=<ExtraParameters>

https://<Sherlock_API_URL>/ExternalEvent/NotifyByExternalID?ExternalID=<ExternalID>&text=<Event_text>¶meters=<ExtraParameters>

https://<Sherlock_API_URL>/ExternalEvent/NotifyByClientID?ClientID=<ClientID>&text=<Event_text>¶meters=<ExtraParameters>

Где

RequestID, channel/profile, ExternalID, ClientID - используются для идентификации диалога в который направляется событие следующим образом:

  • RequestID и пара channel/profile однозначно идентифицируют требуемый диалог

  • ClientID - идентифицирует клиента. В случае нескольких открытых диалогов у клиента, уведомление отправляется в последний

  • ExternalID - внешний идентификатор, который должен быть привязан в базе. Ниже приведен пример запроса к базе, который привязывает email в качестве внешнего идентификатора

INSERT INTO tbl_ExternalObjectMapping(ExternalID, InternalID, ObjectTypeID, ExternalSystemID)
VALUES('#ClientEmail#','#Request.ID#', 3, '81683a9c-3c34-476c-8b0f-0cd274a925b1')

text - идентификатор события. Используется для выбор конкретного внешнего события внутри Sherlock Platform. Настройка внешних событий внутри Sherlock Platform выполняется с помощью событий бота. Смотрите Настройка событий бота

ExtraParameters – дополнительные параметры, которые сохраняются в контекст бота. Параметры должны быть переданы в JSON следующего формата: {“Ключ 1”:”Значение 1”,“Ключ 2”:”Значение 2”}

JSON должен быть закодирован через URL Encoded. Смотрите http://www.codenet.ru/services/urlencode-urldecode/

Вызов методов может выполняться через GET или POST. Для POST тело запроса пишется в переменную POST_Result контекста бота.

 

 

Помогла ли вам статья?