การยืนยันผู้ใช้รองช่วยให้คุณเพิ่มความปลอดภัยแบบ 2 ปัจจัยให้กับคำสั่งเสียงได้ ซึ่งจะช่วยให้คุณเพิ่มความปลอดภัยเพิ่มเติมสำหรับการดำเนินการบางอย่าง เช่น การปิดกล้องรักษาความปลอดภัยหรือการเปิดประตู การยืนยันผู้ใช้รองไม่ได้เชื่อมโยงกับลักษณะเฉพาะของอุปกรณ์ที่เจาะจง ซึ่งช่วยให้คุณตัดสินใจได้ว่าจะให้ Google Assistant แสดงภารกิจเมื่อใด เช่น คุณอาจเลือกที่จะออกคําท้าสําหรับลักษณะ OnOff ของกล้องรักษาความปลอดภัย แต่จะไม่ออกคําท้าสําหรับลักษณะ OnOff ของหลอดไฟ นอกจากนี้ คุณยังAssistant ออกคำท้าในบางสถานการณ์สำหรับการดำเนินการเดียวกันได้ด้วย เช่น คุณสามารถขอให้ Assistant ส่งคำขอคำตอบเพื่อเปิดประตูหากกุญแจรีโมต NFC ไม่ได้อยู่ใกล้กับประตูนั้น แต่ไม่ต้องส่งคำตอบหากกุญแจรีโมตอยู่ใกล้ๆ
Assistant สามารถออกคำถามยืนยันตัวตนได้ 2 ประเภท ได้แก่ การยอมรับอย่างชัดแจ้งหรือหมายเลขประจำตัวส่วนบุคคล (PIN) ซึ่งจะเพิ่มบล็อกคำท้าให้กับ Intent QUERY
และ EXECUTE
ที่ส่งจาก Assistant กลับไปยังการดำเนินการของคุณ และยอมรับการตอบกลับข้อผิดพลาด challengeNeeded
Assistant จากนั้นจะส่งคำขอ Intent กลับไปยังการดำเนินการของคุณพร้อมข้อมูลคำขอรับสิทธิ์ในบล็อกคำขอรับสิทธิ์ จากนั้นคุณสามารถตรวจสอบความถูกต้องของข้อมูลคำขอเพื่อดูว่าผู้ใช้ตอบกลับข้อมูลความปลอดภัยที่ถูกต้องหรือไม่
Assistant ใช้กล่องโต้ตอบเพื่อออกคำสั่ง แต่หากคุณใช้ Assistant ในแพลตฟอร์มที่ไม่ใช่เสียง คุณจะป้อน PIN และการยืนยันบนหน้าจอ
ประเภทอุปกรณ์ที่รองรับ
อุปกรณ์ทุกประเภทรองรับการยืนยันผู้ใช้สำรอง
ลักษณะของอุปกรณ์ที่รองรับ
วิธีการสำรองในการยืนยันผู้ใช้ใช้ได้กับลักษณะของอุปกรณ์ทั้งหมด
ประเภทคำถามที่รองรับ
ประเภทคำถามในการยืนยันผู้ใช้รองที่รองรับมีดังนี้
- ไม่มีคำถาม - คำขอและการตอบกลับที่ไม่ได้ใช้คำถามเพื่อยืนยันตัวตนผู้ใช้รอง
- ackNeeded - การยืนยันผู้ใช้สำรองที่ต้องมีการรับทราบอย่างชัดเจน (ใช่หรือไม่) และสามารถใช้สถานะลักษณะเป็นความคิดเห็นตอบกลับได้ ไม่แนะนำให้ใช้คำถามคําถามประเภทนี้กับอุปกรณ์และลักษณะด้านความปลอดภัย
- pinNeeded - การยืนยันผู้ใช้รองที่ต้องใช้หมายเลขประจำตัวส่วนบุคคล (PIN) ซึ่งเหมาะสำหรับอุปกรณ์และลักษณะการรักษาความปลอดภัย
ไม่มีคำท้า
ตัวอย่างนี้แสดงคำขอ EXECUTE
และการตอบกลับที่สำเร็จโดยไม่มีการท้าทายในการเปิดไฟ
ผู้ใช้ | เปิดไฟ |
Google Assistant | กำลังเปิดไฟ 3 ดวง |
{ "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
การตรวจสอบสิทธิ์การยอมรับของผู้ใช้รองที่ใช้สถานะได้หลายสถานะสำหรับลักษณะหรือการตรวจสอบสิทธิ์การยอมรับแบบง่าย
ackNeeded
คำถามยืนยันตัวตนมี 3 ประเภทดังนี้
ackNeeded แบบง่าย
ตัวอย่างนี้แสดงคำขอและการตอบกลับแบบง่ายที่มีackNeeded
ภารกิจ
เพื่อหรี่ไฟและการยืนยันเพื่อหรี่ไฟ
ผู้ใช้ | หรี่ไฟห้องนั่งเล่น |
Google Assistant | หรี่ไฟห้องนั่งเล่น แน่ใจใช่ไหม |
ผู้ใช้ | ได้ |
Google Assistant | หรี่ไฟห้องนั่งเล่น |
{ "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 ที่มีสถานะลักษณะ
การตรวจสอบสิทธิ์การยอมรับของผู้ใช้รองที่ใช้สถานะสำหรับลักษณะ
ตัวอย่างเช่น หากคุณทํางานกับลักษณะ TemperatureSetting และตั้งค่าทั้ง thermostatMode
และ thermostatTemperatureSetpoint
แล้ว Assistant จะถามว่าคุณแน่ใจไหมว่าต้องการตั้งค่าความอุ่นของแอร์เป็น 28 องศา
นอกจากนี้ คุณยังใส่สถานะในการตอบกลับเพื่อให้ Assistant ดําเนินการหนึ่งๆ ตามคําขอที่ระบุได้
ลักษณะและสถานะต่อไปนี้รองรับ ackNeeded
ที่มีสถานะลักษณะ การระบุลักษณะเฉพาะบ่งบอกว่าระบบรองรับสถานะทั้งหมดของลักษณะนั้น
- ArmDisarm
currentArmLevel
currentStatusReport
- Fill
- LockUnlock
- OnOff
on
- OpenClose
- Scene
- TemperatureSetting
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
ตัวอย่างนี้แสดงคําขอและการตอบกลับที่มีภารกิจ ackNeeded
ที่ใช้สถานะลักษณะ เปลี่ยนโหมดเครื่องปรับอากาศเป็นโหมดทำความร้อนและตั้งอุณหภูมิเป็น 28 องศา จากนั้น Assistant จะขอให้ผู้ใช้รับทราบเพื่อเปิดความร้อนและตั้งอุณหภูมิเป็น 28 องศา เนื่องจาก thermostatTemperatureSetpoint
ของ 28
แสดงสถานะในการตอบกลับ
ผู้ใช้ | ตั้งค่าโหมด AC เป็นทำความร้อน |
Google Assistant | คุณแน่ใจไหมว่าต้องการตั้งค่าความร้อนบนเครื่องปรับอากาศเป็น 28 องศา |
ผู้ใช้ | ได้ |
Google Assistant | กำลังตั้งค่าความร้อนบนเครื่องปรับอากาศเป็น 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
เราขอแนะนำให้ใช้การยืนยันแบบ pinNeeded
สำหรับอุปกรณ์รักษาความปลอดภัย
ตัวอย่างนี้แสดงคำขอและการตอบกลับครั้งแรกที่มีpinNeeded
การโต้แย้ง ตัวอย่างนี้แสดงการตอบกลับที่มีpinNeeded
ภารกิจ ดังนั้น Assistant จึงขอ PIN เมื่อถึงขั้นตอนนี้ ผู้ใช้สามารถป้อน PIN ที่ไม่ถูกต้องหรือถูกต้องก็ได้
ตัวอย่างคำขอและการตอบกลับสำหรับ PIN ที่ไม่ถูกต้องหรือถูกต้อง
ผู้ใช้ | ปลดล็อกประตู |
Google Assistant | ขอทราบรหัสความปลอดภัยหน่อยได้ไหม |
{ "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 ไม่ถูกต้อง
ตัวอย่างนี้แสดงคําขอและการตอบกลับที่มีchallengeFailedPinNeeded
คำท้า ควรใช้การยืนยันตัวตนด้วยคำถามนี้หลังจากที่การยืนยันตัวตนด้วยคำถาม pinNeeded
ครั้งแรกไม่สำเร็จ
เมื่อระบบแสดงผลประเภท challengeFailedPinNeeded
Assistant จะขอรหัสความปลอดภัยอีกครั้ง หากผู้ใช้พยายามไม่สำเร็จหลายครั้งเกินไป คุณสามารถแสดงtooManyFailedAttempts
การตอบกลับข้อผิดพลาด ดูการตอบกลับที่มีข้อผิดพลาด
ผู้ใช้ | 333222 |
Google Assistant | ขออภัย รหัสความปลอดภัยไม่ถูกต้อง ขอทราบรหัสความปลอดภัยหน่อยได้ไหม |
{ "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 ที่ถูกต้อง
ตัวอย่างนี้แสดงคำขอและการตอบกลับของ PIN ที่ถูกต้อง
ผู้ใช้ | 333444 |
Google Assistant | กำลังปลดล็อกประตู |
{ "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 } }] } }
ผู้ใช้ | หรี่ไฟห้องนั่งเล่น |
Google Assistant | ขอทราบรหัสความปลอดภัยหน่อยได้ไหม |
{ "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" } }] } }
การตอบกลับข้อผิดพลาด
ต่อไปนี้คือรหัสข้อผิดพลาดบางส่วนที่อาจแสดงพร้อมกับคำตอบของคุณ
- tooManyFailedAttempts - ขออภัย พยายามไม่สำเร็จหลายครั้งเกินไป โปรดไปที่แอปของอุปกรณ์เพื่อดำเนินการต่อให้เสร็จ
- pinIncorrect - ขออภัย รหัสความปลอดภัยไม่ถูกต้อง
- userCancelled - Ok
ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด