Dengan verifikasi pengguna sekunder, Anda dapat menambahkan keamanan faktor kedua ke suara perintah. Hal ini memungkinkan Anda memberikan keamanan tambahan untuk tindakan tertentu seperti mematikan kamera keamanan atau membuka pintu. Verifikasi sekunder pengguna adalah tidak terikat pada karakteristik perangkat tertentu yang memungkinkan Anda memutuskan kapan harus Google Assistant memberikan tantangan. Misalnya, Anda dapat memilih guna memberikan tantangan untuk trait OnOff untuk kamera keamanan, tetapi tidak memberikan tantangan untuk OnOff karakteristik untuk cahaya. Anda juga dapat memiliki Assistant memberikan tantangan dalam situasi tertentu untuk tindakan yang sama. Sebagai contoh, Anda dapat meminta agar Assistant mengeluarkan permintaan verifikasi login untuk membuka pintu jika keyfob NFC tidak ada di dekat pintu tersebut, tetapi tidak memberikan tantangan jika {i>keyfob<i} ada.
Assistant dapat memberikan dua jenis tantangan -
konfirmasi eksplisit atau nomor identifikasi pribadi (PIN). Tindakan ini menambahkan
blok tantangan ke intent QUERY
dan EXECUTE
yang dikirim dari Assistant kembali ke tindakan Anda dan menerima error challengeNeeded
yang dihasilkan. Assistant kemudian mengirimkan kembali permintaan intent ke
tindakan Anda dengan data
tantangan di blok tantangan. Anda kemudian dapat
memvalidasi data verifikasi untuk menentukan apakah pengguna memberikan keamanan yang benar
yang dihasilkan.
Assistant menggunakan dialog untuk mengeluarkan tantangan, tetapi jika Anda gunakan Assistant di platform non-suara, PIN, dan konfirmasi akan dilakukan di layar.
Jenis perangkat yang didukung
Verifikasi pengguna sekunder didukung di semua jenis perangkat.
Trait perangkat yang didukung
Verifikasi pengguna sekunder didukung untuk semua karakteristik perangkat.
Jenis tantangan yang didukung
Berikut adalah jenis verifikasi login pengguna sekunder yang didukung:
- Tidak ada tantangan - Permintaan dan respons yang tidak menggunakan Verifikasi login pengguna sekunder.
- ackNeeded - Verifikasi pengguna sekunder yang memerlukan pengakuan eksplisit (ya atau tidak) dan juga dapat menggunakan status karakteristik sebagai masukan respons. Jenis verifikasi ini tidak direkomendasikan untuk keamanan perangkat dan karakteristik.
- pinNeeded - Verifikasi pengguna sekunder yang memerlukan nomor identifikasi pribadi (PIN), yang ideal untuk perangkat keamanan dan karakteristik.
Tidak ada tantangan
Contoh ini menampilkan permintaan dan respons EXECUTE
yang berhasil tanpa
tantangan 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 sifat atau otentikasi pengakuan sederhana.
Ada beberapa 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" }] } }
ackDiperlukan dengan status karakteristik
Otentikasi pengakuan pengguna sekunder yang
dapat menggunakan status untuk
karakteristik.
Misalnya, jika Anda bekerja dengan
Sifat TemperatureSetting dan keduanya
thermostatMode
dan thermostatTemperatureSetpoint
telah ditetapkan,
Assistant dapat menanyakan Yakin ingin menyetel pemanas
AC ke 28 derajat?
Anda juga dapat menyertakan status dalam respons untuk memiliki Assistant melakukan tindakan tertentu berdasarkan permintaan.
Ciri dan status berikut mendukung ackNeeded
dengan status trait. J
daftar sifat 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 verifikasi ackNeeded
yang
menggunakan status karakteristik. Alat ini mengubah mode AC ke mode hangat dan menyetel
hingga 28 derajat. Kemudian, Assistant meminta pengguna
konfirmasi untuk menyalakan pemanas dan menyetel suhu ke 28
derajat karena thermostatTemperatureSetpoint
dari 28
ditampilkan sebagai status
dalam responsnya.
Pengguna | Setel mode AC ke hangat. |
Google Assistant | Yakin ingin menyetel pemanas AC ke 28 derajat derajat? |
Pengguna | Ya. |
Google Assistantnt | Menyetel penghangat 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 pinNeeded
tantangan. Contoh ini menampilkan respons dengan tantangan pinNeeded
, jadi
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 | Boleh 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 challengeFailedPinNeeded
tantangan. Tantangan ini harus digunakan setelah tantangan pinNeeded
awal
gagal.
Saat jenis challengeFailedPinNeeded
ditampilkan,
Assistant meminta kode keamanan lagi. Jika pengguna
melakukan terlalu banyak upaya yang gagal, Anda dapat menampilkan tooManyFailedAttempts
respons error yang ada. Lihat Respons error.
Pengguna | 333222 |
Google Assistant | Maaf, kode keamanan salah. Boleh 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 | Boleh 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 bersama 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.