{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/channels/google_assistant/jaicf/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"335b10d6-a616-5921-affe-5183022d8880","excerpt":"Подключение Google Assistant для проекта на JAICF Чтобы создать Action и подключить к нему проект на JAICF, выполните следующие шаги: Подготовьте проект…","html":"<h1>Подключение Google Assistant для проекта на JAICF</h1>\n<hr>\n<p>Чтобы создать <em>Action</em> и подключить к нему проект на JAICF, выполните следующие шаги:</p>\n<ol>\n<li><a href=\"#%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0\">Подготовьте проект</a>.</li>\n<li><a href=\"#%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0\">Подключите канал</a>.</li>\n<li><a href=\"#Action-Package\">Скачайте Action Package</a>.</li>\n<li><a href=\"#%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F-Action-%D0%B2-Actions-Console\">Зарегистрируйте Action в Actions Console</a>.</li>\n<li><a href=\"#%D0%90%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F-%D1%84%D1%80%D0%B0%D0%B7%D0%B0\">Задайте активационную фразу</a>.</li>\n<li><a href=\"#Project-ID\">Скопируйте Project ID</a>.</li>\n<li><a href=\"#gactions\">Скачайте gactions</a>.</li>\n<li><a href=\"#%D0%97%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-Action-Package-%D0%B2-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82\">Загрузите Action Package в проект</a>.</li>\n<li><a href=\"#%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Протестируйте бота в симуляторе Actions Console</a>.</li>\n</ol>\n<p class='tip'>Данная интеграция с Google Assistant активна только для проектов, созданных с <a href=https://developers.google.com/assistant/conversational/df-asdk/actions-sdk/gactions-cli target=\"_blank\" rel=\"noopener noreferrer\">устаревшей версией Actions SDK</a>. Для проектов, созданных с использованием <a href=https://developers.google.com/assistant/conversational/overview target=\"_blank\" rel=\"noopener noreferrer\">Conversational Actions</a>, используйте <a href=/1.11.7/docs/ru/channels/dialogflow/dialogflow  >канал Dialogflow</a>.</p>\n<h2>Подготовка проекта</h2>\n<p>Перед подключением канала предварительно подготовьте проект JAICF:</p>\n<ul>\n<li>Укажите в файле <code class=\"language-text\">build.gradle.kts</code> в зависимостях настройки:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\">dependencies <span class=\"token punctuation\">{</span>\r\n    <span class=\"token comment\">// ...</span>\r\n    <span class=\"token function\">implementation</span><span class=\"token punctuation\">(</span><span class=\"token string-literal singleline\"><span class=\"token string\">\"com.justai.jaicf:jaicp:</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">$</span><span class=\"token expression\">jaicfVersion</span></span><span class=\"token string\">\"</span></span><span class=\"token punctuation\">)</span>\r\n    <span class=\"token function\">implementation</span><span class=\"token punctuation\">(</span><span class=\"token string-literal singleline\"><span class=\"token string\">\"com.justai.jaicf:google-actions:</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">$</span><span class=\"token expression\">jaicfVersion</span></span><span class=\"token string\">\"</span></span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p class='warn'>Замените <code class=\"language-text\">$jaicfVersion</code> <a href=https://search.maven.org/search?q=g:com.just-ai.jaicf target=\"_blank\" rel=\"noopener noreferrer\">последней версией фреймворка</a>.</p>\n</br>\n<ol start=\"2\">\n<li>Сконфигурируйте в зависимости от <a href=\"/1.11.7/docs/ru/platform_ux/jaicf/project_jaicf\">способа подключения к платформе</a>:</li>\n</ol>\n<ul>\n<li>\n<p><code class=\"language-text\">long polling</code> — бот будет сам подключаться к серверу Just AI при взаимодействии с платформой. Простое решение, подходит для локальной разработки и отладки.</p>\n<p>Для этого способа укажите в файле <code class=\"language-text\">JaicpPoller.kt</code> канал <code class=\"language-text\">ActionsFulfillment.ActionsFulfillmentSDK</code>:</p>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\"><span class=\"token keyword\">package</span> com<span class=\"token punctuation\">.</span>justai<span class=\"token punctuation\">.</span>jaicf<span class=\"token punctuation\">.</span>template<span class=\"token punctuation\">.</span>connections\r\n\r\n<span class=\"token keyword\">fun</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token function\">JaicpPollingConnector</span><span class=\"token punctuation\">(</span>\r\n        templateBot<span class=\"token punctuation\">,</span>\r\n        accessToken<span class=\"token punctuation\">,</span>\r\n        channels <span class=\"token operator\">=</span> <span class=\"token function\">listOf</span><span class=\"token punctuation\">(</span>\r\n            ChatApiChannel<span class=\"token punctuation\">,</span>\r\n            ChatWidgetChannel<span class=\"token punctuation\">,</span>\r\n            TelephonyChannel<span class=\"token punctuation\">,</span>\r\n            ActionsFulfillment<span class=\"token punctuation\">.</span>ActionsFulfillmentSDK\r\n        <span class=\"token punctuation\">)</span>\r\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">runBlocking</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n</br>\n<ul>\n<li>\n<p><code class=\"language-text\">webhook</code> — по указанной ссылке бот будет принимать сообщения платформы. Необходимо конфигурировать для подключения в <a href=\"/1.11.7/docs/ru/platform_ux/jaicf/project_jaicf\">JAICP Cloud</a>.</p>\n<p>Для этого способа укажите в файле <code class=\"language-text\">JaicpServer.kt</code> канал <code class=\"language-text\">ActionsFulfillment.ActionsFulfillmentSDK</code>:</p>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\"><span class=\"token keyword\">package</span> com<span class=\"token punctuation\">.</span>justai<span class=\"token punctuation\">.</span>jaicf<span class=\"token punctuation\">.</span>template<span class=\"token punctuation\">.</span>connections\r\n\r\n<span class=\"token keyword\">fun</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token function\">JaicpServer</span><span class=\"token punctuation\">(</span>\r\n        botApi <span class=\"token operator\">=</span> templateBot<span class=\"token punctuation\">,</span>\r\n        accessToken <span class=\"token operator\">=</span> accessToken<span class=\"token punctuation\">,</span>\r\n        channels <span class=\"token operator\">=</span> <span class=\"token function\">listOf</span><span class=\"token punctuation\">(</span>\r\n            ChatApiChannel<span class=\"token punctuation\">,</span>\r\n            ChatWidgetChannel<span class=\"token punctuation\">,</span>\r\n            TelephonyChannel<span class=\"token punctuation\">,</span>\r\n            ActionsFulfillment<span class=\"token punctuation\">.</span>ActionsFulfillmentSDK\r\n        <span class=\"token punctuation\">)</span>\r\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span>wait <span class=\"token operator\">=</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2>Подключение канала</h2>\n<p>Перейдите в проект JAICF на платформе JAICP. Нажмите на панели управления <em>Каналы</em> > <em>Входящие</em> > <em>Создать канал</em>. В разделе <em>Голосовые Ассистенты</em> выберите <em>Google Ассистент</em>.</p>\n<p>Заполните поля:</p>\n<ul>\n<li><em>Название канала</em> — здесь вы можете сменить имя канала на удобное для вас.</li>\n<li><em>Web app URL</em> — укажите ссылку на веб-приложение <a href=\"/1.11.7/docs/ru/channels/google_assistant/interactive_canvas\">Interactive Canvas</a> при необходимости.</li>\n<li><em>Триггеры</em> — укажите фразы, которые будут ассоциироваться с вашим навыком. Если пользователь произнесет одну из этих фраз, Google Assistant предложит запустить ваш навык.</li>\n</ul>\n<p>Нажмите <em>Создать</em></p>\n<h2>Action Package</h2>\n<p>Скачайте JSON вашего Action Package. Для этого нажмите на ссылку <em>Скачать action.json</em> под названием добавленного канала.</p>\n<h2>Регистрация Action в Actions Console</h2>\n<p>Зайдите в <a href=\"https://console.actions.google.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Action Console</a> и создайте новый проект. Для этого нажмите <em>Add/import Project</em>. Укажите название для проекта, язык и страну. Выберите категорию для проекта из представленных.</p>\n<h2>Активационная фраза</h2>\n<p>На панели управления перейдите в меню <em>Setup</em> > <em>Invocation</em>. В поле <em>Display name</em> укажите активационную фразу для <em>Action</em> вашего бота.</p>\n<p>Также здесь можно выбрать голос, которым ваш бот будет разговаривать с пользователями.</p>\n<h2>Project ID</h2>\n<p>Перейдите в настройки проекта <em>Project settings</em> > скопируйте значение поля <em>Project ID</em>.</p>\n<h2>gactions</h2>\n<p>Скачайте на компьютер программу <a href=\"https://developers.google.com/actions/tools/gactions-cli\" target=\"_blank\" rel=\"noopener noreferrer\">gactions</a> для вашей операционной системы.</p>\n<h2>Загрузка Action Package в проект</h2>\n<p>Запустите консоль (Windows) или терминал (macOS, Linux). Перейдите в папку, в которую вы сохранили программу gations и JSON-файл для Action Package. Выполните команду:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">gactions update --action_package PACKAGE_NAME --project PROJECT_ID</code></pre></div>\n<ul>\n<li>Вместо <code class=\"language-text\">PACKAGE_NAME</code> подставьте имя JSON-файла.</li>\n<li>Вместо <code class=\"language-text\">PROJECT_ID</code> подставьте <em>Project ID</em>, который вы скопировали из настроек проекта.</li>\n</ul>\n<p>Нажмите <code class=\"language-text\">Enter</code>.</p>\n<h2>Разрешение на использование</h2>\n<p>Вы получите от gactions URL, который нужно открыть в любом браузере. Скопируйте URL, а затем вставьте в строку браузера.</p>\n<p class='warn'>Если вы совершаете эти действия не в первый раз, то вы уже авторизованы и URL для авторизации может не выдаваться.</p>\n<p>В браузере откроется страница, на которой вас попросят выбрать аккаунт и дать разрешения на управление проектами. Выберите аккаунт, на котором вы создали проект в Actions Console, нажмите <em>Разрешить</em>.</p>\n<p>Вы увидите авторизационный код, который нужно скопировать и вставить обратно в консоль/терминал, а затем нажать <code class=\"language-text\">Enter</code>.</p>\n<h2>Тестирование</h2>\n<p>Теперь вы можете протестировать Action на устройстве с Google Assistant в том же аккаунте, под которым был создан проект. А также вы можете тестировать бота в симуляторе Action Console.</p>\n<p>Перед тестированием проставьте разрешения на отслеживание действий в вашем Google Assistant. Для этого перейдите в настройки аккаунта выберите пункт <em>Конфиденциальность</em> > <em>Действия в сервисах Google</em>. Проверьте настройки <em>Отслеживания действий</em>, должны быть активны пункты:</p>\n<ul>\n<li>история приложений и веб-поиска;</li>\n<li>информация с устройств;</li>\n<li>история голосового управления.</li>\n</ul>\n<h2>Нативные возможности канала</h2>\n<h3>Хранение пользовательского контекста</h3>\n<p>Google Assistant предоставляет собственный <a href=\"https://developers.google.com/assistant/conversational/storage-user\" target=\"_blank\" rel=\"noopener noreferrer\">менеджер контекста</a> для хранения пользовательских данных.\r\nЧтобы включить его, передайте параметр <code class=\"language-text\">useDataStorage</code> при указании канала:</p>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\"><span class=\"token keyword\">fun</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token function\">JaicpServer</span><span class=\"token punctuation\">(</span>\r\n        botApi <span class=\"token operator\">=</span> templateBot<span class=\"token punctuation\">,</span>\r\n        accessToken <span class=\"token operator\">=</span> accessToken<span class=\"token punctuation\">,</span>\r\n        channels <span class=\"token operator\">=</span> <span class=\"token function\">listOf</span><span class=\"token punctuation\">(</span>\r\n            ActionsFulfillment<span class=\"token punctuation\">.</span><span class=\"token function\">ActionsFulfillmentSDK</span><span class=\"token punctuation\">(</span>useDataStorage <span class=\"token operator\">=</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span>\r\n        <span class=\"token punctuation\">)</span>\r\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">start</span><span class=\"token punctuation\">(</span>wait <span class=\"token operator\">=</span> <span class=\"token boolean\">true</span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p class='warn'>Запросы, приходящие из Google Assistant, будут содержать контекст пользователя.</p>\n<h3>Нативные реакции</h3>\n<p>JAICF предоставляет универсальные реакции, доступные во всех каналах, а также реакции, уникальные для Google Assistant.\r\nЧтобы использовать специфические реакции Google Assistant, используйте <code class=\"language-text\">reactions.actions</code>, например:</p>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\">action <span class=\"token punctuation\">{</span>\r\n    reactions<span class=\"token punctuation\">.</span><span class=\"token function\">say</span><span class=\"token punctuation\">(</span><span class=\"token string-literal singleline\"><span class=\"token string\">\"Привет!\"</span></span><span class=\"token punctuation\">)</span>\r\n    reactions<span class=\"token punctuation\">.</span>actions<span class=\"token operator\">?</span><span class=\"token punctuation\">.</span><span class=\"token function\">addSimpleResponse</span><span class=\"token punctuation\">(</span><span class=\"token string-literal singleline\"><span class=\"token string\">\"display text\"</span></span><span class=\"token punctuation\">,</span> <span class=\"token string-literal singleline\"><span class=\"token string\">\"ssml of text\"</span></span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>Вы также можете напрямую обратиться к объекту с ответом через <code class=\"language-text\">reactions.actions.response</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"kotlin\"><pre class=\"language-kotlin\"><code class=\"language-kotlin\">action <span class=\"token punctuation\">{</span>\r\n    <span class=\"token keyword\">val</span> builder <span class=\"token operator\">=</span> reactions<span class=\"token punctuation\">.</span>actions<span class=\"token operator\">?</span><span class=\"token punctuation\">.</span>response<span class=\"token operator\">?</span><span class=\"token punctuation\">.</span>builder\r\n    builder<span class=\"token operator\">?</span><span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span><span class=\"token string-literal singleline\"><span class=\"token string\">\"Hello\"</span></span><span class=\"token punctuation\">)</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h2>Ограничения канала</h2>\n<p>При разработке сценария для Google Assistant учитывайте следующие ограничения канала:</p>\n<ol>\n<li>Каждый ответ должен содержать хотя бы один текстовой элемент. Для этого нужно использовать реакцию <code class=\"language-text\">say</code>.</li>\n<li>Ответ может содержать максимум 1 изображение, аудио или другой медиаконтент.</li>\n<li>Ответ с изображением, аудио или медиаконтентом должен содержать кнопки. Для этого воспользуйтесь реакцией <code class=\"language-text\">buttons</code>.</li>\n</ol>\n<p class='tip'>При отправке изображения и текста порядок, в котором они будут выведены, может отличаться от порядка вызовов реакций.</p>","frontmatter":{"title":"","description":null},"headings":[{"value":"Подключение Google Assistant для проекта на JAICF"}]}},"pageContext":{"slug":"/docs/ru/channels/google_assistant/jaicf/","previous":{"fields":{"slug":"/docs/ru/channels/iDigital/whatsapp/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/channels/google_assistant/interactive_canvas/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}