Dodatkowa weryfikacja użytkownika umożliwia Ci włączenie do połączeń głosowych zabezpieczeń drugiego składnika. poleceń. Dzięki temu możesz zwiększyć poziom zabezpieczeń w przypadku określonych działań, na przykład: wyłączyć kamerę monitoringu lub otworzyć drzwi. Dodatkowa weryfikacja użytkownika to nie są powiązane z żadną cechą urządzenia, co pozwala określić, kiedy Google Assistant podejmuje wyzwanie. Możesz na przykład wybrać aby zadać wyzwanie dla cechy OnOff dla: kamera monitoringu, ale nie będzie wyświetlać urządzenia zabezpieczającego OnOff cechę światła. Możesz też mieć Assistant wyzwalania wyzwań w określonych sytuacjach przy wykonywaniu tego samego działania. Na przykład: może poprosić użytkownika Assistant o wysłanie prośby o test zabezpieczający otworzyć drzwi, jeśli pilot NFC nie znajduje się w jego pobliżu, ale nie uruchomić wyzwanie, jeśli jest w nim obecna pilot.
Assistant może wyświetlać 2 typy wyzwań:
potwierdzenie lub osobisty numer identyfikacyjny (PIN). Powoduje to dodanie
blokada testu zabezpieczającego wysyłane do użytkownika QUERY
i intencje EXECUTE
zostały wysłane z adresu Assistant z powrotem do Twojego działania i akceptuje błąd challengeNeeded
. Assistant następnie wysyła żądanie intencji do
dane o wyzwaniu w bloku wyzwania. Następnie możesz:
zweryfikuj dane testu zabezpieczającego w celu określenia, czy użytkownik udzielił odpowiednich zabezpieczeń
.
Assistant używa okna do uruchomienia wyzwania, ale jeśli Ty używaj aplikacji Assistant na platformach innych niż głosowe, oraz korzystaj z kodu PIN i potwierdzania tożsamości na ekranie.
Obsługiwane typy urządzeń
Dodatkowa weryfikacja użytkownika jest obsługiwana na wszystkich typach urządzeń.
Obsługiwane traits urządzeń
Dodatkowa weryfikacja użytkownika jest obsługiwana w przypadku wszystkich cech urządzenia.
Obsługiwane typy testów zabezpieczających
Oto obsługiwane typy dodatkowych testów zabezpieczających weryfikację użytkownika:
- Brak testu – żądanie i odpowiedź, które nie zawierają tagu Dodatkowa weryfikacja użytkownika.
- ackNeeded – dodatkowa weryfikacja użytkownika, która wymaga jednoznacznego uznania (tak lub nie) oraz mogą też używać stanów cech jako aby przesłać opinię. Ten typ wyzwania nie jest zalecany ze względów bezpieczeństwa urządzeń i cech.
- pinNeeded – dodatkowa weryfikacja użytkownika, która wymaga osobisty numer identyfikacyjny (PIN), który doskonale sprawdza się w przypadku urządzeń zabezpieczających. i cech.
Brak wyzwania
Ten przykład pokazuje pomyślne żądanie i odpowiedź EXECUTE
bez parametru
za zapalenie światła.
Użytkownik | Włącz światła. |
Google Assistant | OK, włączam 3 światła. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.OnOff", "params": { "on": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "on": true, "online": true } }] } }
ackNeeded
Dodatkowe uwierzytelnianie potwierdzenia użytkownika, które może używać wielu stanów do uwierzytelniania danej cechy lub prostego uwierzytelnienia.
Dostępne są te typy wyzwań ackNeeded
:
Wymagane proste potwierdzenie
Ten przykład pokazuje proste żądanie i odpowiedź z wyzwaniem ackNeeded
przyciemnienie światła i potwierdzenie przyciemnienia.
Użytkownik | Przyciemnij światło w salonie. |
Google Assistant | Przyciemniam światło w salonie. Na pewno? |
Użytkownik | Tak. |
Google Assistant | Przyciemniam światło w salonie. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS" }] } }
Potrzebne ze stanami cech
Dodatkowe uwierzytelnianie potwierdzenia użytkownika, które może używać stanów w przypadku
cechę.
Na przykład, jeśli pracujesz z
Cecha TemperatureSetting i obie te cechy
Wartości thermostatMode
i thermostatTemperatureSetpoint
są ustawione,
Assistant może zapytać Czy na pewno chcesz ustawić ogrzewanie
na klimatyzatorze do 28 stopni?
Możesz też dodać stan w odpowiedzi, Assistant wykonuje określone działanie na podstawie danej użytkownika.
Te cechy i stany obsługują stan ackNeeded
ze stanami cech. O
lista konkretnej cechy wskazuje, że obsługiwane są wszystkie jej stany.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Ten przykład przedstawia żądanie i odpowiedź z testem ackNeeded
, który
używa stanu cech. Przełącza tryb klimatyzacji na ogrzewanie i ustawia
do 28 stopni. Następnie Assistant pyta użytkowników
aby potwierdzić włączenie ogrzewania i ustawić temperaturę na 28 stopni
stopni, ponieważ wartość thermostatTemperatureSetpoint
o wartości 28
jest zwracana jako stan
w odpowiedzi.
Użytkownik | Ustaw tryb klimatyzacji na ogrzewanie. |
Google Assistant | Czy na pewno chcesz ustawić ogrzewanie klimatyzatora na 28 stopni? stopnie? |
Użytkownik | Tak. |
Google Assistant | Ustawiam ogrzewanie w klimatyzatorze na 28 stopni. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 } }] } }
pinNeeded
Test pinNeeded
jest zalecany dla urządzeń zabezpieczających.
Ten przykład pokazuje początkowe żądanie i odpowiedź z blokiem pinNeeded
do wyzwania. Przykład zwraca odpowiedź z zadaniem pinNeeded
, więc
Assistant prosi o kod PIN. W tym momencie użytkownik może
podaj nieprawidłowy lub prawidłowy kod PIN.
Przykładowe żądanie i odpowiedź w przypadku nieprawidłowego lub prawidłowego kodu PIN:
.Użytkownik | Otwórz drzwi. |
Google Assistant | Czy możesz podać mi swój kod zabezpieczający? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
Błędny kod PIN
Ten przykład pokazuje żądanie i odpowiedź z elementem challengeFailedPinNeeded
do wyzwania. Tego wyzwania należy użyć po pierwszym wyzwaniu pinNeeded
niepowodzenie.
Gdy zwracany jest typ challengeFailedPinNeeded
,
Assistant jeszcze raz prosi o kod zabezpieczający. Jeśli użytkownik
wykonuje zbyt wiele nieudanych prób, możesz zwrócić tooManyFailedAttempts
odpowiedź na żądanie błędu. Zobacz Odpowiedzi na błędy.
Użytkownik | 333222 |
Google Assistant | Kod zabezpieczający jest nieprawidłowy. Czy możesz podać mi swój kod zabezpieczający? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333222" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "challengeFailedPinNeeded" } }] } }
Prawidłowy kod PIN
Ten przykład pokazuje żądanie i odpowiedź na prawidłowy kod PIN.
Użytkownik | 333444 |
Google Assistant | Otwieram drzwi. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333444" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "isLocked": false, "isJammed": false } }] } }
Użytkownik | Przyciemnij światło w salonie. |
Google Assistant | Czy możesz podać mi swój kod zabezpieczający? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
Odpowiedzi na błędy
Oto niektóre kody błędów, które mogą wystąpić wraz z udzielaniem odpowiedzi:
- tooManyFailedAttempts – zbyt wiele nieudanych prób. Aby to zrobić, otwórz aplikację na urządzeniu.
- pinIncorrect – kod zabezpieczający jest nieprawidłowy.
- userCancelled – OK
Zobacz pełną listę błędów i wyjątków.