Это вторая часть серии о создании кроссплатформенных голосовых приложений с помощью Voxa.

В предыдущей статье я кратко объяснил, что вы можете делать с Voxa, инструментом voxa-cli и голосовым приложением, которое мы собираемся создать в конце этой серии.

В этой статье мы собираемся создать Alexa Skills и Google Actions в ваших аккаунтах. Мы собираемся создать электронные таблицы, которые будут управлять частью VUI (голосового интерфейса пользователя) приложения.

Это очень полезно, когда вы работаете в команде, а другие могут сотрудничать, чтобы улучшить ваш VUI. Итак, приступим!

Прежде всего, нам нужно создать проект с помощью voxa-cli. Вы можете найти пакет npm здесь. Откройте окно терминала на компьютере и введите:

npm i -g voxa-cli

Эта команда установит последнюю версию voxa-cli локально. Когда команда завершится, вы можете ввести:

voxa create

Это поможет вам шаг за шагом настроить ваш проект с некоторыми опциями:

Вам будет предложено указать название вашего приложения, имя разработчика, платформы и язык программирования (JavaScript или TypeScript). Некоторые из последних вопросов связаны с электронными таблицами: модель взаимодействия, публикация информации и функция canFulfill.

Мы также собираемся интегрировать наше приложение с аналитикой DynamoDB и Dashbot, поэтому обязательно ответьте Да на эти вопросы.

Теперь, когда наш базовый код создан, давайте проверим его! Вы можете ввести в свой терминал:

cd quick-maths; code .

Это оставит текущую папку в корне вашего проекта и откроет ее с помощью Visual Studio Code.

Запустите npm install или yarn install, чтобы создать папку node_modules. В нашем случае мы будем использовать yarn.

В папку src/app мы обычно добавляем логику приложения. Мы собираемся поработать с этой папкой в ​​следующей статье.

Файл src/app/index.js - это отправная точка приложения. Как мы объясняли в части 1, Voxa - это среда MVC, поэтому мы рассмотрим эти ключевые части в следующих файлах:

  • Модель: файл src/app/model.js . В каждом запросе к вашему проекту у вас будет доступ к переменной model, где вы можете вызывать все функции и получать доступ к переменным модели.
  • Просмотры: файл src/app/views.json . Если вы используете voxa-cli, этот путь изменится на src/languageResources, где инструмент загрузит VIEWS из электронной таблицы модели взаимодействия, включая все языковые стандарты. Если вы определяете переменные для динамического содержимого, вы можете определить эти переменные в файле src/app/variables.js. Значения этих переменных будут взяты из модели (файл model.js).
  • Контроллеры: папка src/app/states. Вы можете определить все обработчики намерений и состояний с помощью функций voxaApp.onIntent и voxaApp.onState .

Я буду отправлять свои изменения в этот репозиторий в разных ветках: part2, part3, part4 и part5:

В папке src/config вы определяете различные среды своего приложения.

Voxa-cli добавляет два файла среды: производственный и промежуточный. Вы можете определить среду, с которой хотите работать, задав для переменной среды NODE_ENV промежуточную, рабочую или желаемую среду.

Voxa-cli также позволяет загружать намерения, высказывания и просмотры из электронной таблицы.

Существует также еще одна электронная таблица, в которой вы можете определить всю информацию метаданных для ваших навыков Alexa: название навыка, разрешения, интерфейсы, описания, ключевые слова для изображений (URL) и т. Д.

Для этого приложения я уже подготовил две общедоступные таблицы, и вы можете скопировать их на свой Google Диск.

Следуйте этому, чтобы получить доступ к электронной таблице публикации информации.

В таблице с информацией о публикации вы найдете три важные вкладки:

  • SKILL_GENERAL_INFORMATION: Определите всю общую информацию о метаданных для вашего навыка Alexa.
  • SKILL_ENVIRONMENTS_INFORMATION: Определите конечные точки для Alexa и Dialogflow.
  • SKILL_LOCALE_INFORMATION@en-US: Определите информацию для конкретного региона, такую ​​как изображения, описания, ключевые слова или примеры фраз. Вы также можете создать другие вкладки для других языков, вам просто нужно изменить суффикс языкового стандарта, например: @en-GB, @de-DE, @es-ES или @it-IT.

Откройте таблицу модели взаимодействия.

В таблице модели взаимодействия вы найдете четыре важных вкладки:

  • INTENT: Определите все намерения с их слотами и типами. Также есть столбец для определения событий Dialogflow, например GOOGLE_ASSISTANT_WELCOME или actions_intent_CANCEL. Вы также можете добавить намерения, специфичные для той или иной платформы, установить, будет ли намерение startIntent (Dialogflow) или может автоматически использовать CanFulfillIntent интерфейс (Alexa).
  • UTTERANCES_MAIN: Определите все высказывания для каждого намерения, которое вы определили на вкладке INTENT.
  • VIEWS_FILE@en: Определите все ответы своего голосового приложения. Вы можете определить другие языковые стандарты, как на вкладке SKILL_LOCALE_INFORMATION в электронной таблице с информацией о публикации: @de, @it, @es, @ru-RU и т. Д.
  • INVOCATION_NAMES: Определите имена вызовов для каждой вашей среды. В нашем случае мы установили быстрые математические вычисления для производственной среды и быстрые математические вычисления для промежуточных.

Теперь нам нужно изменить файл interaction.json, указав URL-адреса электронных таблиц. Взгляните на эту суть, чтобы увидеть, как должен выглядеть ваш файл:

Чтобы скачать эти ресурсы, нам понадобится ключ от Google Cloud. Вы можете проверить репозиторий GitHub и следовать инструкциям по созданию проекта Google Cloud.

Когда вы загрузите ключевой файл, скопируйте его в корневую папку вашего голосового проекта и назовите его client_secret.json. Теперь вы можете запустить:

yarn interaction

Это загрузит ваши высказывания и ответы. Вы увидите три новые папки:

  • /src/content: Другой контент, загруженный с помощью voxa-cli. Например, {environment}-canfulfill-intents.json файлы.
  • /src/languageResources: просмотры загружены из электронной таблицы.
  • /speech-assets: Модель взаимодействия для Alexa и Dialogflow.

Вы можете дважды проверить прогресс проекта в этой ветке репозитория, который я использую для отправки своих изменений, следуя пошаговым инструкциям.

Пришло время создать в ваших учетных записях Навыки и Действия. Перейдите в Консоль разработчика Amazon и создайте навык под названием Quick Maths. И в Консоли действий создайте действие Quick Maths.

Для Alexa перейдите на вкладку Сборка и в меню JSON Editor скопируйте /speech-assets/alexa/en-US/{environment}-interaction.json содержимое файла, в зависимости от среды, которую вы хотите. настроить в первую очередь.

Если вы настроили ASK CLI, вы можете запустить эту команду:

ask api update-model -s {SKILL_ID} -f speech-assets/alexa/en-US/production-interaction.json -l en-US

Чтобы обновить метаданные навыков, вы можете запустить

ask api update-skill -s {SKILL_ID} -f speech-assets/alexa/production-manifest.json

Для Dialogflow перейдите в меню Действия, нажмите кнопку СТРОИТЬ и перейдите в консоль Dialogflow.

Вы можете заархивировать содержимое пути /speech-assets/dialogflow/{environment}/ и загрузить его в Dialogflow. Перейдите к кнопке настройки ⚙️ и щелкните вкладку Экспорт и импорт.

Нажмите кнопку ВОССТАНОВИТЬ ИЗ ZIP и перетащите zip-файл из своего проекта. Наконец, перейдите в меню Интеграции, нажмите кнопку Google Assistant и нажмите кнопку ТЕСТ.

Связь с аккаунтом Alexa

Начнем с Алексы. Перейдите на портал разработчика, в правом верхнем углу страницы есть кнопка с инициалами имени вашей учетной записи, нажмите на нее, а затем выберите Настройки.

В этом сообщении из блога Alexa вы увидите подробные пошаговые инструкции о том, как создать LoginWithAmazon конфигурацию для связывания аккаунтов.

Перейдите к конфигурации вашего навыка в консоли портала разработчика. В меню СВЯЗЬ УЧЕТНОЙ ЗАПИСИ включите Связывание учетной записи и вставьте следующие значения:

Authorization URI: https://www.amazon.com/ap/oa
Access Token URI: https://api.amazon.com/auth/o2/token
ClientID: from LoginWithAmazon
ClientSecret: from LoginWithAmazon
Client Authentication Scheme: HTTP Basic
Scopes: profile, postal_code
Domain list: amazon.com, na.account.amazon.com

Вход в Google

Перейдите к конфигурации вашего действия в консоли действий. В меню Связывание учетной записи выполните следующие действия:

  • Создание учетной записи: выберите Да, разрешите пользователям регистрировать новые учетные записи с помощью голоса.
  • Тип связи: Google Sign In.

Нажмите Сохранить.

Финал

Выполнив эти два шага, мы завершили интеграцию привязки учетных записей для наших голосовых приложений. В следующей статье мы создадим логику игры и соревнования.

Спасибо за прочтение! Обязательно ознакомьтесь со следующими статьями.