Этот вопрос был вызван нашим предыдущим вопросом о требованиях к проверке намерений QUERY, найденных здесь.
Хотя в настоящее время мы не можем реализовать запрос подробного состояния многих наших устройств, мы хотели бы должным образом реагировать на попытки запроса намерений QUERY. В частности: ответ с ошибкой notSupported кажется уместным. Для обычного пользовательского запроса, такого как "Горит ли рабочий стол?", это работает так, как мы и ожидали:
"Этот режим недоступен для настольной лампы".
Однако при попытке выполнения относительных операций, таких как «Приглушить свет на рабочем столе», тот же формат ответа приводит к следующему ответу Google Home:
"Обнаружена неизвестная ошибка настольной лампы".
В обоих сценариях возвращается один и тот же ответ json:
{
"requestId": "****************",
"payload": {
"devices": {
"********": {
"errorCode": "notSupported"
}
}
}
}
Мы проверили, подделав ответ на запрос с фактическим состоянием яркости, что намерение продолжает работать правильно после возврата QUERY; получение намерения EXECUTE для изменения яркости.
Мы не уверены, почему ошибка notSupported в этом случае обрабатывается иначе; возможно, мы неправильно понимаем, как должен быть отформатирован ответ об ошибке на этот тип ЗАПРОСА? Если да, то как мы можем отличить намерение QUERY, за которым следует намерение EXECUTE, от одиночного намерения QUERY? Возможно, есть что-то еще, что мы упустили?
Спасибо за чтение.