This site is no longer updated.Go to new Conversational Cloud docs

$request


Данные запроса клиента.

Формат объекта соответствует следующей структуре:

  • version — версия протокола, по умолчанию последняя версия.
  • channelType — тип коммуникационного канала, по умолчанию пустой.
  • replyTо — имя очереди для отправки ответа.
  • botId — идентификатор бота, используется для сопоставления запроса со сценарием, которым он должен быть обработан.
  • channelUserId — идентификатор пользователя.
  • questionId — идентификатор запроса.
  • query — текстовый запрос клиента.
  • data — параметры запроса (lang, timezone, location и другие).
  • rawRequest — дамп исходного запроса для последующей обработки в сценарии.

Примеры использования

  • $request.channelType
state: goToOpeartor
    script:
        if ($request.channelType == 'telegram' || $request.channelType == 'chatwidget') {
            $reactions.answer('Перевод на оператора')
        } else {
            $reactions.answer('Невозможно перевести на оператора')
        }

  • $request.botId и $request.channelUserId
state:
    q!: * перевести деньги *
    # доступ к функции бота возможен только после авторизации клиента
    script:
        # получение pushback-ссылки
        $temp.securityToken = "ExampleToken";
        var channelType = $request.channelType;

        # получаем ID бота
        var botId = $request.botId;
        
        # получаем идентифкатор пользователя
        var chatId = $request.channelUserId;
        # название события
        var event = "authEvent";

        var eventData = {
            "token": $temp.securityToken,
            "someData": {
                "smth": 1
            }
        };
        $temp.pushgateResponse = $pushgate.createPushback(channelType, botId, chatId, event, eventData);
...

  • $request.query
state: NoMatch
    event!: noMatch
    a: Я не понял. Вы сказали: {{$request.query}}`

  • $request.data
script: reset
    intent!: /reset
    script:
        $jsapi.newSession({message: "/start", data: $request.data});

  • $request.rawRequest
state: GetPhoneNumber
    event: telegramSendContact
    script:
        $client.phone_number = $request.rawRequest.message.contact.phone_number;
    a: Спасибо! Наш менеджер свяжется с вами по номеру телефона {{$client.phone_number }}.