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