Google Actions: выход из разговора с помощью Actions SDK не вызывает actions.intent.CANCEL - PullRequest
0 голосов
/ 25 января 2019

Я использую действия SDK для создания выполнений. Я использую функции Google для того же. У меня есть следующее в action.json

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "App"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            . . .
          ]
        }
      }
    }
  ],
  "conversations": {
    "App": {
      "name": " ... ",
      "url": " ...",
      "fulfillmentApiVersion": 2
    }
  },
  "locale": "en"
}

В коде функции я заметил, что пользовательский код намерения actions.intent.CANCEL не вызывается, когда пользователь говорит / печатает exit или Goodbye. В эмуляторе появляется только <earcon>. Код JS приведен ниже:

app.intent('actions.intent.MAIN', (conv) => {
  conv.ask('Welcome to ...');
});

app.intent('actions.intent.TEXT', (conv, input) => {
  // the main logic of the application is here
  });

app.intent('actions.intent.CANCEL', (conv) => {
  conv.close(`Okay, let's try this again later.`); 
  // this code does not get called
});

Что-то должно быть установлено в action.json для отмены намерения работать

1 Ответ

0 голосов
/ 25 января 2019

Да, вам нужно добавить что-то в ваш action.json, чтобы он отправил вам намерение ОТМЕНЫ.В свой существующий объект conversations добавьте атрибут inDialogIntents с массивом объектов, дающих имя намерения CANCEL.Как то так:

"conversations": {
  "App": {
    "name": "...",
    "url": "...",
    "fulfillmentApiVersion": 2
    "inDialogIntents": [
      {
        "name": "actions.intent.CANCEL"
      }
    ]
  }
}
...