Могу ли я определить, был ли запрос Alexa запущен процедурой или пользователем? - PullRequest
1 голос
/ 16 января 2020

У меня есть необходимость различать явный запрос и запрос от подпрограммы.

Вот пример. Допустим, я контролирую умный свет. Свет может обнаружить занятость.

Если пользователь входит в комнату и говорит: включите свет, он проверит занятость и выключится. Однако, если пользователь создает запланированную процедуру, чтобы включить свет, мы должны отключить проверку занятости.

В документации я не вижу ничего для директивы TurnOn, которая указала бы источник запроса.

Есть ли индикатор, который я пропустил? Могу ли я добавить какой-нибудь индикатор? Или кто-то использовал другой подход для достижения sh подобной функциональности?

1 Ответ

1 голос
/ 19 января 2020

Официальный ответ от Amazon заключается в том, что вы не можете увидеть разницу. Вот недавний ответ от форума разработчиков Amazon на Amazon: https://forums.developer.amazon.com/questions/218340/skills-invoking-routines.html

Тем не менее, вы, как правило, увидите дополнительные поля в запросе на запуск, если он запускается из подпрограммы:

"request": {
    "type": "LaunchRequest",
    "requestId": "amzn1.echo-api.request.abunchofnumbers",
    "timestamp": "2020-01-18T22:27:01Z",
    "locale": "en-US",
    "target": {
        "path": "AMAZON.Launch",
        "address": "amzn1.ask.skill.abunchofnumbers"
    },
    "metadata": {
        "referrer": "amzn1.alexa-speechlet-client.SequencedSimpleIntentHandler"
    },
    "body": {},
    "payload": {},
    "targetURI": "alexa://amzn1.ask.skill.abunchofnumbers/AMAZON.Launch",
    "launchRequestType": "FOLLOW_LINK_WITH_RESULT",
    "shouldLinkResultBeReturned": true
}

Поля target, metadata, body, payload, targetURI и launchRequestType обычно не обнаруживаются, когда пользователь запускает навык своим голосом. ОДНАКО, я не верю, что существование этих полей является уникальным для запуска Alexa Routine. Я подозреваю, что вы найдете их, если умение было запущено, когда, например, Алекса спросила: «Эй, так как вам нравится умение Слепая обезьяна, вы хотели бы попробовать Слепую свинью?» и вы говорите "да".

...