उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा की मदद से, आवाज़ से दिए जाने वाले निर्देशों को ज़्यादा सुरक्षित बनाया जा सकता है. इस सुविधा की मदद से, कुछ कार्रवाइयों को ज़्यादा सुरक्षित बनाया जा सकता है. जैसे, सुरक्षा कैमरा बंद करना या दरवाज़ा खोलना. उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा, किसी खास डिवाइस की खासियत से जुड़ी नहीं होती. इससे, यह तय किया जा सकता है कि Google Assistant को चुनौती कब देनी है. Google Assistant उदाहरण के लिए, आप सुरक्षा कैमरे के लिए OnOff खासियत के लिए चुनौती देना चुन सकते हैं, लेकिन रोशनी के लिए OnOff खासियत के लिए चुनौती नहीं दे सकते. कुछ स्थितियों में, एक ही कार्रवाई के लिए Assistant को चुनौती देने के लिए भी कहा जा सकता है. उदाहरण के लिए, अगर किसी दरवाज़े के पास एनएफ़सी कीफ़ोब नहीं है, तो Assistant से उस दरवाज़े को खोलने के लिए चुनौती देने का अनुरोध किया जा सकता है. हालांकि, अगर कीफ़ोब मौजूद है, तो चुनौती देने का अनुरोध नहीं किया जा सकता.
Assistant दो तरह की चुनौतियां दे सकता है -
साफ़ तौर पर पुष्टि करना या निजी पहचान संख्या (पिन). इससे, QUERY और EXECUTE इंटेंट में चुनौती वाला ब्लॉक जुड़ जाता है. ये इंटेंट, Assistant से आपकी कार्रवाई पर वापस भेजे जाते हैं. साथ ही, challengeNeeded गड़बड़ी वाला जवाब स्वीकार किया जाता है. Assistant इसके बाद, आपकी कार्रवाई के लिए इंटेंट का अनुरोध वापस भेजता है. इसमें चुनौती वाले ब्लॉक में चुनौती का डेटा होता है. इसके बाद, चुनौती के डेटा की पुष्टि करके यह पता लगाया जा सकता है कि उपयोगकर्ता ने सुरक्षा से जुड़ा सही जवाब दिया है या नहीं.
Assistant चुनौती देने के लिए डायलॉग का इस्तेमाल करता है. हालांकि, अगर आप Assistant का इस्तेमाल आवाज़ से कंट्रोल न किए जाने वाले डिवाइसों पर करते हैं, तो पिन और पुष्टि की प्रोसेस स्क्रीन पर होती है.
उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा का इस्तेमाल कब करना चाहिए
उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा, किसी भी डिवाइस टाइप या खासियत के लिए चालू की जा सकती है. हालांकि, इंटिग्रेशन को सर्टिफ़िकेट पाने के लिए, सुरक्षा के लिहाज़ से संवेदनशील कुछ डिवाइस टाइप और खासियतों के लिए, उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा लागू करनी होगी.
उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा, pinNeeded चुनौती टाइप का इस्तेमाल करके, इन खासियतों और डिवाइस टाइप के कॉम्बिनेशन के लिए ज़रूरी है:
OnOffट्रेट, अगर डिवाइस टाइपCAMERAहै.OpenCloseट्रेट, अगर डिवाइस टाइपDOOR,GARAGE,GATEयाWINDOWहै.LockUnlockखासियत, अनलॉक करते समय.ArmDisarmखासियत, डिसआर्म करते समय या डिसआर्म करने की प्रोसेस रद्द करते समय.Reboot,SoftwareUpdateयाNetworkControlखासियत, अगर डिवाइस टाइपNETWORKयाROUTERहै.
ackNeeded चुनौती टाइप, TemperatureSetting खासियत के लिए ज़रूरी है. हालांकि, यह तब ज़रूरी है, जब डिवाइस टाइप AC_UNIT हो और इंटिग्रेशन की जगह जापान हो.
चुनौती के टाइप
उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा के लिए, चुनौती के ये टाइप इस्तेमाल किए जा सकते हैं:
- कोई चुनौती नहीं - यह एक ऐसा अनुरोध और जवाब है जिसमें उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा के लिए, चुनौती का इस्तेमाल नहीं किया जाता.
- 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 with trait states
उपयोगकर्ता की जानकारी की पुष्टि दूसरे तरीके से करने की सुविधा के लिए, पुष्टि करने का एक ऐसा तरीका जिसमें किसी खासियत के लिए स्थितियों का इस्तेमाल किया जा सकता है.
उदाहरण के लिए, अगर
TemperatureSetting खासियत का इस्तेमाल किया जा रहा है और
thermostatMode और thermostatTemperatureSetpoint, दोनों सेट हैं, तो
Assistant यह सवाल पूछ सकता है कि क्या आपको वाकई एयर कंडीशनर को 28 डिग्री पर सेट करना है?
किसी दिए गए अनुरोध के आधार पर, Assistant से कोई खास कार्रवाई कराने के लिए, जवाब में कोई स्थिति भी शामिल की जा सकती है.
इन खासियतों और स्थितियों के लिए, ackNeeded with trait states का इस्तेमाल किया जा सकता है. किसी खास ट्रेट की लिस्टिंग से पता चलता है कि उसकी सभी स्टेट के लिए, इसका इस्तेमाल किया जा सकता है.
- ArmDisarm
- डिवाइस को आर्म करने या आर्म करने की प्रोसेस रद्द करने के लिए,
ackNeededचुनौती टाइप का इस्तेमाल करें. हालांकि, डिसआर्म करने और डिसआर्म करने की प्रोसेस रद्द करने के लिए,pinNeededचुनौती टाइप का इस्तेमाल करना ज़रूरी है. - Fill
- LockUnlock
- डिवाइस को लॉक करने के लिए,
ackNeededचुनौती टाइप का इस्तेमाल करें. वहीं, अनलॉक करने के लिए,pinNeededचुनौती टाइप का इस्तेमाल करें. - OnOff
on- इस खासियत के लिए,
ackNeededचुनौती टाइप का इस्तेमाल करें.CAMERAडिवाइसों के साथ इस खासियत का इस्तेमाल करने पर,pinNeededचुनौती टाइप का इस्तेमाल करना ज़रूरी है. - OpenClose
- इस खासियत के लिए,
ackNeededचुनौती टाइप का इस्तेमाल करें. इस खासियत का इस्तेमाल करने पर,pinNeededचुनौती टाइप का इस्तेमाल करना ज़रूरी है.DOORGARAGEGATEWINDOW - Scene
- TemperatureSetting
thermostatModethermostatTemperatureSetpointthermostatTemperatureSetpointHighthermostatTemperatureSetpointLow
इस उदाहरण में, 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 चुनौती के साथ शुरुआती अनुरोध और जवाब दिखाया गया है. उदाहरण में, 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 - ठीक है