सेकंडरी उपयोगकर्ता की पुष्टि करने की सुविधा की मदद से, वॉइस कमांड के लिए दो तरीकों से पुष्टि करने की सुविधा जोड़ी जा सकती है. इससे, कुछ कार्रवाइयों के लिए ज़्यादा सुरक्षा जोड़ी जा सकती है. जैसे, सुरक्षा कैमरा बंद करना या दरवाज़ा खोलना. उपयोगकर्ता की जानकारी की पुष्टि करने का दूसरा तरीका, किसी डिवाइस के खास तौर-तरीके से जुड़ा नहीं है. इससे यह तय किया जा सकता है कि Google Assistant को कब चैलेंज भेजना है. उदाहरण के लिए, आपके पास सुरक्षा कैमरे के लिए OnOff एट्रिब्यूट के लिए चुनौती जारी करने का विकल्प है, लेकिन लाइट के लिए OnOff एट्रिब्यूट के लिए चुनौती जारी करने का विकल्प नहीं है. एक ही कार्रवाई के लिए, कुछ मामलों में Assistant चुनौतियां भी दी जा सकती हैं. उदाहरण के लिए, आपके पास यह अनुरोध करने का विकल्प है कि Assistant किसी दरवाज़े को खोलने के लिए, चैलेंज का अनुरोध तब ही करे, जब उस दरवाज़े के आस-पास एनएफ़सी की सुविधा वाला कीफ़ॉब न हो. हालांकि, अगर कीफ़ॉब मौजूद है, तो चैलेंज का अनुरोध न करे.
Assistant दो तरह के चैलेंज जारी कर सकता है -
साफ़ तौर पर पुष्टि या व्यक्तिगत पहचान संख्या (पिन). इससे, Assistant से आपकी कार्रवाई पर भेजे गए QUERY
और EXECUTE
इंटेंट में चैलेंज ब्लॉक जुड़ जाता है. साथ ही, challengeNeeded
गड़बड़ी का जवाब स्वीकार कर लिया जाता है. इसके बाद, Assistant चैलेंज ब्लॉक में चैलेंज डेटा के साथ, आपकी कार्रवाई के लिए इंटेंट का अनुरोध भेजता है. इसके बाद, चैलेंज के डेटा की पुष्टि करके यह पता लगाया जा सकता है कि उपयोगकर्ता ने सुरक्षा से जुड़ा सही जवाब दिया है या नहीं.
Assistant, चैलेंज जारी करने के लिए डायलॉग का इस्तेमाल करता है. हालांकि, अगर Assistant का इस्तेमाल ऐसे प्लैटफ़ॉर्म पर किया जाता है जिन पर बोलकर निर्देश नहीं दिए जा सकते, तो पिन और पुष्टि की प्रक्रिया स्क्रीन पर की जाती है.
साथ काम करने वाले डिवाइस के टाइप
उपयोगकर्ता की पहचान की पुष्टि करने का दूसरा तरीका, सभी तरह के डिवाइसों पर काम करता है.
साथ काम करने वाले डिवाइस के लक्षण
डिवाइस के सभी ट्रैट के लिए, उपयोगकर्ता की पहचान की पुष्टि करने का दूसरा तरीका इस्तेमाल किया जा सकता है.
चुनौती के टाइप
उपयोगकर्ता की पहचान की पुष्टि करने के लिए, इन तरीकों का इस्तेमाल किया जा सकता है:
- कोई चैलेंज नहीं - ऐसा अनुरोध और जवाब जिसमें उपयोगकर्ता की पुष्टि करने के लिए, दूसरा चैलेंज इस्तेमाल नहीं किया गया है.
- ackNeeded - उपयोगकर्ता की पहचान की पुष्टि करने का दूसरा तरीका, जिसके लिए उपयोगकर्ता की ओर से साफ़ तौर पर पुष्टि (हां या नहीं) की ज़रूरत होती है. साथ ही, जवाब के सुझाव के तौर पर, ट्रैट की स्थितियों का भी इस्तेमाल किया जा सकता है. हमारा सुझाव है कि सुरक्षा डिवाइसों और ट्रैट के लिए, इस तरह के चैलेंज का इस्तेमाल न करें.
- pinNeeded - उपयोगकर्ता की पुष्टि करने का दूसरा तरीका, जिसमें व्यक्तिगत पहचान संख्या (पिन) की ज़रूरत होती है. यह तरीका, सुरक्षा डिवाइसों और ट्रैट के लिए सबसे सही है.
कोई चुनौती नहीं
इस उदाहरण में, लाइटें चालू करने के लिए, EXECUTE
अनुरोध और जवाब को बिना किसी समस्या के पूरा किया गया है.
उपयोगकर्ता | लाइटें जलाओ. |
Google Assistant | ठीक है, तीन लाइटें चालू कर रही हूँ. |
{ "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 डिग्री पर सेट करें. ऐसा इसलिए, क्योंकि जवाब में 28
का thermostatTemperatureSetpoint
, स्टेटस के तौर पर दिखाया गया है.
उपयोगकर्ता | एसी मोड को हीट पर सेट करें. |
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 पिन मांगता है. इस दौरान, उपयोगकर्ता गलत या मान्य पिन डाल सकता है.
गलत या मान्य पिन के लिए अनुरोध और जवाब का सैंपल:
उपयोगकर्ता | दरवाज़ा अनलॉक करें. |
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" } }] } }
गलत पिन
इस उदाहरण में, 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" } }] } }
मान्य पिन
इस उदाहरण में, मान्य पिन के अनुरोध और जवाब को दिखाया गया है.
उपयोगकर्ता | 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 - ठीक है
गड़बड़ियों और अपवादों की पूरी सूची देखें.