Dengan verifikasi pengguna sekunder, Anda dapat menambahkan keamanan faktor kedua ke perintah suara. Hal ini memungkinkan Anda menambahkan keamanan tambahan untuk tindakan tertentu seperti menonaktifkan kamera keamanan atau membuka pintu. Verifikasi pengguna sekunder tidak terkait dengan karakteristik perangkat tertentu yang memungkinkan Anda memutuskan kapan harus memiliki Google Assistant issue a challenge. For example, you can choose to issue a challenge for the OnOff trait for a security camera, but not issue a challenge for the OnOff trait for a light. You can also have Assistant issue challenges in certain situations for the same action. For example, you can request that Assistant issue a challenge request to open a door if an NFC keyfob is not in the proximity of that door, but not issue a challenge if the keyfob is present.
Assistant dapat mengeluarkan dua jenis tantangan -
pengakuan eksplisit atau nomor pengenal 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 mengirimkan 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 pada platform non-suara, PIN dan konfirmasi dilakukan di layar.
Jenis perangkat yang didukung
Verifikasi pengguna sekunder didukung di semua jenis perangkat.
Ciri-ciri perangkat yang didukung
Verifikasi pengguna sekunder didukung untuk semua fitur perangkat.
Jenis verifikasi yang didukung
Berikut adalah jenis verifikasi verifikasi pengguna sekunder yang didukung:
- Tidak ada tantangan - Permintaan dan respons yang tidak menggunakan Verifikasi verifikasi pengguna sekunder.
- ackNeeded - Verifikasi pengguna sekunder yang memerlukan konfirmasi eksplisit (ya atau tidak) dan juga dapat menggunakan status fitur sebagai masukan respons. Jenis tantangan ini tidak direkomendasikan untuk perangkat dan fitur keamanan.
- pinNeeded - Verifikasi pengguna sekunder yang memerlukan nomor identifikasi 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 } }] } }
Diwajibkan
Autentikasi konfirmasi pengguna sekunder yang dapat menggunakan beberapa status untuk suatu karakteristik atau autentikasi konfirmasi sederhana.
Ada jenis jenis tantangan ackNeeded
berikut:
Perlu 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 keluarga. Yakin? |
Pengguna | Ya. |
Google Assistant | Meredupkan lampu ruang keluarga. |
{ "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 fitur
Autentikasi konfirmasi pengguna sekunder yang dapat menggunakan status untuk suatu fitur.
Misalnya, jika Anda menangani
fitur TemperatureSetting dan
thermostatMode
serta thermostatTemperatureSetpoint
disetel,
Assistant dapat menanyakan Yakin ingin menyetel penghangat
di AC ke 28 derajat?
Anda juga dapat menyertakan status dalam respons agar Assistant melakukan tindakan tertentu berdasarkan permintaan tertentu.
Fitur dan status berikut mendukung ackNeeded
dengan status fitur. Listingan
fitur tertentu menunjukkan bahwa semua statusnya didukung.
- Grup Armada
currentArmLevel
currentStatusReport
- Pengisi
- Kunci Buka Kunci
- Aktif
on
- BukaTutup
- Adegan
- Setelan Suhu
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Contoh ini menunjukkan permintaan dan respons dengan tantangan ackNeeded
yang
menggunakan status fitur. Mode ini akan mengubah mode AC menjadi panas dan menyetel
suhu ke 28 derajat. Kemudian,
Assistant akan meminta konfirmasi
pengguna untuk mengaktifkan penghangat dan menyetel suhu ke 28
derajat karena thermostatTemperatureSetpoint
dari 28
ditampilkan sebagai status
dalam respons.
Pengguna | Atur mode AC ke panas. |
Google Assistant | Yakin mau menyetel panas di AC ke 28 derajat? |
Pengguna | Ya. |
Google Assistantnt | Menyetel panas 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 } }] } }
diperlukan
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 | Boleh 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 upaya yang gagal, Anda dapat menampilkan respons error tooManyFailedAttempts
. Lihat Respons error.
Pengguna | 333222 |
Google Assistant | Maaf, kode keamanan salah. Boleh 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 | Boleh 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 beberapa kode error yang dapat ditampilkan dengan respons Anda:
challengeFailedNotSetup
- Tindakan ini memerlukan kode keamanan, tetapi belum disiapkan di aplikasi perangkat Anda.tooManyFailedAttempts
- Maaf, ada 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.