$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 }}.