Verifikasi tambahan oleh pengguna memungkinkan Anda menambahkan keamanan faktor kedua ke perintah suara. Dengan begitu, Anda dapat menambahkan keamanan tambahan untuk tindakan tertentu seperti menonaktifkan kamera keamanan atau membuka pintu. Verifikasi tambahan oleh pengguna tidak terikat dengan karakteristik perangkat tertentu, sehingga Anda dapat memutuskan kapan Google Assistant harus mengeluarkan tantangan. Misalnya, Anda dapat memilih untuk memberikan tantangan untuk karakteristik OnOff untuk kamera keamanan, tetapi tidak memberikan tantangan untuk karakteristik OnOff untuk lampu. Anda juga dapat meminta Assistant mengeluarkan tantangan dalam situasi tertentu untuk tindakan yang sama. Misalnya, Anda dapat meminta Assistant mengeluarkan permintaan tantangan untuk membuka pintu jika keyfob NFC tidak berada di dekat pintu tersebut, tetapi tidak mengeluarkan tantangan jika keyfob ada.
Assistant dapat mengeluarkan dua jenis verifikasi -
konfirmasi eksplisit atau nomor identifikasi pribadi (PIN). Tindakan ini akan menambahkan
blok verifikasi 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
Action Anda dengan data verifikasi di blok verifikasi. Kemudian, Anda dapat
memvalidasi data verifikasi untuk menentukan apakah pengguna memberikan respons keamanan
yang benar.
Assistant menggunakan dialog untuk memberikan verifikasi, tetapi jika Anda menggunakan Assistant di platform non-suara, PIN dan konfirmasi dilakukan di layar.
Kapan harus menggunakan verifikasi tambahan oleh pengguna
Anda dapat mengaktifkan verifikasi tambahan oleh pengguna untuk jenis atau karakteristik perangkat apa pun. Namun, Anda harus menerapkan verifikasi tambahan oleh pengguna untuk jenis dan ciri perangkat tertentu yang sensitif terhadap keamanan agar integrasi Anda mendapatkan sertifikasi.
Verifikasi tambahan oleh pengguna menggunakan jenis verifikasi login pinNeeded diperlukan
untuk kombinasi karakteristik dan jenis perangkat berikut:
- Sifat
OnOffjika jenis perangkatnya adalahCAMERA. - Karakteristik
OpenClosejika jenis perangkatnya adalahDOOR,GARAGE,GATE, atauWINDOW. - Sifat
LockUnlocksaat membuka kunci. - Karakteristik
ArmDisarmsaat menonaktifkan atau membatalkan penonaktifan. Reboot,SoftwareUpdate, atauNetworkControljika jenis perangkatnya adalahNETWORKatauROUTER.
Jenis tantangan ackNeeded diperlukan untuk karakteristik TemperatureSetting
jika jenis perangkatnya adalah AC_UNIT dan integrasinya berada di Jepang.
Jenis tantangan yang didukung
Berikut adalah jenis verifikasi tambahan oleh pengguna yang didukung:
- Tanpa verifikasi - Permintaan dan respons yang tidak menggunakan Verifikasi tambahan oleh pengguna.
- ackNeeded - Verifikasi tambahan oleh pengguna yang memerlukan konfirmasi eksplisit (ya atau tidak) dan juga dapat menggunakan status karakteristik sebagai masukan respons. Jenis tantangan ini tidak direkomendasikan untuk perangkat dan karakteristik keamanan.
- pinNeeded - Verifikasi tambahan oleh pengguna yang memerlukan nomor identifikasi pribadi (PIN), yang ideal untuk perangkat dan karakteristik 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 karakteristik atau autentikasi konfirmasi sederhana.
Ada jenis verifikasi ackNeeded berikut:
ackNeeded simple
Contoh ini menunjukkan permintaan dan respons sederhana dengan tantangan ackNeeded
untuk meredupkan lampu dan konfirmasi untuk meredupkan lampu.
| Pengguna | Redupkan lampu ruang keluarga. |
| 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 karakteristik
Autentikasi konfirmasi pengguna sekunder yang dapat menggunakan status untuk
suatu karakteristik.
Misalnya, jika Anda menggunakan karakteristik
TemperatureSetting dan thermostatMode serta thermostatTemperatureSetpoint ditetapkan,
Assistant dapat bertanya Apakah Anda yakin ingin menyetel pemanas
pada penyejuk udara ke 28 derajat?
Anda juga dapat menyertakan status dalam respons agar Assistant melakukan tindakan tertentu berdasarkan permintaan yang diberikan.
Sifat dan status berikut mendukung ackNeeded dengan status sifat. Daftar
karakteristik tertentu menunjukkan bahwa semua statusnya didukung.
- ArmDisarm
- Gunakan jenis tantangan
ackNeededuntuk mengaktifkan atau membatalkan pengaktifan perangkat, tetapi untuk fungsi menonaktifkan dan membatalkan penonaktifan, jenis tantanganpinNeededdiperlukan. - Fill
- LockUnlock
- Gunakan jenis verifikasi
ackNeededuntuk mengunci perangkat dan jenis verifikasipinNeededuntuk membuka kunci. - OnOff
on- Gunakan jenis tantangan
ackNeededuntuk karakteristik ini. Jenis tantanganpinNeededdiperlukan saat karakteristik ini digunakan dengan perangkatCAMERA. - OpenClose
- Gunakan jenis tantangan
ackNeededuntuk karakteristik ini. Jenis tantanganpinNeededdiperlukan saat karakteristik ini digunakan dengan perangkatDOOR,GARAGE,GATE, atauWINDOW. - Scene
- TemperatureSetting
thermostatModethermostatTemperatureSetpointthermostatTemperatureSetpointHighthermostatTemperatureSetpointLow
Contoh ini menunjukkan permintaan dan respons dengan verifikasi ackNeeded yang
menggunakan status karakteristik. Tindakan ini akan mengubah mode AC ke hangat dan menyetel
suhu ke 28 derajat. Kemudian, Assistant meminta konfirmasi pengguna
untuk menyalakan pemanas dan menyetel suhu ke 28
derajat karena thermostatTemperatureSetpoint dari 28 ditampilkan sebagai status
dalam respons.
| Pengguna | Setel mode AC ke hangat. |
| Google Assistant | Yakin ingin menyetel penghangat di AC ke 28 derajat? |
| Pengguna | Ya. |
| Google Assistant | Menyetel penghangat di penyejuk udara 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
Verifikasi pinNeeded direkomendasikan untuk perangkat keamanan.
Contoh ini menunjukkan permintaan dan respons awal dengan verifikasi pinNeeded. Contoh ini menampilkan respons dengan verifikasi 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 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 verifikasi challengeFailedPinNeeded. Verifikasi ini harus digunakan setelah verifikasi 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 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 keluarga. |
| 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 - Ok
Lihat daftar lengkap error dan pengecualian.