Как написать навык Alexa, который не отображает ни одной карты - PullRequest
0 голосов
/ 07 июля 2019

Я пишу навык для использования на Amazon Fire TV Cube .Умение имеет простые команды.Например, « Alexa, попросите Cinema (название навыка) установить громкость 50 ».Обработчик умений отправляет простую команду HTTP GET на сервер и возвращает простой ответ .speak « установка громкости на 50 ».

Моя проблема заключается в том, что он также отображает карту сИмя умения, которое остается на несколько секунд.В основном это говорит: « Cinema (название навыка). Чтобы выйти, попробуйте« Alexa, выход. ». Очевидно, что если я смотрю фильм, это раздражает. Я смотрел всюду в документации Alexa, но это только говориткак настраивать и писать более приятные карты, но не как не отображать что-либо.

Мой вопрос заключается в том, есть ли что-то для вызова другого метода или других параметров для ResponseBuilder, чтобы он только говорил и не говорилпоказать что-либо.

Это код обработчика навыка:

const SetVolumeIntentHandler = {
    canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'IntentRequest'
            && handlerInput.requestEnvelope.request.intent.name === 'SetVolumeIntent';
    },
    handle(handlerInput) {
        const my_vol = handlerInput.requestEnvelope.request.intent.slots.volume.value;
        const speechText = 'setting volume to ' + my_vol;
        httpGet(my_ip, my_port, '/process_command?command=set_volume&volume=' + my_vol, (theResult) => {});
        return handlerInput.responseBuilder
            .speak(speechText)
            .getResponse();
    }
};

httpGet - это функция, которая выполняет то, на что это похоже. Обратите внимание, что она выполняет свою работу (громкость меняется). Мойпроблема просто в том, как остановить отображение чего-либо и просто выполнить работу в фоновом режиме.

Это вывод JSON, который я получаю в тестовой среде Alexa:

{
    "body": {
        "version": "1.0",
        "response": {
            "outputSpeech": {
                "type": "SSML",
                "ssml": "<speak>setting volume to 50</speak>"
            },
            "type": "_DEFAULT_RESPONSE"
        },
        "sessionAttributes": {},
        "userAgent": "ask-node/2.3.0 Node/v8.10.0"
    }
}

Любая помощьбудет высоко ценится.

1 Ответ

0 голосов
/ 09 июля 2019

У меня нет Fire TV Cube , как у вас, но вот мой тест результат в симуляторе medium hub simulator capture

и это соответствующий код.

handle(handlerInput) {
        return handlerInput.responseBuilder
            .speak(`Hello World!`)
            .withSimpleCard(null)
            .getResponse();
}

Пожалуйста, проверьте его на своем пожарном телевизоре и обновите статус, так как я действительно с нетерпением жду этого.Спасибо.

...