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