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