{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/JS_API/variables/request/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"0c21585a-0fbf-538f-a323-dfbf06fa7f73","excerpt":"$request Переменная содержит данные запроса клиента. Формат объекта Формат объекта соответствует следующей структуре: Поле Описание  Параметры запроса…","html":"<h1>$request</h1>\n<hr>\n<p>Переменная содержит данные запроса клиента.</p>\n<h2>Формат объекта</h2>\n<p>Формат объекта соответствует следующей структуре:</p>\n</br>\n<table>\n<thead>\n<tr>\n<th>Поле</th>\n<th>Описание</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">data</code></td>\n<td>Параметры запроса: <code class=\"language-text\">livechatStatus</code>, <code class=\"language-text\">JustWidgetRawParams</code>, <code class=\"language-text\">isTestChannel</code>, <code class=\"language-text\">requestHeaders</code>.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">requestType</code></td>\n<td>Тип запроса.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">version</code></td>\n<td>Версия протокола. По умолчанию последняя версия.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">botId</code> <div style=\"line-height: 25%\"><br/></div> <code class=\"language-text\">channelBotId</code></td>\n<td>Идентификатор бота.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">accountId</code></td>\n<td>Идентификатор аккаунта.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">channelType</code></td>\n<td>Тип коммуникационного канала.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">channelUserId</code></td>\n<td>Идентификатор клиента.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">questionId</code></td>\n<td>Идентификатор запроса.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">query</code></td>\n<td>Текстовый запрос клиента.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">rawRequest</code></td>\n<td>Объект запроса в исходном виде для последующей обработки в сценарии.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">language</code></td>\n<td>Язык NLU для проекта.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">userFrom</code></td>\n<td>Данные о клиенте: <code class=\"language-text\">id</code>, <code class=\"language-text\">firstName</code>, <code class=\"language-text\">lastName</code>.</td>\n</tr>\n</tbody>\n</table>\n</br>\n<h2>Примеры использования</h2>\n<h3>$request.channelType</h3>\n<p>Проверяем тип канала для перевода на оператора:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> GoToOpeartor\n    <span class=\"token variableParameter\">script:</span>\n        if ($request.channelType == 'telegram' || $request.channelType == 'chatwidget') {\n            $reactions.answer('Перевод на оператора')\n        } else {\n            $reactions.answer('Невозможно перевести на оператора')\n        }</code></pre></div>\n</br>\n<h3>$request.botId и $request.channelUserId</h3>\n<p>Запрашиваем идентификатор бота и клиента для авторизации в банке:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> TransferMoney\n    <span class=\"token storageType\">q!:</span> * перевести деньги *\n    <span class=\"token comment\"># Доступ к функции бота возможен только после авторизации клиента</span>\n    <span class=\"token variableParameter\">script:</span>\n        <span class=\"token comment\"># Получение pushback-ссылки</span>\n        $temp.securityToken = \"ExampleToken\";\n        var channelType = $request.channelType;\n\n        <span class=\"token comment\"># Получение ID бота</span>\n        var botId = $request.botId;\n        \n        <span class=\"token comment\"># Получение ID клиента</span>\n        var chatId = $request.channelUserId;\n        <span class=\"token comment\"># Название события</span>\n        var event = \"authEvent\";\n\n        var eventData = {\n            \"token\": $temp.securityToken,\n            \"someData\": {\n                \"smth\": 1\n            }\n        };\n        $temp.pushgateResponse = $pushgate.createPushback(channelType, botId, chatId, event, eventData);\n...</code></pre></div>\n</br>\n<h3>$request.query</h3>\n<p>Отображаем в диалоге нераспознанный запрос клиента:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> NoMatch\n    <span class=\"token storageType\">event!:</span> noMatch\n    <span class=\"token variableParameter\">a:</span> Я не понял. Вы сказали: <span class=\"token constantCharacter\">{{$request.query}}</span>`</code></pre></div>\n</br>\n<h3>$request.data.requestHeaders</h3>\n<p class='warn'>Поле <code class=\"language-text\">$request.data.requestHeaders</code> доступно только для каналов <a href=/1.11.1/docs/ru/channels/chatwidget/chatwidget  >Чатвиджет</a>, <a href=/1.11.1/docs/ru/channels/aimybox/aimybox  >Aimybox</a> и <a href=/1.11.1/docs/ru/channels/chat_api/chat_api  >Chat API</a>.</p>\n<p>Получаем информацию о клиентском приложении:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> RequestClientInfo\n    <span class=\"token storageType\">intent!:</span> /info\n    <span class=\"token variableParameter\">a:</span> <span class=\"token constantCharacter\">{{ $request.data.requestHeaders['user-agent']}}</span></code></pre></div>\n<p class='tip'>Имена HTTP-заголовков в поле <code class=\"language-text\">$request.data.requestHeaders</code> приведены к нижнему регистру.</p>\n</br>\n<h3>$request.rawRequest</h3>\n<p>Получаем телефонный номер клиента для обработки заказа:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> GetPhoneNumber\n    <span class=\"token storageType\">event:</span> telegramSendContact\n    <span class=\"token variableParameter\">script:</span>\n        $client.phone_number = $request.rawRequest.message.contact.phone_number;\n    <span class=\"token variableParameter\">a:</span> Спасибо! Наш менеджер свяжется с вами по номеру телефона <span class=\"token constantCharacter\">{{$client.phone_number }}</span>.</code></pre></div>","frontmatter":{"title":"","description":null},"headings":[{"value":"$request"}]}},"pageContext":{"slug":"/docs/ru/JS_API/variables/request/","previous":{"fields":{"slug":"/docs/ru/JS_API/variables/session/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/JS_API/variables/response/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}