Tính năng xác minh người dùng phụ cho phép bạn thêm phương thức bảo mật hai yếu tố vào lệnh thoại. Điều này cho phép bạn tăng cường bảo mật cho một số hành động nhất định, chẳng hạn như tắt camera an ninh hoặc mở cửa. Phương thức xác minh người dùng phụ không liên kết với một đặc điểm thiết bị cụ thể, cho phép bạn quyết định thời điểm Google Assistant đưa ra câu đố. Ví dụ: bạn có thể chọn đưa ra thử thách cho đặc điểm OnOff của máy ảnh an ninh, nhưng không đưa ra thử thách cho đặc điểm OnOff của đèn. Bạn cũng có thể yêu cầu Assistant đưa ra thử thách trong một số trường hợp nhất định cho cùng một hành động. Ví dụ: bạn có thể yêu cầu Assistant đưa ra yêu cầu thử thách để mở cửa nếu chìa khoá thông minh NFC không ở gần cửa đó, nhưng không đưa ra yêu cầu thử thách nếu có chìa khoá thông minh.
Assistant có thể đưa ra hai loại thử thách – xác nhận rõ ràng hoặc mã số nhận dạng cá nhân (PIN). Thao tác này sẽ thêm một khối thách thức vào ý định QUERY
và EXECUTE
được gửi từ Assistant trở lại hành động của bạn và chấp nhận phản hồi lỗi challengeNeeded
. Sau đó, Assistant sẽ gửi lại yêu cầu ý định đến hành động của bạn cùng với dữ liệu thử thách trong khối thử thách. Sau đó, bạn có thể xác thực dữ liệu thử thách để xác định xem người dùng có đưa ra câu trả lời bảo mật chính xác hay không.
Assistant sử dụng hộp thoại để đưa ra lời nhắc, nhưng nếu bạn sử dụng Assistant trên các nền tảng không phải giọng nói, thì mã PIN và xác nhận sẽ được thực hiện trên màn hình.
Các loại thiết bị được hỗ trợ
Bước xác minh người dùng phụ được hỗ trợ trên tất cả các loại thiết bị.
Các đặc điểm của thiết bị được hỗ trợ
Tính năng xác minh người dùng phụ được hỗ trợ cho tất cả các đặc điểm thiết bị.
Các loại thử thách được hỗ trợ
Sau đây là các loại thử thách xác minh người dùng thứ hai được hỗ trợ:
- Không có thử thách – Yêu cầu và phản hồi không sử dụng thử thách xác minh người dùng phụ.
- ackNeeded – Bước xác minh người dùng thứ hai yêu cầu xác nhận rõ ràng (có hoặc không) và cũng có thể sử dụng trạng thái đặc điểm làm phản hồi. Bạn không nên sử dụng loại thử thách này cho các thiết bị và đặc điểm bảo mật.
- pinNeeded – Phương thức xác minh người dùng phụ yêu cầu mã số nhận dạng cá nhân (PIN). Đây là phương thức lý tưởng cho các thiết bị và đặc điểm bảo mật.
Không có thử thách
Ví dụ này cho thấy một yêu cầu và phản hồi EXECUTE
thành công mà không có thử thách nào để bật đèn.
Người dùng | Bật đèn. |
Google Assistant | Được rồi, tôi đang bật 3 đèn. |
{ "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
Xác thực xác nhận người dùng phụ có thể sử dụng nhiều trạng thái cho một đặc điểm hoặc xác thực xác nhận đơn giản.
Có các loại thử thách ackNeeded
sau:
ackNeeded đơn giản
Ví dụ này cho thấy một yêu cầu và phản hồi đơn giản với thử thách ackNeeded
để làm mờ ánh sáng và xác nhận làm mờ ánh sáng.
Người dùng | Giảm độ sáng của đèn phòng khách. |
Google Assistant | Giảm độ sáng của đèn phòng khách. Bạn có chắc chắn không? |
Người dùng | Có. |
Google Assistant | Giảm độ sáng của đèn phòng khách. |
{ "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 với trạng thái đặc điểm
Phương thức xác thực xác nhận người dùng phụ có thể sử dụng các trạng thái cho một đặc điểm.
Ví dụ: nếu bạn đang làm việc với thuộc tính TemperatureSetting và cả thermostatMode
và thermostatTemperatureSetpoint
đều được đặt, Assistant có thể hỏi Bạn có chắc chắn muốn đặt nhiệt độ trên điều hòa thành 28 độ không?
Bạn cũng có thể đưa một trạng thái vào phản hồi để yêu cầu Assistant thực hiện một hành động cụ thể dựa trên một yêu cầu nhất định.
Các đặc điểm và trạng thái sau đây hỗ trợ ackNeeded
với trạng thái đặc điểm. Danh sách một đặc điểm cụ thể cho biết tất cả các trạng thái của đặc điểm đó đều được hỗ trợ.
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Ví dụ này cho thấy một yêu cầu và phản hồi với thử thách ackNeeded
sử dụng trạng thái đặc điểm. Thao tác này sẽ thay đổi chế độ điều hòa thành sưởi ấm và đặt nhiệt độ thành 28 độ. Sau đó, Assistant yêu cầu người dùng xác nhận để bật chế độ sưởi và đặt nhiệt độ thành 28 độ vì thermostatTemperatureSetpoint
của 28
được trả về dưới dạng trạng thái trong phản hồi.
Người dùng | Đặt chế độ điều hòa thành sưởi ấm. |
Google Assistant | Bạn có chắc chắn muốn đặt nhiệt độ trên điều hòa ở mức 28 độ không? |
Người dùng | Có. |
Google Assistant | Tôi đang đặt mức nhiệt trên điều hòa ở 28 độ. |
{ "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
Bạn nên sử dụng thử thách pinNeeded
cho các thiết bị bảo mật.
Ví dụ này cho thấy một yêu cầu và phản hồi ban đầu với một thử thách pinNeeded
. Ví dụ này trả về một phản hồi có thử thách pinNeeded
, vì vậy, Assistant sẽ yêu cầu ghim. Tại thời điểm này, người dùng có thể cung cấp mã PIN không chính xác hoặc hợp lệ.
Yêu cầu và phản hồi mẫu cho mã PIN không chính xác hoặc hợp lệ:
Người dùng | Mở khoá cửa. |
Google Assistant | Bạn cho tôi xin mã bảo mật được không? |
{ "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" } }] } }
Mã PIN không chính xác
Ví dụ này cho thấy yêu cầu và phản hồi với một thử thách challengeFailedPinNeeded
. Bạn nên sử dụng thử thách này sau khi thử thách pinNeeded
ban đầu không thành công.
Khi trả về một loại challengeFailedPinNeeded
, Assistant sẽ yêu cầu nhập lại mã bảo mật. Nếu người dùng thực hiện quá nhiều lần thử không thành công, bạn có thể trả về phản hồi lỗi tooManyFailedAttempts
. Xem phần Phản hồi lỗi.
Người dùng | 333222 |
Google Assistant | Rất tiếc, mã bảo mật này không chính xác. Bạn cho tôi xin mã bảo mật được không? |
{ "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" } }] } }
Mã PIN hợp lệ
Ví dụ này cho thấy yêu cầu và phản hồi của một mã PIN hợp lệ.
Người dùng | 333444 |
Google Assistant | Đang mở khoá cửa. |
{ "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 } }] } }
Người dùng | Giảm độ sáng của đèn phòng khách. |
Google Assistant | Bạn cho tôi xin mã bảo mật được không? |
{ "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" } }] } }
Phản hồi lỗi
Sau đây là một số mã lỗi có thể được trả về cùng với phản hồi của bạn:
- tooManyFailedAttempts – Rất tiếc, bạn đã thử quá nhiều lần nhưng không thành công. Vui lòng mở ứng dụng trên thiết bị của bạn để hoàn tất thao tác đó.
- pinIncorrect – Rất tiếc, mã bảo mật này không chính xác.
- userCancelled – Ok
Xem danh sách đầy đủ lỗi và ngoại lệ.