Verifikasi pengguna sekunder memungkinkan Anda menambahkan keamanan faktor kedua ke perintah suara. Tindakan ini memungkinkan Anda menambahkan keamanan tambahan untuk tindakan tertentu seperti menonaktifkan kamera keamanan atau membuka pintu. Verifikasi pengguna sekunder tidak terikat dengan karakteristik perangkat tertentu yang memungkinkan Anda memutuskan kapan Google Assistant akan memberikan tantangan. Misalnya, Anda dapat memilih untuk mengeluarkan tantangan untuk karakteristik OnOff untuk kamera keamanan, tetapi tidak mengeluarkan tantangan untuk karakteristik OnOff untuk lampu. Anda juga dapat memiliki Assistant yang memberikan tantangan dalam situasi tertentu untuk tindakan yang sama. Misalnya, Anda dapat meminta Assistant untuk mengeluarkan permintaan tantangan guna membuka pintu jika fob kunci NFC tidak berada di sekitar pintu tersebut, tetapi tidak mengeluarkan tantangan jika fob kunci ada.
Assistant dapat mengeluarkan dua jenis tantangan -
konfirmasi eksplisit atau nomor identifikasi pribadi (PIN). Tindakan ini akan menambahkan
blok tantangan ke intent QUERY
dan EXECUTE
yang dikirim dari Assistant kembali ke tindakan Anda dan menerima respons error
challengeNeeded
. Assistant kemudian akan mengirim kembali permintaan intent ke
tindakan Anda dengan data tantangan di blok tantangan. Kemudian, Anda dapat
memvalidasi data tantangan untuk menentukan apakah pengguna memberikan respons keamanan
yang benar.
Assistant menggunakan dialog untuk mengeluarkan tantangan, tetapi jika Anda menggunakan Assistant di platform non-suara, PIN dan konfirmasi dilakukan di layar.
Jenis perangkat yang didukung
Verifikasi tambahan oleh pengguna didukung di semua jenis perangkat.
Trait perangkat yang didukung
Verifikasi pengguna sekunder didukung untuk semua karakteristik perangkat.
Jenis verifikasi login yang didukung
Berikut adalah jenis tantangan verifikasi sekunder pengguna yang didukung:
- Tantangan tidak ada - Permintaan dan respons yang tidak menggunakan Tantangan verifikasi pengguna sekunder.
- ackNeeded - Verifikasi pengguna sekunder yang memerlukan konfirmasi eksplisit (ya atau tidak) dan juga dapat menggunakan status ciri sebagai masukan respons. Jenis tantangan ini tidak direkomendasikan untuk perangkat dan karakteristik keamanan.
- pinNeeded - Verifikasi pengguna sekunder yang memerlukan nomor pengenal pribadi (PIN), yang ideal untuk perangkat dan fitur keamanan.
Tidak ada tantangan
Contoh ini menunjukkan permintaan dan respons EXECUTE
yang berhasil tanpa
tantangan untuk menyalakan lampu.
Pengguna | Nyalakan lampu. |
Google Assistant | Oke, menyalakan 3 lampu. |
{ "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
Autentikasi konfirmasi pengguna sekunder yang dapat menggunakan beberapa status untuk sebuah karakteristik atau autentikasi konfirmasi sederhana.
Ada jenis tantangan ackNeeded
berikut:
ackNeeded sederhana
Contoh ini menunjukkan permintaan dan respons sederhana dengan tantangan ackNeeded
untuk meredupkan lampu dan konfirmasi untuk meredupkan lampu.
Pengguna | Redupkan lampu ruang tamu. |
Google Assistant | Meredupkan lampu ruang tamu. Yakin? |
Pengguna | Ya. |
Google Assistant | Meredupkan lampu ruang tamu. |
{ "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" }] } }
ackNeeded dengan status sifat
Autentikasi konfirmasi pengguna sekunder yang dapat menggunakan status untuk
sifat.
Misalnya, jika Anda menggunakan
sifat TemperatureSetting dan
thermostatMode
serta thermostatTemperatureSetpoint
ditetapkan,
Assistant dapat bertanya Apakah Anda yakin ingin menyetel pemanas AC
ke 28 derajat?
Anda juga dapat menyertakan status dalam respons agar Assistant melakukan tindakan tertentu berdasarkan permintaan tertentu.
Ciri dan status berikut mendukung ackNeeded
dengan status ciri. Listingan
fitur tertentu menunjukkan bahwa semua statusnya didukung.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Contoh ini menunjukkan permintaan dan respons dengan tantangan ackNeeded
yang
menggunakan status ciri. Tindakan ini akan mengubah mode AC ke panas dan menetapkan
suhu ke 28 derajat. Kemudian, Assistant meminta pengguna
untuk mengonfirmasi pengaktifan pemanas dan menetapkan suhu ke 28
derajat karena thermostatTemperatureSetpoint
dari 28
ditampilkan sebagai status
dalam respons.
Pengguna | Setel mode AC ke panas. |
Google Assistant | Yakin ingin menyetel penghangat di AC ke 28 derajat? |
Pengguna | Ya. |
Google Assistant | Menyetel penghangat di AC ke 28 derajat. |
{ "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
Tantangan pinNeeded
direkomendasikan untuk perangkat keamanan.
Contoh ini menunjukkan permintaan dan respons awal dengan tantangan
pinNeeded
. Contoh ini menampilkan respons dengan tantangan pinNeeded
, sehingga
Assistant meminta pin. Pada tahap ini, pengguna dapat
memberikan pin yang salah atau valid.
Contoh permintaan dan respons untuk PIN yang salah atau valid:
Pengguna | Buka kunci pintu. |
Google Assistant | Bisakah saya minta kode keamanan Anda? |
{ "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" } }] } }
PIN salah
Contoh ini menunjukkan permintaan dan respons dengan tantangan
challengeFailedPinNeeded
. Tantangan ini harus digunakan setelah tantangan pinNeeded
awal gagal.
Saat jenis challengeFailedPinNeeded
ditampilkan,
Assistant akan meminta kode keamanan lagi. Jika pengguna
melakukan terlalu banyak percobaan yang gagal, Anda dapat menampilkan respons error
tooManyFailedAttempts
. Lihat Respons error.
Pengguna | 333222 |
Google Assistant | Maaf, kode keamanan salah. Bisakah saya minta kode keamanan Anda? |
{ "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" } }] } }
PIN Valid
Contoh ini menunjukkan permintaan dan respons PIN yang valid.
Pengguna | 333444 |
Google Assistant | Membuka kunci pintu. |
{ "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 } }] } }
Pengguna | Redupkan lampu ruang tamu. |
Google Assistant | Bisakah saya minta kode keamanan Anda? |
{ "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" } }] } }
Respons error
Berikut adalah beberapa kode error yang dapat ditampilkan dengan respons Anda:
- tooManyFailedAttempts - Maaf, terlalu banyak upaya yang gagal. Buka aplikasi perangkat Anda untuk menyelesaikan tindakan tersebut.
- pinIncorrect - Maaf, kode keamanan salah.
- userCancelled - Oke
Lihat daftar lengkap error dan pengecualian.