Intent сразу же по умолчанию принимает значение FallbackIntent, даже с невероятно конкретным высказыванием.

высказывания
используемый слот

экран тестирования

цель в моей лямбда-функции:

var phoneNumber;    
"getPhoneNumberIntent": function() {
    phoneNumber = this.event.request.intent.slots.phoneNumber.value;
    if (getLength(phoneNumber) === 10) {
        this.response.speak('I heard <say-as interpret-as="telephone"> ' + phoneNumber + '</say-as>. Is this the correct number?').listen();
        this.emit(':responseReady');
    } else {
        console.log(phoneNumber);
        this.response.speak('That is not a valid phone number. Please try again.').listen();

    }
},

Когда я набираю невероятно конкретное высказывание, единственное, что в выходном JSON — это null. и на входе правильное намерение даже не вызывалось. Я не видел проблемы, похожей на мою, на сайте, я искал вдоль и поперек. Любая помощь или отзывы приветствуются.


person Jacob Houston    schedule 08.08.2018    source источник
comment
Каково имя намерения, которому соответствует телефонный номер слота, и указан ли обработчик резервного намерения как самый последний обработчик намерения, который будет опробован в вашей кодовой базе. Это должно быть так, потому что это всегда будет true, поэтому обработчик, который вы пытаетесь нажать, должен сообщить true до отката.   -  person Chuck LaPress    schedule 09.08.2018
comment
Наконец, в тестовой консоли введите номер один, один, один, один, один, один, один, один, один, один, а не 1111111111, он не интерпретирует целые числа как произнесенные числа.   -  person Chuck LaPress    schedule 09.08.2018


Ответы (1)


Используйте предопределенный AMAZON.NUMBER в качестве типа слота для phoneNumber.

При тестировании чисел в Alexa Test Simulator представляйте их в виде слов.

Пример: номер телефона девять восемь семь шесть пять четыре три два один ноль

А для сокращений используйте точку "."

Пример: код a.w.e.

person johndoe    schedule 09.08.2018