Хорошо.Я чувствую, что, возможно, есть более простой способ сделать это, но я поэкспериментировал с документацией по Twilio и до сих пор не нашел ответа.Итак, я объясню, что мне нужно здесь.
Я использую Twilio Autopilot и в действии у меня есть это:
{
"collect" : {
"name" : "ask_questions",
"questions": [
{
"question" : "Do you want me to send you a link via SMS?",
"name" : "send_link_question",
"type" : Twilio.YES_NO,
}
],
"on_complete": {
"redirect": redirect_task
}
}
}
В таблице стилей для помощника у меня есть следующее, которое в основном является шаблоном по умолчанию на веб-странице Twilio.
{
"style_sheet": {
"voice": {
"say_voice": "Polly.Matthew"
},
"collect": {
"validate": {
"on_failure": {
"messages": [
{
"say": "I'm sorry, can you please say that again"
},
{
"say": "hmm I still did'nt catch that, can you please repeat"
},
{
"say": "Let's give it one more try. Please say it one more time"
}
],
"repeat_question": false
},
"on_success": {
"say": ""
},
"max_attempts": 4
}
}
}}
Если я хорошо понял в документации, поскольку в первом "collect" не определено on_failure , поведение по умолчанию должно быть таким, какое есть в таблице стилей (это гдеЯ верю, что могу ошибаться).И так как «allow_values» отсутствует, проверка выполняется в соответствии с типом вопроса (в данном случае Twilio.YES_NO)
Однако, когда я набираю любой мусор, скажем «сумасшедшая обезьяна», этоне проверен, чтобы проверить, является ли тип ответа «да» или «нет», и ничего не происходит (я не вижу нет «извините, не могли бы вы сказать это снова»).Я делаю все это неправильно?