Действия в Google SDK: отвечать без регистрации обработчиков - PullRequest
0 голосов
/ 30 июня 2018

Я работаю над приложением для Google Home и помощником Google.

Я использую экспресс в качестве веб-сервера для полного заполнения. В большинстве случаев я вручную проверяю запрос, чтобы решить, что ответить, и вручную отправляю JSON в качестве экспресс-ответа. В некоторых случаях для отправки ответа я использую action-on-google SDK, который настроен следующим образом.

const { DialogflowApp } = require("actions-on-google");
const assistant = new DialogflowApp({
    request: request,
    response: responseToAssistant
});

В версии 1.11 Actions-on-google SDK я также мог использовать assistant.tell('Thanks for talking to me!'); для отправки ответа (вместо ручного JSON).

Я обновился до версии 2.2. Однако в этой версии похоже, что мне необходимо зарегистрировать обработчики для всех намерений, чтобы использовать action-on-google SDK для отправки ответа.

app.intent('Default Welcome Intent', conv => { // (registering intent)
  conv.close('Thanks for talking to me!'); 
});

Однако для этого мне пришлось бы реструктурировать весь проект. Можно ли как-нибудь проверить запрос вручную (без регистрации всех намеренных обработчиков) и использовать action-on-google SDK для отправки ответа?

1 Ответ

0 голосов
/ 30 июня 2018

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

app.fallback(conv => {
  conv.ask("Everything else is handled here!");
});

Если вы хотите установить необработанный JSON в этих случаях, вы сможете вызвать метод conf.json() с JSON, который вы хотите установить.

...