การยืนยันผู้ใช้รองช่วยให้คุณเพิ่มความปลอดภัยจากปัจจัยที่สองให้กับคำสั่งเสียงได้ ซึ่งจะช่วยให้คุณเพิ่มการรักษาความปลอดภัยเพิ่มเติมสำหรับการดำเนินการบางอย่างได้ เช่น การปิดกล้องรักษาความปลอดภัยหรือการเปิดประตู การยืนยันผู้ใช้รองไม่ได้เชื่อมโยงกับลักษณะเฉพาะของอุปกรณ์ ซึ่งช่วยให้คุณตัดสินใจได้ว่าจะให้ Google Assistant ออกคำท้าเมื่อใด เช่น คุณเลือกออกการท้าทายสำหรับลักษณะOnOffของกล้องรักษาความปลอดภัยได้ แต่จะไม่ออกการท้าทายสำหรับลักษณะOnOffของหลอดไฟ นอกจากนี้ คุณยังAssistant โต้แย้งปัญหาในบางสถานการณ์สำหรับการดำเนินการเดียวกันได้ด้วย ตัวอย่างเช่น คุณ ขอให้ Assistant ส่งคำขอ Challenge เพื่อ เปิดประตูได้หากพวงกุญแจ NFC ไม่ได้อยู่ใกล้ประตูนั้น แต่จะไม่ ส่งคำขอ Challenge หากพวงกุญแจอยู่ใกล้ประตู
Assistant สามารถออกคำท้าได้ 2 ประเภท ได้แก่
การรับทราบอย่างชัดแจ้งหรือหมายเลขประจำตัวส่วนบุคคล (PIN) ซึ่งจะเพิ่มบล็อกการท้าทายไปยังเจตนา QUERY
และ EXECUTE
ที่ส่งจาก Assistant กลับไปยังแอ็กชันของคุณ และยอมรับการตอบกลับข้อผิดพลาด challengeNeeded
Assistant จากนั้นจะส่งคำขอ Intent กลับไปยัง
การดำเนินการของคุณพร้อมข้อมูลการท้าทายในบล็อกการท้าทาย จากนั้นคุณจะ
ตรวจสอบข้อมูลคำถามเพื่อดูว่าผู้ใช้ตอบคำถามด้านความปลอดภัย
ได้อย่างถูกต้องหรือไม่
Assistant ใช้กล่องโต้ตอบเพื่อออกคำท้า แต่หากคุณใช้ Assistant ในแพลตฟอร์มที่ไม่ใช่เสียง ระบบจะแสดง PIN และการยืนยันบนหน้าจอ
ประเภทอุปกรณ์ที่รองรับ
การยืนยันผู้ใช้สำรองใช้ได้ในอุปกรณ์ทุกประเภท
Trait ของอุปกรณ์ที่รองรับ
การยืนยันผู้ใช้สำรองรองรับลักษณะอุปกรณ์ทั้งหมด
ประเภทของการยืนยันตัวตนที่รองรับ
ประเภทคำถามในการยืนยันผู้ใช้รองที่รองรับมีดังนี้
- ไม่มีคำท้า - คำขอและการตอบกลับที่ไม่ได้ใช้ คำท้าในการยืนยันผู้ใช้รอง
- 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
ประเภทคำถามมีดังนี้
ackNeeded simple
ตัวอย่างนี้แสดงคำขอและการตอบกลับอย่างง่ายพร้อม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
เป็นสถานะ
ในการตอบกลับ
ผู้ใช้ | ตั้งค่าโหมดเครื่องปรับอากาศเป็นทำความร้อน |
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
challenge ตัวอย่างจะแสดงการตอบกลับพร้อมpinNeeded
challenge ดังนั้น
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
ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด